pdoSitemap / Сниппеты / pdoTools / docs.modx.pro
Быстрый сниппет генерации карты сайта для поисковых систем (sitemap.xml). Понимает параметры сниппета GoogleSitemap (конвертирует в собственные) и легко его заменяет.
Главная особенность — очень высокая скорость, по сравнению с аналогом. На сайте bezumkin.ru при 1700 страниц скорость генерации возросла в 12 раз, с 8.4 сек. до 0.7.
По умолчанию отключена проверка прав на доступ к документам. Это легко исправить включением параметра &checkPermissions (Внимание: замедляет работу!):
[[!pdoSitemap? &checkPermissions=`list` ]]
По возможности ресурсы лучше исключать из карты параметрами сниппета.
Параметры
pdoSitemap принимает все параметры pdoTools и некоторые свои:
Параметр | По умолчанию | Описание |
---|---|---|
&sitemapSchema | http://www.sitemaps. org/schemas/sitemap/0.9 | Схема карты сайта. |
&forceXML | 1 | Принудительно выводить страницу как XML. |
&priorityTV | Дополнительное поле, в котором указывается приоритет документа. Нужно добавить его в параметр &includeTVs |
Шаблоны
&tpl
@INLINE <url>\n\t <loc>[[+url]]</loc>\n\t <lastmod>[[+date]]</lastmod>\n\t <changefreq>[[+update]]</changefreq>\n\t <priority>[[+priority]]</priority>\n </url>
&tplWrapper
@INLINE <?xml version=\"1.0\" encoding=\"[[++modx_charset]]\"?>\n<urlset xmlns=\"[[+schema]]\">\n[[+output]]\n</urlset>
Приоритет и частота обновления для поисковиков устанавливаются в зависимости от последней даты изменения документа:
Времени с последнего обновления документа | Приоритет | Частота обновления |
---|---|---|
Менее суток назад | 1. 0 | daily |
Более суток и менее недели назад | 0.75 | weekly |
Более недели и менее месяца назад | 0.5 | weekly |
Более месяца назад | 0.25 | monthly |
Инструкция по созданию файла sitemap.xml
- Создайте новый документ в корне сайта. На вкладке Документ выберите пустой шаблон, укажите Заголовок документа (не важно какой), и псевдоним sitemap. Проверьте, чтобы стояли галочки «Опубликован» и «Не показывать в меню».
- Перейдите на вкладку Настройки и укажите «Тип содержимого» — «XML».
- Уберите галочку с «Использовать HTML-редактор» и сохраните документ.
- В содержимом ресурса вызовите только сниппет pdoSitemap (см. Примеры ниже).
Примеры
Обычный вывод карты сайта для текущего контекста. В большинстве случаев этого может быть достаточно:
[[pdoSitemap]]
Генерируем карту сайта только из определённый контейнеров:
[[pdoSitemap? &parents=`10` ]]
Исключаем ресурсы с id = 15 и 25, вместе с их потомками:
[[pdoSitemap? &parents=`10, -15,-25` ]]
А теперь исключаем id = 15 с потомками, а 25 — без:
[[pdoSitemap? &resources=`-25` &parents=`-15,10` ]]
Добавляем еще один контекст:
[[pdoSitemap? &resources=`-25` &parents=`-15,10` &context=`web,catalog` ]]
А вот так можно посмотреть лог выборки карты:
[[pdoSitemap? &resources=`-25` &parents=`-15,10` &context=`web,catalog` &showLog=`1` &forceXML=`0` ]]
MODX sitemap | документация с примерами по PdoSitemap
Автор Алексей На чтение 4 мин Просмотров 5.
8к. Опубликовано ОбновленоСодержание
- Что такое sitemap.xml
- Документация по сниппету pdoSitemap
- Параметры
- Шаблоны
- Создание sitemap.xml в MODX Revo
- Больше примеров вызова
Сегодня мы разберем как в MODX Revo создать sitemap.xml. Перед тем как начать, давайте изучим немного теории.
Что такое sitemap.xml
Sitemaps — это XML файл содержащий в себе информацию для роботов поисковых систем, о страницах сайта, подлежащих индексации. Иными словами сайтмап помогает поисковым роботам более быстро определять место нахождения страниц, время и частоту их обновления, а так же их важность.
Документация по сниппету pdoSitemap
Быстрый сниппет генерации карты сайта для поисковых систем (sitemap.xml). Понимает параметры сниппета GoogleSitemap (конвертирует в собственные) и легко его заменяет. Главная особенность — очень высокая скорость, по сравнению с аналогом.
По умолчанию отключена проверка прав на доступ к документам. Это легко исправить включением параметра
[[!pdoSitemap? &checkPermissions=`list` ]]
По возможности ресурсы лучше исключать из карты параметрами сниппета.
Параметры
pdoSitemap принимает все параметры pdoTools и некоторые свои:
Параметр | По умолчанию | Описание |
---|---|---|
&sitemapSchema | http://www.sitemaps.org/schemas/sitemap/0.9 | Схема карты сайта. |
&forceXML | 1 | Принудительно выводить страницу как XML. |
&priorityTV | Дополнительное поле, в котором указывается приоритет документа. Нужно добавить его в параметр &includeTVs |
Шаблоны
&tpl
@INLINE <url>\n\t <loc>[[+url]]</loc>\n\t <lastmod>[[+date]]</lastmod>\n\t <changefreq>[[+update]]</changefreq>\n\t <priority>[[+priority]]</priority>\n </url>
&tplWrapper
@INLINE <?xml version=\"1. 0\" encoding=\"[[++modx_charset]]\"?>\n<urlset xmlns=\"[[+schema]]\">\n[[+output]]\n</urlset>
Приоритет и частота обновления для поисковиков устанавливаются в зависимости от последней даты изменения документа:
Времени с последнего обновления документа | Приоритет | Частота обновления |
---|---|---|
Менее суток назад | 1.0 | daily |
Более суток и менее недели назад | 0.75 | weekly |
Более недели и менее месяца назад | 0.5 | weekly |
Более месяца назад | 0.25 | monthly |
Создание sitemap.xml в MODX Revo
Перед тем как начать, вам желательно настроить чпу modx, если оно не настроено.
Создавать sitemap.xml мы будем при помощи pdoSitemap (данный сниппет входит в пакет pdoTools), он у вас должен быть уже установлен. Рассмотрим пошагово, процесс создания сайтмап.
1. Создайте документ и заполните вкладку «Документ» следующим образом:
- Заголовок – sitemap;
- Шаблон – пустой шаблон;
- Псевдоним – sitemap;
- Не показывать в меню – Да.
- Опубликован – Да.
2. Перейдите во вкладку «Настройки» и выберите следующее:
- Тип содержимого – XML.
- Доступен для поиска – Нет.
- Использовать HTML редактор – Нет.
- Сохранить документ (ресурс).
Примечание! Если у вас не настроено ЧПУ, то во вкладке Настройки вероятно нужно так же выбрать — Заморозить URI и ввести в поле URL — sitemap.xml.
Важно! Если поисковые системы не видят файл то вместо встроенного местонахождения выберите прикрепленный файл.
3. В поле содержимое ввести: [[!pdoSitemap]] и снова сохранить.
Все. Можно проверить результат, для того нажмите на кнопку посмотреть, либо перейдите по адресу сайт.ru/sitemap.xml.
Больше примеров вызова
Генерируем карту сайта только из определённый контейнеров:
[[pdoSitemap? &parents=`10` ]]
Исключаем ресурсы с id = 17 и 27, вместе с их потомками:
[[pdoSitemap? &parents=`10, -17,-27` ]]
А теперь исключаем id = 17 с потомками, а 27 — без:
[[pdoSitemap? &resources=`-27` &parents=`-17,10` ]]
Добавляем еще один контекст:
[[pdoSitemap? &resources=`-25` &parents=`-15,10` &context=`web,catalog` ]]
А вот так можно посмотреть лог выборки карты:
[[pdoSitemap? &resources=`-27` &parents=`-17,10` &context=`web,catalog` &showLog=`1` &forceXML=`0` ]]
Пример вызова карты сайта на fenom:
{'!pdoSitemap' | snippet : [ 'parents' => '0', 'checkPermissions' => 'list', 'context' => 'web', 'showHidden' => '1' ]}
Что такое pdoTools? (Часть 1)
После создания новой установки MODX следующим шагом часто является установка ряда дополнений для добавления функциональности сайту.
Обычный набор известен:
- getResources для списка ваших документов
- getPage для нумерации ваших списков
- Wayfinder для меню сборки
- Панировочные сухари для панировочных сухарей
- GoogleКарта сайта для карты сайта
Но можно заменить их все одним пакетом: pdoTools!
Начнем с того, что может сделать pdoTools.
9 фрагментов
Да, я серьезно. pdoTools содержит 9 сниппетов, которые могут выполнять практически любую функциональность обычного веб-сайта. И почти все они являются заменой другим популярным сниппетам.
pdoResources
pdoResources заменяет getResources.
Как и все другие сниппеты в pdoTools, он не использует объекты xPDO для представления ресурсов. Он работает напрямую с таблицами базы данных. Это делает его быстрее.
Вам не нужно преобразовывать даты ресурсов в метки времени, прежде чем вы сможете передать их в выходной фильтр «дата». И он объединяет только нужные телевизоры, поэтому вы должны указать их в свойстве &includeTVs
в виде списка, разделенного запятыми.
[[pdoResources? &родители=`0` &includeTVs=`my_tv1,my_tv2` &tvPrefix=`tv.` &processTVs=`1` &includeContent=`1` &showLog=`1` ]]
Одной из наиболее важных функций pdoTools является &showLog
свойство. Это позволяет вам проверить, насколько быстрым является фрагмент. Это медленный SQL-запрос или слишком сложный фрагмент? Свойство &showLog
поможет вам разобраться.
Второй важной особенностью являются соединения SQL. С помощью pdoResources вы можете создавать сложные запросы и выбирать только то, что вам нужно.
[[!pdoResources? &родители=`0` &class=`modResource` &leftJoin=`{ "Родитель": { "класс": "модРесурс", "on": "modResource.parent = Parent.id" }, "Сделано": { "класс": "modUserProfile", "on": "modResource. createdby = CreatedBy.internalKey" } }` &выбрать=`{ "modResource": "modResource.id, modResource.pagetitle", "Родитель": "Parent.pagetitle как родитель", "CreatedBy": "CreatedBy.fullname как автор" }` &showLog=`1` ]]
В приведенном выше примере вам не нужно вызывать какие-либо фрагменты или фильтры вывода, чтобы получить родителя ресурса или имя создателя. Как быстро это работает? Давайте посмотрим на вывод журнала..
Есть много других интересных функций, но эти самые важные.
pdoPage
pdoPage является заменой getPage. Есть несколько отличий от getPage:
- Он не показывает пустые страницы. Если у вас нет результатов на странице, или пользователь ввел не ту страницу вручную — вы будете перенаправлены на первую страницу.
- Имеет свойство
&maxLimit
, для которого по умолчанию установлено значение 100. Это гарантирует, что пользователи не смогут замедлить работу вашего сайта, установив&limit=100000
в URL-адресе. Если вы используете getPage — просто попробуйте сделать это на своем сайте. - Устанавливает метатеги на предыдущую и следующую страницы для поисковых роботов в заголовке страницы.
- Имеет встроенную пагинацию ajax. Вот как это работает:
<дел> <дел> [[!pdoPage? &родители=`0` &ajaxMode=`по умолчанию` ]]