Как убрать часть URL при сохранении Tickets

20 января 2020, 17:56

Возникла необходимость обрезания URL'ов для сайта modx.one, чтобы все тикеты сохранялись с короткой и однообразной ссылкой вида https://modx.one/t/657/. Для этого необходимо произвести следующие действия. У секции с тикетами нужно настроить "Формирование URI" следующим образом:

%id%ext

Чтобы %ext не выводил по умолчанию .html нужно в верхнем меню зайти в Содержимое -> Типы содержимого и изменить поле .html на слэш /.

После чего вешаем плагин

<?php
switch ($modx->event->name) {
    case 'OnDocFormSave':
        $resid = $resource->get('id');
        $uriedit = 't/'. $resid . '/';
        $resource->set('uri', $uriedit);
        $resource->save();
        break;
    case 'OnBeforeDocFormSave':
        $resid = $resource->get('id');
        $uriedit = 't/'. $resid . '/';
        $resource->set('uri', $uriedit);
        $resource->save();
        break;
    case 'OnTicketThreadOpen':
        $resid = $resource->get('id');
        $uriedit = 't/'. $resid . '/';
        $resource->set('uri', $uriedit);
        $resource->save();
        break;
}

на события OnDocFormSave, OnBeforeDocFormSave, OnTicketThreadOpen.

MODX.ONE
0    13205    4
+2

Комментарии ()

  1. Андрей 20 января 2020, 21:27 # +2
    О, как раз искал как удалить от ссылок генерируемые URI в Tickets. Огромное спасибо за статью! Всё получилось!
    1. SEQUEL.ONE 20 января 2020, 21:32 # +1
      Конечно можно было и по изящней реализовать)
      1. MODX.ONE 20 января 2020, 21:35 # 0
        Если будет время и возможность сделаете по красоте?
      2. MODX.ONE 20 января 2020, 21:34 # 0
        Пожалуйста, для того и пишем заметки. Всё из личного опыта и с рабочих проектов. =)

      Вы должны авторизоваться, чтобы оставлять комментарии.