Убрать вложенность url у товаров
Добрый день!
Подскажите пожалуйста, есть ли возможность убрать вложенность url только у товаров minishop2, у все остальных ресурсов — сохранить вложенность?
версия modx 2.6.5pl
Можно, конечно, плагином при сохранении товара замораживать uri.
Но при использовании компонента импорта, uri будет прописываться как в настройках сайта, т.е вложенный.
Пока вижу решение в таком плагине —
p.s. Вобщем это похоже единственное решение, и в процессоре minishop2 create вызывается
fireBeforeSaveEvent(), а там invokeEvent('OnBeforeDocFormSave').
Так что при импорте должно быть все в порядке.
Подскажите пожалуйста, есть ли возможность убрать вложенность 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').
Так что при импорте должно быть все в порядке.
Комментарии: 2
Добавьте фиксацию URI и поправьте получение псевдонима:
if ($modx->event->name == 'OnDocFormSave') {
if ($resource->class_key == 'msProduct') {
$resource->set('uri', $resource->get('alias'));
$resource->set('uri_override', 1);
$resource->save();
}
}
Да, спасибо. Уже разобрался
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.