Кастомизация сохранения псевдостатических адресов страниц
Материал из Umicms
Версия от 13:47, 29 мая 2020; Aposio (обсуждение | вклад)
Актуально для версии 21
Задача
Сохранять псевдостатические адреса страниц в произвольном виде.
Например: необходимо сохранить страницу с адресом site.ru/page.html, но система автоматически преобразует такой адрес в site.ru/page-html.
Решение
1. Создаем файл classes/components/content/custom_events.php, регистрируем в нем слушателя события:
<?php
new umiEventListener('systemModifyElement', 'content', 'changeAltName');
2. В файле classes/components/content/customMacros.php описываем метод, который будет изменять псевдостатический адрес именно на тот, который мы указали:
public function changeAltName(iUmiEventPoint $event) {
if ($event->getMode() == 'after') {
if (is_string(getRequest('alt-name'))) {
$altName = getRequest('alt-name') !== '' ? getRequest('alt-name') : getRequest('name');
$element = $event->getRef('element');
$element->setAltName($altName, false);
$element->commit();
}
}
}
Теперь если в поле страницы "Псевдостатический адрес" написать "page.html", то это значение сохранится без преобразования и страница будет открываться по данному адресу.