Карта сайта для ботов - phpBB3 SEO Sitemap

Здесь авторы могут постить бета-версии своих модификаций для phpBB 3.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Карта сайта для ботов - phpBB3 SEO Sitemap

Сообщение Shredder »

На офсайте версию 2.1.1 не валидировали и объяснили это тем, что "Возможно, этот запрос не будет работать на большинстве серверов БД отличных от MySQL":

Код: Выделить всё

$sql = 'SELECT f.forum_id, f.forum_name, f.forum_topics_per_page, t.topic_id, t.topic_type, t.topic_last_post_time, t2.topic_id AS last_topic_id
FROM ' . TOPICS_TABLE . ' t
LEFT JOIN ' . FORUMS_TABLE . ' f ON t.forum_id = f.forum_id
LEFT JOIN (SELECT topic_id, forum_id FROM ' . TOPICS_TABLE . '
WHERE topic_approved = 1
' . $soft . '
ORDER BY CASE
WHEN topic_type = ' . POST_NORMAL . ' THEN 1
WHEN topic_type = ' . POST_STICKY . ' THEN 2
' . ((defined('POST_ARTICLE')) ? 'WHEN topic_type = ' . POST_ARTICLE . ' THEN 3' : '') . '
ELSE 4
END, topic_last_post_time) t2 ON t2.forum_id = f.forum_id
WHERE t.topic_approved = 1
' . (($excl) ? 'AND (t.topic_type = ' . POST_GLOBAL . ' OR ' . $db->sql_in_set('f.forum_id', $excl, true) . ')' : '') . '
' . $soft_t . '
GROUP BY t.topic_id
ORDER BY f.forum_id,
CASE
WHEN t.topic_type = ' . POST_ANNOUNCE . ' THEN 1
' . ((defined('POST_ARTICLE')) ? 'WHEN topic_type = ' . POST_ARTICLE . ' THEN 2' : '') . '
WHEN t.topic_type = ' . POST_STICKY . ' THEN 3
ELSE 4
END, t.topic_last_post_time DESC';
Ответа на вопрос "почему именно он не будет работать?" я так и не дождался, поэтому копирую сюда, в надежде, что здесь есть компетентные люди, которые подскажут.

А то, что не валидировали - это хорошо, поскольку почти сразу после отправки мода на валидацию я обнаружил, что на форумах с миллионами сообщений эта версия уводит сервер в глубокий даун, а читать и отвечать на бесконечное нытьё по поводу "установил мод и сервер лёг. памагите! памагите!!" я не хочу. Поэтому имейте в виду, что если у вас гигантский форум, то вам подойдёт только версия 2.0.2, т.к. алгоритм с "точным подсчётом времени модификации страниц" в 2.1.1 доказал свою полную несостоятельность, как я изначально и думал.
Аватара пользователя
xisp
phpBB 3.0.0 RC7
Сообщения: 1798
Стаж: 14 лет 4 месяца
Благодарил (а): 152 раза
Поблагодарили: 215 раз
Забанен: Бессрочно

Re: Карта сайта для ботов - phpBB3 SEO Sitemap

Сообщение xisp »

Shredder писал(а):я обнаружил, что на форумах с миллионами сообщений эта версия уводит сервер в глубокий даун
Где именно тормозит, узнавать не пробовал?
phpBBex
romeo_piter
phpBB 2.0.22
Сообщения: 1375
Стаж: 17 лет 5 месяцев
Благодарил (а): 260 раз
Поблагодарили: 32 раза

Re: Карта сайта для ботов - phpBB3 SEO Sitemap

Сообщение romeo_piter »

Shredder писал(а):если у вас гигантский форум
Что в данном случае подразумевается?

>100К сообщений,
>1000К сообщений,
>10 000К сообщений


Откатывать на 2.0.2 путем полного сноса или можно как-нить по другому? )
Аватара пользователя
xisp
phpBB 3.0.0 RC7
Сообщения: 1798
Стаж: 14 лет 4 месяца
Благодарил (а): 152 раза
Поблагодарили: 215 раз
Забанен: Бессрочно

Re: Карта сайта для ботов - phpBB3 SEO Sitemap

Сообщение xisp »

romeo_piter, если у вас всё работает, откатываться не нужно.
phpBBex
romeo_piter
phpBB 2.0.22
Сообщения: 1375
Стаж: 17 лет 5 месяцев
Благодарил (а): 260 раз
Поблагодарили: 32 раза

