Page 1 of 1

big_database_flag=true и sitemap_index

Posted: Mon Dec 18, 2017 7:37 am
by dude21
Доброго дня.

Столкнулся с проблемой, что при $config['big_database_flag'] = true; не работает разбивка на страницы у сайтмап-индекса, он выводит только первую страницу. Думаю, это из-за того, что при этом флаге не ведется подсчет общего кол-ва галер, <!--TOTAL_ITEMS--> = 1.

Для страницы sitemap_index такой темплейт:

Code: Select all

<? echo '<?xml version="1.0" encoding="UTF-8"?>'  ?>
<!--
<navigation>
.
</navigation>
-->
<!--default_1-1-->
<sitemapindex xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">


<?php
$thumbs_per_page = 3000;
$total_pages = ceil(<!--TOTAL_ITEMS-->/$thumbs_per_page);

for ($i = 1; $i <= $total_pages; $i++ ) {
?> 
	<sitemap>
		<loc>http://domain.com/sitemap.php?page=<?php echo $i?></loc>
		<lastmod><? echo date("Y-m-d");?></lastmod>
	</sitemap>
<?php }?>



</sitemapindex>

1. Возможно ли как-то переделать вывод sitemap_index, чтобы он работал при $config['big_database_flag'] = true; ?

2. Так понимаю, этот флаг нужен для отключения подсчета общего кол-ва результатов и используется для страниц навигации. А если в навигации использовать только <!--PREV_PAGE--> и <!--NEXT_PAGE--> (без тегов <navigation></navigation>) , то значит ли это, что можно обойтись без $config['big_database_flag'] = true; и при этом не будет создаваться нагрузка от подсчета общего кол-ва результатов?

Re: big_database_flag=true и sitemap_index

Posted: Thu Dec 21, 2017 7:16 am
by admin
Приветствую !

1. "Возможно ли как-то переделать вывод sitemap_index, " как я понимаю вопрос про <sitemapindex но это не часть скирпта, а таг html, скрипт его не отбаратывает. можно придумать отдельный таг для ситуации .. а сколько база ?



2. кроме этого с этим флагом еще реже пересчитывает кол-во моделей и тп что б облегчить жизнь базы .. но в целом конкретно для пагинации - да, будет работаеть.

Re: big_database_flag=true и sitemap_index

Posted: Thu Dec 21, 2017 8:06 am
by dude21
admin wrote:1. "Возможно ли как-то переделать вывод sitemap_index, " как я понимаю вопрос про <sitemapindex но это не часть скирпта, а таг html, скрипт его не отбаратывает. можно придумать отдельный таг для ситуации .. а сколько база ?
Вопрос скорее про то, что при $config['big_database_flag'] = true; не работает тег <!--TOTAL_ITEMS--> и поэтому не получается разбить сайтмап на страницы, по крайней мере вот таким способом:

Code: Select all

<?php
$thumbs_per_page = 3000;
$total_pages = ceil(<!--TOTAL_ITEMS-->/$thumbs_per_page);

for ($i = 1; $i <= $total_pages; $i++ ) {
?>
   <sitemap>
      <loc>http://domain.com/sitemap.php?page=<?php echo $i?></loc>
      <lastmod><? echo date("Y-m-d");?></lastmod>
   </sitemap>
<?php }?>
Поэтому и спрашиваю, есть ли какие-то другие способы это сделать, не убирая $config['big_database_flag'] = true; ?
Есть ли способы реализовать разбив на страницы, не используя тег <!--TOTAL_ITEMS-->? Или может быть ввести какой-то новый тег типа <!--TOTAL_ITEMS_BIGDB-->, который смог бы подсчитывать кол-во элементов даже при включенном $config['big_database_flag'] = true;

Бд около 3Гб, >350к галер.

Re: big_database_flag=true и sitemap_index

Posted: Thu Dec 21, 2017 12:42 pm
by admin
Что б появился тотал - его надо вытянуть из базы, те как ни крути надо посчитать в базею
Что б не дергать базу самый простой варинт не добавляя нагрузку получить пагинацию - просто прописать там тотал руками. и например раз какое-то время его менять там ..

Честно говоря в голову не приходит других вриантов как там можно получить пагинацию не делая подсчет в базе. Те даже логически не представляю.

Re: big_database_flag=true и sitemap_index

Posted: Thu Dec 21, 2017 4:42 pm
by dude21
А можно узнать, какая сейчас действует сортировка при выводе галер в сайтмапе? Предполагаю, что стандартная по ctr. Можно ли ее как-то изменить на сортировку по date? И желательно по убыванию - от текущей даты к более ранним, чтобы вначале были самые свежие галлеры.

Таким образом, можно было бы вручную прописать тотал_итемс с запасом, и на первых ссылках пагинации всегда были бы свежие галеры.

Re: big_database_flag=true и sitemap_index

Posted: Thu Dec 21, 2017 4:44 pm
by admin
сайтмап это обычный темпелйт в котором действуют точно такие же правила как и во всех остальных, отличается он только названием.

да, прописать руками это вариант

Re: big_database_flag=true и sitemap_index

Posted: Thu Dec 21, 2017 7:46 pm
by dude21
Да, так и сделаю. Спасибо.

Хотел еще уточнить, с точки зрения скорейшей обработки запроса и меньшей нагрузки на сервер, какой вариант с сортировкой лучше использовать:
- в самом темплейте указать order=date - т.е. <thumb order=date num=1-3000></thumb>
- или указать order=date в параметрах в урле - http://domain.com/sitemap.php?page=1&order=date
Или эти варианты равнозначны?

Re: big_database_flag=true и sitemap_index

Posted: Thu Dec 21, 2017 8:41 pm
by admin
Варианты равнозначны