Правила для URL в MODX: CustomUrls
При разработке новостного блога или любого другого сайта, нужно уметь задавать для конкретных страниц нужные адреса.
К примеру, у нас на сайте есть рубрика новостей и вы хотите чтобы в адресе каждой новости была указана дата.
http://daruse.ru/news/2015/06/08/mynews-title/
Но в таком формате нужно публиковать только новости, чтобы в других разделах адреса были простыми.
Для решения этой задачи в MODX Revo есть замечательный компонент: CustomUrls.
Он позволяет писать правила формирования URL в любом формате и позволяет привязывать эти правила различными способами. По родителю или по шаблону.
Приступим. Для начала загрузим и установим компонент через административную панель (Приложения -> Установщик).
Очистим кэш и перейдём в новое приложение (Приложения -> Custom URLs).
Далее - создаём новое правило (Add a rule).
Теперь разберём все поля:
- Pattern - наше правило формирования (их рассмотрим ниже);
- Constraint field - здесь мы привязываем наше правила к нужным ресурсам. Можно по шаблону - template, по ресурсу - id, по родителю - parent и т.д.;
- Constraint - идентификатор нашего шаблона, ресурса или родителя;
- URI - Псевдоним создается по умолчанию, но можно использовать URI;
- Override - Позволяет менять адрес при обновлении ресурса;
- Active - Включение или отключение правила.
Примеры написания правил
Теперь, для примера, рассмотрим несколько вариантов написания правил:
Простой текст
simple-text
Получим:
http://daruse.ru/simple-text
По заголовку (по умолчанию)
[[+alias]]
Получим:
http://daruse.ru/myalias
Различные поля
[[+alias]]-[[+id]]
Получим:
http://daruse.ru/myalias-24
Дополнительные поля
[[+tv.mytv]]-[[+id]]
Получим:
http://daruse.ru/mytvtext-24
Сниппеты
[[MySnippet? &id=`[[+id]]`]]
Получим:
http://daruse.ru/mysnippet-24
Вывод с датой, в нужном формате
news/[[+publishedon:strtotime:date=`%Y/%m/%d`]]/[[+alias]]
Получим:
http://daruse.ru/news/2016/06/08/myalias
Вот так просто работает данный компонент, он позволяет выводить URL-адреса абсолютно в любом формате.
Оставить комментарий