Re: Карта сайта для ботов - phpBB3 SEO Sitemap

Сообщение romeo_piter »

Ну так я же не стою на месте )))
Просто уже сталкивался с тем, какой гемор приносят когда-то поставленные и забытые моды. Яркий пример та же репутация, которая в период становления не грузила форум, а потом стало хуже.
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Карта сайта для ботов - phpBB3 SEO Sitemap

Сообщение Shredder »

romeo_piter писал(а):Что в данном случае подразумевается?
У меня с 200.000 работает хорошо.
Но в итоге всё зависит от вашего сервера.

поэтому:
xisp писал(а):если у вас всё работает, откатываться не нужно.
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Карта сайта для ботов - phpBB3 SEO Sitemap

Сообщение Shredder »

xisp писал(а):Где именно тормозит, узнавать не пробовал?
Конкретно на том форуме - похоже, что этот длинный запрос вызывает дедлоки.

Добавлено спустя 23 секунды:
Всего сообщений: 1049565 | Тем: 94962 | Всего изображений 11020 | Пользователей: 63613
Добавлено спустя 1 час 7 минут 41 секунду:
Похоже, что сайт ложится из-за подзапроса:

Код: Выделить всё

		LEFT JOIN (SELECT topic_id, forum_id FROM ' . TOPICS_TABLE . '
			WHERE topic_approved = 1
			' . $soft . '
			ORDER BY CASE
				WHEN topic_type = ' . POST_NORMAL . ' THEN 1
				WHEN topic_type = ' . POST_STICKY . ' THEN 2
				' . ((defined('POST_ARTICLE')) ? 'WHEN topic_type = ' . POST_ARTICLE . ' THEN 3' : '') . '
				ELSE 4
			END, topic_last_post_time) t2 ON t2.forum_id = f.forum_id
Буду думать, как разбить эту конструкцию (см. самый первый пост этой страницы) на 2 части, как будет желание и время.
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Карта сайта для ботов - phpBB3 SEO Sitemap

Сообщение Shredder »

В общем, сегодня я переписал логику скрипта так, чтобы при генерации карты ничего не ложилось (по крайней мере, на том сервере, где проверял). Генерация карты на миллионе постов занимает примерно минуту (на версии 2.0.2 - 4 секунды). НО! Опять преподнесли сюрприз корзинные говномоды... Ранее я писал, что добавил поддержку для двух модов "мягкого удаления" - см. Карта сайта для ботов - phpBB3 SEO Sitemap и http://www.phpbb-work.ru/seo-sitemap-t19-30.html#p357
Я там сделал даже приписку, что Soft Delete - старый и глючный мод, и вместо него лучше использовать всем известный Prime Trash Bin
Но при сегодняшнем тестировании оказалось, что при выборе в опциях Prime Trash Bin "Удалять с возможностью оставить ссылку" или "Помечать темы как удалённые" в списке тем наличествует баг с убитой пагинацией. Даже в Soft Delete такого нет, хотя и там не совсем верно подсчитывается количество удалённых тем. А в Prime Trash Bin оно вообще не подсчитывается, и в результате этого разбиение на страницы и расположение тем на них становится непредсказуемым. Внутри самих тем - если имеются "мягко удалённые" сообщения - с ними, вроде бы, всё нормально. В общем, пока автор этого мода не исправит свой баг в viewforum.php, создать нормальную карту для этого случая не получится.

Новую версию пока нигде не выкладываю, т.к. остался ещё вопрос с валидацией. Хочу уже сразу сделать всё "правильно", чтобы не менять версии тысячу раз.
romeo_piter
phpBB 2.0.22
Сообщения: 1375
Стаж: 17 лет 5 месяцев
Благодарил (а): 260 раз
Поблагодарили: 32 раза

Re: Карта сайта для ботов - phpBB3 SEO Sitemap

Сообщение romeo_piter »

Проблема с Prime Trash Bin присутствует только в новой версии? Или в старой тоже?
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Карта сайта для ботов - phpBB3 SEO Sitemap

Сообщение Shredder »

romeo_piter
Во всех.
Подчеркну, что это проблема самого мода Prime Trash Bin и никоим образом не связана с картой. Обнаружил это на одном действующем форуме, где в одном из разделов было удалено около 1200 тем, а видимых осталось 800 - на страницах была полная каша. После этого уже в тестовом форуме поставил в настройках 4 темы на странице (для тестов, чтобы по 50 тем не плодить), удалил 4 темы из 6-ти, осталось 2 темы, видимых обычному пользователю (а значит, и боту), но пишет, что тем 6 и выводит 2 страницы форума, на которых по 2 одинаковых темы:
Clip_1.png
Clip_2.png
Исправляется это в viewforum.php, в коде, выводящем число тем:

