big_database_flag=true и sitemap_index

Post Reply
dude21
Posts: 86
Joined: Tue Nov 12, 2013 6:13 pm

big_database_flag=true и sitemap_index

Post 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; и при этом не будет создаваться нагрузка от подсчета общего кол-ва результатов?
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: big_database_flag=true и sitemap_index

Post by admin »

Приветствую !

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



2. кроме этого с этим флагом еще реже пересчитывает кол-во моделей и тп что б облегчить жизнь базы .. но в целом конкретно для пагинации - да, будет работаеть.
Don't forget to run script update
dude21
Posts: 86
Joined: Tue Nov 12, 2013 6:13 pm

Re: big_database_flag=true и sitemap_index

Post 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к галер.
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: big_database_flag=true и sitemap_index

Post by admin »

Что б появился тотал - его надо вытянуть из базы, те как ни крути надо посчитать в базею
Что б не дергать базу самый простой варинт не добавляя нагрузку получить пагинацию - просто прописать там тотал руками. и например раз какое-то время его менять там ..

Честно говоря в голову не приходит других вриантов как там можно получить пагинацию не делая подсчет в базе. Те даже логически не представляю.
Don't forget to run script update
dude21
Posts: 86
Joined: Tue Nov 12, 2013 6:13 pm

Re: big_database_flag=true и sitemap_index

Post by dude21 »

А можно узнать, какая сейчас действует сортировка при выводе галер в сайтмапе? Предполагаю, что стандартная по ctr. Можно ли ее как-то изменить на сортировку по date? И желательно по убыванию - от текущей даты к более ранним, чтобы вначале были самые свежие галлеры.

Таким образом, можно было бы вручную прописать тотал_итемс с запасом, и на первых ссылках пагинации всегда были бы свежие галеры.
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: big_database_flag=true и sitemap_index

Post by admin »

сайтмап это обычный темпелйт в котором действуют точно такие же правила как и во всех остальных, отличается он только названием.

да, прописать руками это вариант
Don't forget to run script update
dude21
Posts: 86
Joined: Tue Nov 12, 2013 6:13 pm

Re: big_database_flag=true и sitemap_index

Post by dude21 »

Да, так и сделаю. Спасибо.

Хотел еще уточнить, с точки зрения скорейшей обработки запроса и меньшей нагрузки на сервер, какой вариант с сортировкой лучше использовать:
- в самом темплейте указать order=date - т.е. <thumb order=date num=1-3000></thumb>
- или указать order=date в параметрах в урле - http://domain.com/sitemap.php?page=1&order=date
Или эти варианты равнозначны?
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: big_database_flag=true и sitemap_index

Post by admin »

Варианты равнозначны
Don't forget to run script update
Post Reply