Sitemap FX Addon - Дополнение для карты сайта

Поддержка, переводы и разработка модификаций, расширений для форумов phpbb 3.0\3.1
Правила форума
Не загружайте скриншоты(изображения) на внешние хостинги и размещения их ссылок в сообщениях. Такие сообщения могут остаться без ответа или будут удалены!
Ответить
Аватара пользователя

Сcылка:

BBCode:

HTML:
Anvar
Администратор
Администратор
Сообщения: 1296
Зарегистрирован: 08.08.2014, 14:26
Статья форума:
Sitemap FX Addon - Дополнение для карты сайта

Sitemap FX Addon - Дополнение для карты сайта

Сообщение Anvar » 29.09.2014, 09:49 #1

Карта сайта должна быть не более 10мб и содержать в себе не более 50000 ссылок. Допускается разбить карту на части, что и делает популярная карта Sitemap FX.
Кроме того каждая разбитая часть на множество мелких map, должна удовлетворять тем-же требованиям, вот это уже Sitemap FX 1.0.8 не делает. Решаем эту проблему с небольшим дополнением.

Открываем: sitemap.php
Находим

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

			sitemap_fx_forum((int) $row['forum_id']);
Заменяем на

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

			$sitemap_index_file .= sitemap_fx_forum((int) $row['forum_id']);
Открываем: includes/functions_sitemap_fx.php
Находим

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

	$sitemap_file = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
	$sitemap_file .= "<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n";
Заменяем на

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

	$rows = 0;
	$mapa = 1;
	$sitemap_file = '';
	$sitemap_index_file = '';
Находим

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

		for ($i=0; $i<=$pages; $i++)
		{
Добавляем после

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

			if ($rows && ($rows % (30000 * $mapa)) == 0) //30000 это количество ссылок в карте.
			{
				$sitemap_files = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
				$sitemap_files .= "<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n";
				$sitemap_files .= $sitemap_file . "</urlset>\n";
				$w = fopen('sitemap/' . $forum_id . '-' . $mapa . '.xml','w');
				fwrite($w, $sitemap_files);
				fclose($w);

				$sitemap_index_file .= "<sitemap>\n";
				$sitemap_index_file .= "<loc>" . $url . '/sitemap/' . $forum_id . "-" . $mapa . ".xml</loc>\n";
				$sitemap_index_file .= "<lastmod>" . date('Y-m-d\TH:i:s+00:00', time()) . "</lastmod>\n";
				$sitemap_index_file .= "</sitemap>\n";

				$sitemap_file = '';
				$mapa++;
			}
			$rows++;
Находим

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

	$sitemap_file .= "</urlset>\n";

	$w=fopen('sitemap/'.$forum_id.'.xml','w');
	fwrite($w,$sitemap_file);
	fclose($w);
Заменяем на

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

	if ($sitemap_file)
	{
		$sitemap_filed = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
		$sitemap_filed .= "<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n";
		$sitemap_filed .= $sitemap_file . "</urlset>\n";

		$w = fopen('sitemap/' . $forum_id . '.xml','w');
		fwrite($w, $sitemap_filed);
		fclose($w);
	}
	return $sitemap_index_file;
Всё, разбитые карты будут теперь вида sitemap/23-1.xml где 23 это форум, а 1 число дополнительных разбитых карт.

Данная модификация необходима для крупных форумов, >=100000 сообщений, использующих Sitemap FX v1.0.8. Соответствие карты проверяется в Webmasters – Google.
Не пишите в ЛС и ICQ вопросы которые можете задать на форуме!
Заказы по разработке не выполняю!

Аватара пользователя
Staiki Kiev
bb3.1.3
bb3.1.3
Сообщения: 387
Зарегистрирован: 03.03.2015, 02:57

Sitemap FX Addon - Дополнение для карты сайта

Сообщение Staiki Kiev » 08.04.2015, 02:11 #2

А подобное можно проделать в 3.1.3 если установлен СЕО сайтмап? Или в нём уже всё сделано?
http://staiki.net/index.php - Форум Компьютерной Помощи

Аватара пользователя
Anvar
Администратор
Администратор
Сообщения: 1296
Зарегистрирован: 08.08.2014, 14:26

Sitemap FX Addon - Дополнение для карты сайта

Сообщение Anvar » 08.04.2015, 11:41 #3

Да Shredder уже позаботился об этом, ещё в phpBB3.0 вроде.

Ответить