Код: Выделить всё

if ($sort_days)
{
	$min_post_time = time() - ($sort_days * 86400);

	$sql = 'SELECT COUNT(topic_id) AS num_topics
		FROM ' . TOPICS_TABLE . "
		WHERE forum_id = $forum_id
			AND ((topic_type <> " . POST_GLOBAL . " AND topic_last_post_time >= $min_post_time)
				OR topic_type = " . POST_ANNOUNCE . ")
		" . (($auth->acl_get('m_approve', $forum_id)) ? '' : 'AND topic_approved = 1');
	$result = $db->sql_query($sql);
	$topics_count = (int) $db->sql_fetchfield('num_topics');
	$db->sql_freeresult($result);

	if (isset($_POST['sort']))
	{
		$start = 0;
	}
	$sql_limit_time = "AND t.topic_last_post_time >= $min_post_time";

	// Make sure we have information about day selection ready
	$template->assign_var('S_SORT_DAYS', true);
}
else
{
	$topics_count = ($auth->acl_get('m_approve', $forum_id)) ? $forum_data['forum_topics_real'] : $forum_data['forum_topics'];
	$sql_limit_time = '';
}
Но видимо, автору невдомёк, либо просто пофиг... Раз за такое количество времени он до сих пор не исправил.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Карта сайта для ботов - phpBB3 SEO Sitemap

Сообщение Shredder »

Касательно предыдущего поста:
Shredder писал(а):Но видимо, автору невдомёк, либо просто пофиг... Раз за такое количество времени он до сих пор не исправил.
Я сообщал ему о баге пару месяцев назад, он сказал, что занят на платных работах. Как освободился, 11 сентября написал, что исправил описанный выше баг. Новую версию мода Prime Trash Bin можно скачать на его сайте: http://www.absoluteanime.com/admin/mods.htm#trash_bin
Сам пока не проверял.
MagmaMan
phpBB 1.2.1
Сообщения: 25
Стаж: 13 лет 2 месяца

Re: Карта сайта для ботов - phpBB3 SEO Sitemap

Сообщение MagmaMan »

После установки мода, сообщения почему-то не показываются после отправки. Если потом еще раз отправить сообщение, то покажется и первое, и второе, вот только второе будет иметь приписку "Добавлено спустя 45 лет 1 день 14 часов 40 минут 13 секунд:", вместо, скажем, "добавлено спустя 2 секунды".

Если после этого еще и удалить второе сообщение (то, что было добавлено), то оно все равно останется, но уже в виде кода "[color=green:ubst8vxm]Добавлено спустя...."

Можно ли как-то это исправить? Стоят моды Доработка Quick reply for phpBB3 (rxu) и Advanced Posts Merging, если это как-то пригодиться.
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Карта сайта для ботов - phpBB3 SEO Sitemap

Сообщение Shredder »

MagmaMan
Почему думаете, что проблема связана именно с картой? Попробуйте на время откатить правки в файле includes/functions_posting.php и посмотреть, как будут отправляться сообщения.
С БО и Posts Merging от rxu никаких конфликтов быть не должно, потому что на паре моих форумов карта стоит вместе с ними.
MagmaMan
phpBB 1.2.1
Сообщения: 25
Стаж: 13 лет 2 месяца

Re: Карта сайта для ботов - phpBB3 SEO Sitemap

Сообщение MagmaMan »

Shredder
До установки мода я других изменений я не проводил - только менял внешний вид и центровал сообщения с информацией, и все работало.

Возможно, мод неправильно установился как-то... я так и не понял, а какое должно быть подтверждение успешной установки?

Версия мода 2.2.2, версия форума 3.11.
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Карта сайта для ботов - phpBB3 SEO Sitemap

Сообщение Shredder »

MagmaMan писал(а):а какое должно быть подтверждение успешной установки?
1) Появление настроек в админразделе.
2) Открытие карты в браузере по адресу http://ваш_форум/sitemap.php
MagmaMan писал(а):Возможно, мод неправильно установился как-то... я так и не понял
Так удалите его и посмотрите.

Вернуться в «Бета-версии модов для phpBB 3.0.x»