Автогенерация Sitemap

Краткая информация по модулю «Автогенерации карты сайта Sitemap.xml на кроне (cron)»

Модуль позволяет автоматически генерировать карту сайта используя модуль seo оптимизации ( по умолчанию там доступна только ручная генерация).

Также api модуль позволяет расширить карту сайта своими ссылками, добавить свой файл с ссылками на определенные страниц.  

Установить можно отсюда -   https://marketplace.1c-bitrix.ru/solutions/bxmaker.autositemap/


Настройка 

1. После установки модуля нужно зайти в настройки и установить галочки напротив карт, которые необходимо генерировать.  (см. картинку)

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

Путь до файла указан на странице настроек модуля, для примера.  (см. картинку)

3. После этого нужно подождать какое-то время, в зависимости от объема данных карта может генерироваться разное время.  (см. картинку)


Генерация карты в определенное время или через интервал

1. Включение/отключение генерации карт для конкретного сайта без изменения настроек конкретной карты.
2. Включение.отключение генерации карты с конкретными настройками
3. возможность указать через какой интервал генерировать карту
4. Возможность указать время в которое должна начать генерироваться карта сайта

По времени и интервалу есть пояснения на странице настроек.

Настройки модуля автогенерации карты сайта sitemap на кроне

Добавление своего файла с ссылками в карту сайта

Чтобы какой-то файл был добавлен в карту сайта при ручной или автоматической генерации карты сайта, необходимо в файл /bitrix/php_interface/init.php  или /local/php_interface/init.php  следующий код

//добавление дополнительного файла с сылками в карту сайта при генерации -------------
\Bitrix\Main\EventManager::getInstance()->addEventHandler("bxmaker.autositemap", "onSitemapStep", "BXmakerAutoSitemapOnSitemapStep");

function BXmakerAutoSitemapOnSitemapStep(\Bitrix\Main\Event $event)
{
    $arParam = $event->getParameters();

    if (isset($arParam['NS']['XML_FILES']) && is_array($arParam['NS']['XML_FILES'])
        && !in_array('sitemap_bxmaker_autositemap_test.xml', $arParam['NS']['XML_FILES'])) {

        $arParam['NS']['XML_FILES'][] = 'sitemap_bxmaker_autositemap_test.xml';

    }

    $result = new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS, $arParam);
    return $result;
}


Формирование своего файла с ссылками для sitemap.xml

Чтобы добавить ссылки, достаточно использовать  код из примера ниже

if(\Bitrix\Main\Loader::includeModule('bxmaker.autositemap')){

  $sitemapId = 1; // ижентификатор карты, настройки которой нужно использовать
  $siteId = 's1'; // идентификатор сайта для которого генерируется файл

  // открытие файла для записи
  $sitemap = new \BXmaker\AutoSitemap\File('s1', $sitemapId, 'sitemap_bxmaker_autositemap_test.xml');

  // запись ссылок---
  for ($i = 0; $i < 10; $i++) {

    $sitemap->add('/good' . $i . '/', time());
  }

  // окончание записи и закрытие файла
  $sitemap->complete();

}