Карта сайта xml: кастомизация обновления
Материал из Umicms
Версия от 18:29, 4 июня 2018; Lesnik512 (обсуждение | вклад) (Новая страница: « category:Написание кастомных макросов Может понадобиться управлять механизмом обновлени…»)
Может понадобиться управлять механизмом обновления некоторых страниц карты сайта.
Не так давно появилась новая стандартная точка вызова before_update_sitemap, которой нет в документации.
Механизм назначения обработчика подробно описан в разделе Событийная модель UMI.CMS
Точки вызова before_update_sitemap: Вызывается при подготовке глобальных переменных режим: before параметры: (int) id - id страницы параметры-ссылки: (bool) &robots_deny - запрет для отображения в карте сайта (string) &link - ссылка страницы
Пример обработчика:
public function update_sitemap(iUmiEventPoint $oEventPoint) { if ($oEventPoint->getMode() === "before") { $link = &$oEventPoint->getRef('link'); $robots_deny = &$oEventPoint->getRef('robots_deny'); @$page_id = &$oEventPoint->getParam('id'); $page = $page_id ? umiHierarchy::getInstance()->getElement($page_id) : false; if (!$page instanceof umiHierarchyElement) return true; // // исключаем из карты сайта все комментарии if ($page->getModule() == 'comments') $robots_deny = true; // // на сайте используются модифицированные адреса объектов каталога if ($page->getMethod() == 'object') { $link = '{your_domain}' . $page->getAltName() . '/'; } } return true; }