Создание пользовательских URL
- Дополнение CustomUrls
- Требования
- Загрузка
- Поддержка, комментарии, разработка и заявки на исправление ошибок
- Использование
- Правила использования
- Примеры использования
- Второй способ создания пользовательских URL с помощью плагина
Дополнение CustomUrls
Это дополнение для определения пользовательских псевдонимов или URI паттернов для ваших ресурсов. Он поддерживает дополнения translit и Redirector.
Вы можете построить ваши паттерны из полей ресурса, ТВ, сниппетов и фильтров вывода и установить некоторые условия так же, как и с пользовательскими формами.
Например, с CustomURLs вы можете добавлять ID ресурса или месяц публикации в алиасы всех ресурсов или просто для одного, чей родитель = 1 или шаблон = 1.
Требования
- MODx Revolution 2.2.x или выше
- PHP5 или выше
Загрузка
Дополнение может быть загружено из менеджера MODX Revolution через Управление дополнениями или из MODX репозитория дополнений
Поддержка, комментарии, разработка и заявки на исправление ошибок
Github : https://github.com/omycode/customurls
Поддержка/Комментарии : http://forums.modx.com/thread/78843/support-comments-for-customurls
Использование
Для начала работы с CustomUrls, перейдите в Компоненты (Components) > Custom URLs и добавьте правило

Свойства правил
Имя | Описание | Пример |
---|---|---|
Шаблон |
Ваш пользовательский URL паттерн построен из текста, полей ресурсов, ТВ, сниппетов и фильтров вывода. Вы также можете использоватьcu.parent заполнитель для получения полного пути родительского ресурса. | [[+id]]-[[+alias]] |
Поле ограничений |
Может быть полем ресурса: ИД (id), родитель (parent), шаблон (template) ... | Шаблон |
Ограничительное значение |
2 | |
Группа пользователя | Группа пользователя для которой действует правило | Администраторы |
URI | По-умолчанию, создаются псевдонимы, но вы можете вместо этого выбрать создание URI | false |
Перезапись | Перезапись псевдонима или URI при создании ресурса. | true |
Активный | Правиль активное ? | true |
Примеры использования
Простой текст :
simple-text
MODX псевдоним по-умолчанию :
[[+alias]]
Поля ресурса :
[[+id]]-[[+alias]]
TВ :
[[+tv.mytv]]-[[+id]]
Сниппеты :
[[MySnippet? &id=`[[+id]]`]]
Фильтры вывода :
[[+publishedon:strtotime:date=`%Y-%m-%d`]]/[[+id]]-[[+alias]]
MODx URI по-умолчанию :
[[+cu.parent_uri]]/[[+alias]]
Более сложные URI
[[+cu.parent_uri]]/some-text/[[getResourceField? &id=`[[+parent]]`]]/[[+id]]-[[+alias]]
Второй способ создания пользовательских URL
Устанавливаем пакет translit, включаем ЧПУ, выставлям ключ 'automatic_alias' (Автоматическая генерация псевдонима) в 'Да', ключ 'friendly_alias_translit' (Транслитерация псевдонимов) в 'russian' для того, чтобы иметь возможность поле алиаса в форме создания/редактирования ресурса оставлять пустым.
Создаём плагин:
Указываем событие для плагина: 'OnDocFormSave'
19-09-2012 SEO FURL ЧПУ Виктор Матушевский
Николай Зуев
22.09.2012 18:34Из статьи не понятно как использовать.
Мне нужно из url вида
site.ru/alias1/alias2
site.ru/alias1/alias3
site.ru/alias1/alias4 и т.д.
сделать
site.ru/alias2
site.ru/alias3
site.ru/alias4 и т.д.
Все перепробовал - ни какой реакции
Viktor Minator
08.11.2012 12:49Попробуйте Freeze URI использовать
Дима Лукьянов
05.01.2013 15:30А нельзя просто не использовать вложенные урл?
Сергей-Добродей Павлов
28.04.2013 12:52У меня такая же проблема. У вам удалось решить вашу задачу freeze URL не работает (прописал полный урл к ресурсу в итоге Url меняется но сама страница нет), без вложененности ни как нельзя так как есть основные разделы а в них другие ресурсы. например у меня раздел НОВОСТИ в нем все статьи нет смыла их выносить в корень
Yuri Bukanov
09.10.2013 13:56Кто-нибудь решил вопрос с удалением alias`а папки из url`а вложенного в нее ресурса?
Николай Соловьев
10.02.2014 07:55Custom Urls отказывается работать. Задаю правило и ничего не происходит. Ошибок нет. В чем может быть проблема?
Igor Efclid
20.04.2014 12:55Памятку писал для себя, так что копирую как есть:
Устанавливаем компонент
Если не установлен translit:
CustomUrls при генерации ссылок использует pagetitle, в результате получаются ссылки на русском языке.
Чтобы этого не происходило нужно установить и настроить translit или идешь по адресу
site.ru/core/components/customurls/model/customurls
файл customurls.class.php
строка 92: $resourceProperties['alias'] = $resource->cleanAlias($resource->get('pagetitle')); // We manually generate alias to avoid recurisivity
заменяешь на: $resourceProperties['alias'] = $resource->get('alias'); // We manually generate alias to avoid recurisivity
Сохраняешь.
Для того чтобы убрать из ссылки категорию:
Из
site.ru/категория/подкатегория/материал
Сделать
site.ru/подкатегория/материал
Add rule (для подкатегории)
Pattern:
Constraint field: parent or template or любой другой идентификатор
Constraint: id parent or id template (соответственно, в зависимости от того, что выбрал в Constraint field)
User Group: по желанию
Uri: да
Override: нет
Active: да
Сохранить
Обязательно: Regenerate custom URLs прежде, чем создавать следующее правило.
Add rule (для материалов в подкатегории)
Pattern: /
Constraint field: parent or template or любой другой идентификатор
Constraint: id parent or id template (соответственно, в зависимости от того, что выбрал в Constraint field)
User Group: по желанию
Uri: да
Override: нет
Active: да
Сохранить
Обязательно: Regenerate custom URLs
Igor Efclid
20.04.2014 12:59Pattern 1: alias
Pattern2: cu.parent_uri/alias
Поставить плюсы и квадратные скобки, вырезались из-за ограничения по тегам