DLSitemap

Несколько дней назад я обнаружил, что популярный сниппет sitemap для карты в ~60 документов выполнил аж 364 запроса. Так что пришла пора отправить его на свалку и заменить DocLister'ом в виде сниппета DLSitemap (который построил ту же карту за 2 запроса).

Ничего особо интересного в нем нет, разве что я позаимствовал из pdoTools такую фишку:
Приоритет и частота обновления для поисковиков устанавливаются в зависимости от последней даты изменения документа

Это будет работать, если не задавать для документов tv-параметры sitemap_priority и sitemap_changefreq (названия можно менять с помощью параметров priority и changefreq). Или можно написать при вызове сниппета &tvList=''.

Параметр prepare занят для нужд сниппета, поэтому используйте BeforePrepare и AfterPrepare.

Убрать из карты ненужные документы можно с помощью соответствующих параметров DocLister'а. Параметры по умолчанию — в конфиге sitemap.json.

Сниппет добавлен к DocLister'у.

18 комментариев

avatar
дельное дополнение, т.к. действительно sitemap, который идет почти на всех проектах делает слишком много лишних запросов
avatar
Знатоки подскажите пожалуйста, вызвать этот сниппет можно просто так [!DLSitemap!] без параметров?

Если да, то почему на странице красуется ошибка?
Fatal error: Class 'APIhelpers' not found in ...\assets\snippets\DocLister\snippet.DLSitemap.php on line 5
DocLister — 2.3.5, DLSitemap — 1.0.0, modx evo 1.3.3 dev
Комментарий отредактирован 2017-07-29 13:20:42 пользователем jeka
avatar
сам себе отвечу: в начале сниппета вставил строку — include_once(MODX_BASE_PATH. 'assets/lib/APIHelpers.class.php'); и скрипт «поскакал»
avatar
У меня автозагрузка настроена, вот и не обратил внимание. Исправлено.
avatar
А планируется расширение функционала? А то сниппет sitemap хоть и делает запросов не мало, но и имеет функционал побогаче…
avatar
Например?
avatar
Возможность исключить документы по ID, или по ID шаблона. Или я что-то не понял и это и сейчас можно сделать?
avatar
Можно (:
[[DLSitemap? &filters=`content:template:notin:20,8,10`]]
avatar
Круто, спасибо, теперь явно видно, что дельная штука!
avatar
А Ваш сниппет совместим как-то с плагином BLang??
можна сделать разные sitemap для разных языков?
avatar
Не знаю, не пользовался ни разу этим плагином.
avatar
Можно допилить там только tpl по факту заменить что б отдавал вместо 1 ссылки сразу по количеству языков)
avatar
Не совсем понял....
можна чуть подробние, пожалуйства…
avatar
скоро буду делать видео урок по bLang там распишу
avatar
Можна спросить, приблизительно когда это будет?)
avatar
Для поиска по каталогу evoSearch на некоторых ресурсах снял галочку «доступен для поиска» (например главная страница), теперь они не выводятся в файл sitemap. Подскажите, как решить проблему?
avatar
Какая ж это проблема :)
avatar
Действительно, оказалось всё очень просто. Спасибо.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.