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

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

Сcылка:

BBCode:

HTML:
Anvar
Администратор
Администратор
Сообщения: 1260
Зарегистрирован: 08.08.2014, 14:26
Репутация: 356
Статья форума:
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
Репутация: 5

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

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

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

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

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

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

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


Вернуться в «Расширения, модули и хаки»