Перейти к публикации

Рекомендованные сообщения

В админской части создания карты не верно считается к-во новостей.

	$row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post" );

т.е. учитываются все новости, хотя надо только опубликованные.

А в самом классе выборка верная.

Ссылка на сообщение
Поделиться на других сайтах

MSK,

Так нужно, у вас же в карте нет неопубликованных новостей. В чем тогда проблема и ошибка?

Ссылка на сообщение
Поделиться на других сайтах

Как в чем???

в дальнейшем постоении карты..

	if ( !$map->limit ) $map->limit = $row['count'];

	if ( $map->limit > 45000 ) {

и тут строится карта из нескольких файлов. хотя нужен реально один общий.

Ссылка на сообщение
Поделиться на других сайтах

MSK,

если вы внимательно посмотрите то оставляется специальный запас в 5000 новостей от максимального лимита google, и роли это не играет в данном запросе, а ресурсы сервера экономит, немного но экономит. Плюс экономия по расходу памяти

У google лимит на максимум ссылок в файле, а не на минимум. Если в нем будет меньше это даже лучше, а не хуже

Ссылка на сообщение
Поделиться на других сайтах

Да я не говорю о том, что на 5к меньше, я о том, что если новостей 40001 и из них 5 на модерации, мы имеем:

$pages_count = @ceil( $row['count'] / 40000 );

2 страницы, и карта новостей будет составляться из 2 частей.

Т.е. будет

sitemap индексный

sitemap1 статические

sitemap2 с новостями

sitemap3 будет пустой и на него ссылка будет в индексном.

Или я что-то упустил?

Ссылка на сообщение
Поделиться на других сайтах

Или я что-то упустил?

да упустили, строчку выше.

	if ( $map->limit > 45000 ) {
и строчка
$pages_count = @ceil( $row['count'] / 40000 );

может быть выполнена только при наличии не менее 45 000 новостей, и никак она не может быть выполнена при наличии 40001 новости

Ссылка на сообщение
Поделиться на других сайтах

И еще заметил такой баг, если было создано несколько файлов sitemap, а затем, например, часть новостей была удалена, то sitemap1,2,3... остаются на сервере.

Ссылка на сообщение
Поделиться на других сайтах

И еще заметил такой баг, если было создано несколько файлов sitemap, а затем, например, часть новостей была удалена, то sitemap1,2,3... остаются на сервере.

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

Ссылка на сообщение
Поделиться на других сайтах

Хорошо, с 1 новостью я привел не совсем показательный вариант.

Пусть на модерации их будет 5001 (при нынешнем обилии автопостеров абсолютно реальная картина), тогда все идет по описаномы выше сценарию.

Зачем закладывать 5к, если можно просто исключить новости на модерации?

их наличие или отсутствие на сервере никакой роли не играют

Ну да, я ожидал именно такой ответ...

Ссылка на сообщение
Поделиться на других сайтах

Пусть на модерации их будет 5001 (при нынешнем обилии автопостеров абсолютно реальная картина), тогда все идет по описаномы выше сценарию.

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

Зачем закладывать 5к, если можно просто исключить новости на модерации?

я ответил уже выше. Экономия нагрузки на MySQL и экономия расходов по памяти, именно по этому в файле находится максимум 40 000 новостей, а не 50 000 как может быть по максимальным лимитам. Доболнительным 10 000 ссылкам требуется много памяти чтобы сформировать и потом записать список в файл

Все расходы по памяти в скрипте строятся по принципу что на все про все у скрипта есть не более 16MB на процесс, это стандартное значение для обычных хостингов. И в это количество нужно вместить не только массив ссылок и всю работу скрипта.

Ссылка на сообщение
Поделиться на других сайтах

Так я же НЕ прошу выдавать все 50к!!!

Я говорю о том, что

"В админской части создания карты не верно считается к-во новостей."

что мешает

	$row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post" );
заменить на
	$row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE approve=1" );

?

Ссылка на сообщение
Поделиться на других сайтах

MSK,

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

Вы написали в разделе багов, вам ответили что это не баг и объяснили почему. Какой смысл в обсуждении что мешает, а что не мешает?

Я уже вам ответил что мешает, не нравится вам ответ, ну ради бога, я не настаиваю чтобы он вам нравился. Этот параметр в запросе не нужен, я не вижу никакого смысла писать лишние параметры в запросе. Все очень просто. По данному вопросу бага нет, если бы он был, я бы ответил, баг есть, будет исправлен, но его нет.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...