Каждый сайт, содержимое которого обновляется достаточно динамично, неплохо дополнять картой сайта в формате xml. Также хорошим тоном является составление карты сайта для пользователей. Поисковые системы их тоже «любят». Рассмотрим, как это можно сделать в MODx.
Карта сайта в формате HTML
Для создания карты сайта, как правило, необходимо создать специальную страницу, используя шаблон, который вы считаете для нее наиболее подходящим. Затем вызвать сниппет Wayfinder, например следующим образом:
[[Wayfinder? &startId=`0` &level=`0` ]]
Сниппет Wayfinder входит в список поставляемых вместе с CMS сниппетов и идеально подходит для решения задачи создания карты сайта. Отмечу только то, что по умолчанию страницы, у которых не стоит флаг «показывать в меню» не включаются в карту сайта. Чтобы исправить ситуацию, надо вызвать Wayfinder с параметром &ignoreHidden=1:
[[Wayfinder? &startId=`0` &level=`0` &ignoreHidden=`1` ]]
Для решения этой задачи можно использовать сниппет sitemap с кодом вызова:
[[sitemap? &format=`ulli`]]
Об этом сниппете речь пойдет дальше, но его использование для составления HTML карты сайта может оказаться неудобным, т.к. сниппет не имеет расширенных возможностей по оформлению карты по сравнению с Wayfinder.
Google sitemap для MODx
О google sitemap можно почитать
Динамическую карту сайта можно сделать, используя сниппет Ditto или специальный сниппет sitemap. Найти его в Интернете стоило немалых усилий, поэтому я раместил его у себя на сайте, сохранив информацию о разработчике.
Сниппет sitemap работает несколько быстрее Ditto, его мы и рассмотрим. Для его установки необходимо создать сниппет sitemap и скопировать в него содержимое этого файла.
Для того чтобы сгенерировать карту сайта, нужно следующее:
1) Создать TV параметры sitemap_changefreq и sitemap_priority
sitemap_changefreq
Тип: DropDown List Menu
Возможные значения : always||hourly||daily||weekly||monthly||yearly||never
Значение по умолчанию : поставьте наиболее актуальный для вашего сайта период обновления (например weekly).
sitemap_priority
Тип: DropDown List Menu
Возможные значения : 0.1||0.2||0.3||0.4||0.5||0.6||0.7||0.8||0.9||1
Значение по умолчанию :0.5 (можете поставить любое другое).
2) Создать новый документ в корне сайта
3) Установить «Псевдоним» = sitemap.xml (Семантические URL должны быть включены)
4) Выбрать шаблон «(blank)» в настройках документа-общие
5) Если HTML-редактор контента включен, отключить его
6) Выбрать тип содержимого «text/xml’ в настройках страницы
7) Вставить в «Содержимое страницы»
8) В контент внести [[sitemap]]
9) Обновить сайт.
Возникает вопрос: как исключить из google sitemap некоторые страницы. Сниппет sitemap поддерживает два способа исключения документов:
— по TV-параметру
Необходимо создать TV-параметр sitemap_exclude типа DropDown List Menu с возможными значениями 0||1 и значением по умолчанию 0 для всех шаблонов. Далее выбрать для него значение 1 на всех страницах, которые не должны отображаться в карте сайта.
— по имени шаблона
В вызове можно указать шаблоны или идентификаторы шаблонов страниц, которые не должны отображаться в карте сайта. Код вызова будет примерно таким:
[[sitemap? &excludeTemplates=`myTemplateName,3,4`]]
Я немного доработал скрипт, теперь он на главную страницу сайта не выдает ссылку с псевдонимом, что помогает избежать дублирования контента главной страницы