pdoSitemap, sitemap.xml, ссылки без слеш на конце
От клиента поступила задача — убрать слеши в конце ссылок в генерируемой карте сайта от pdoSitemap.
MODX Revolution 2.6.5-pl
pdoTools 2.11.2-pl
php 5.6
<loc>
http://site.ru/articles/stati-o-promyishlenn/
</loc>
Как это сделать, подскажите плиз?MODX Revolution 2.6.5-pl
pdoTools 2.11.2-pl
php 5.6
Комментарии: 7
Насколько знаю ссылки выводятся из поля uri. Можно попробовать в Содержимом удалить из типа данных html слэш, а затем перегенерировать uri, на сайте Ильи Уткина были пошаговые скрипты запускаемые через компонент Console.
ilyaut.ru/cheats/step-by-step-the-script-in-console/ — вот нашел.
Спасибо, но такой вариант не пододит конкретно мне.
Дело в том что сайт старый, и на нем много ссылок со слешами — рекламные и в разных местах.
Я на сайте поставил скрипт который перенаправляет с ссылки со слешем на ссылку без слеша с параметром 301.
И мне сейчас нужно конкретно ТОЛЬКО sitemap.xml изменить, не трогая ссылки на сайте в том формате что они есть сейчас.
Дело в том что сайт старый, и на нем много ссылок со слешами — рекламные и в разных местах.
Я на сайте поставил скрипт который перенаправляет с ссылки со слешем на ссылку без слеша с параметром 301.
И мне сейчас нужно конкретно ТОЛЬКО sitemap.xml изменить, не трогая ссылки на сайте в том формате что они есть сейчас.
Ну, можно тупо забыдлокодить, но работать будет :)
Вместо
Вместо
<loc>[[+url]]</loc>\n\t
Делаем что-то типа этого (это лютый быдлокод, но просто как пример фантазии){var $loc = '<loc>'~{$url}~'</loc>\n\t'|replace:'/</loc>':'</loc>'}
{$loc}
Идея в том, чтобы взять готовую строку, и если мы доподлинно знаем, что URL оканчивается слэшем, то смешиваем это с тегом и заменяем. Типа такого.
Не работает к сожалению, но спасибо все равно.
{var $loc = ('<loc>'~{$url}~'</loc>\n\t')|replace:'/</loc>':'</loc>'}
Надо разобраться со скобками. Да и вообще, я механику объяснил, дальше разобраться не проблема.
Столкнулся на днях с такой же проблемой. Бился пару часов, пока не понял, где ошибался. В итоге, создал чанк для параметра tpl у pdoSitemap:
<url>
<loc>[[!slash_out? &slash=`[[+url]]`]]</loc>
<lastmod>[[+date]]</lastmod>
<changefreq>[[+update]]</changefreq>
<priority>[[+priority]]</priority>
</url>
Где «slash_out» — сниппет:if (empty($slash)) { return 'Пустая строка'; }
$slash = preg_replace("#/$#", "", $slash);
return $slash;
И все работает.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.