Убрать вложенность url у товаров

Добрый день!

Подскажите пожалуйста, есть ли возможность убрать вложенность url только у товаров minishop2, у все остальных ресурсов — сохранить вложенность?

версия modx 2.6.5pl

Можно, конечно, плагином при сохранении товара замораживать uri.
Но при использовании компонента импорта, uri будет прописываться как в настройках сайта, т.е вложенный.

Пока вижу решение в таком плагине —

<?php
$eventName = $modx->event->name;


switch($eventName) {
    case 'OnDocFormSave':
      if ($resource->get('class_key') == 'msProduct') { 
        $alias = $resource->get('alias');
        $resource->set('uri',$alias);
         $resource->set('uri_override', 1);
        $resource->save();
      }
    break;
}

p.s. Вобщем это похоже единственное решение, и в процессоре minishop2 create вызывается
fireBeforeSaveEvent(), а там invokeEvent('OnBeforeDocFormSave').
Так что при импорте должно быть все в порядке.
Евгений
10 декабря 2018, 16:37
modx.pro
837
0

Комментарии: 2

Павел Романов
10 декабря 2018, 18:19
0
Добавьте фиксацию URI и поправьте получение псевдонима:
if ($modx->event->name == 'OnDocFormSave') {
    if ($resource->class_key == 'msProduct') { 
        $resource->set('uri', $resource->get('alias'));
        $resource->set('uri_override', 1);
        $resource->save();
    }
}
    Евгений
    10 декабря 2018, 18:28
    0
    Да, спасибо. Уже разобрался
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2