Наверх

ID документа для алиаса

В разделе «Репосты» расположены чужие статьи, которые мне понравились или показались полезными.

В последнее время стало «модным» использовать в алиасе документа его ID и отказаться от расширений, типа: .html, .php и т.д. Вместо, допустим, такой ссылки:
mysite.ru/section/parent/myresource-alias.html,
получить такую ссылку:
mysite.ru/section/parent/12345.

В этом небольшом топике речь пойдёт именно об этом, ну и конечно реализация.
Для указания, в качестве алиаса, ID документа в MODX revolution напишем плагин на событие OnDocFormSave.

<?php
switch ($modx->event->name) {
    case 'OnDocFormSave';
    // Для новых ресурсов
    if ($mode == 'new') {
        $resource->set('alias',$id);
        $resource->save();
    }
    
    // Для ресурсов, использующих определённый шаблон
    // в этом примере шаблон с id == 5
    /*if ($resource->get('template') == 5) {
        $resource->set('alias',$id);
        $resource->save();
    }*/
 
    // Для ресурсов не являющихся контейнерами (isfolder == 0)
    /*if ($resource->get('isfolder') == 0) {
        $resource->set('alias',$id);
        $resource->save();
    }*/
    
    break;
}

Осталось выбрать какой вариант подойдёт, и не нужные блоки удалить или закомментировать (как в примере).

Теперь избавимся от расширения. Для этого нужно создать новый тип содержимого без указания расширения файла.

В настройках системы указываем следующее:
friendly_urls — Да
default_content_type — Выбрать созданный тип содержимого.

Вот собственно и всё. Таким макаром можно и текущую дату использовать.

Источник: marabar.ru/modx-revolution/101/


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

    Авторизация

    через сервис Loginza:


    Шаблоны MODX

    1 2 Дальше »

    Объектная
    модель
    MODX