Замороженные URL в MODX нужны для того, чтобы проигнорировать автоматически сгенерированный URL и задать произвольный. В этом примере я представляю плагин, который будет автоматически генерировать замороженный URL, и создавать редирект со старого адреса страницы на новый.
Для организации редиректов будем использовать autoRedirector. Если же вы внедряете плагин еще до выхода сайта, то редиректы могут быть и не нужны.
Создаем плагин и включаем его на событие OnDocFormSave:
// Активируем только для определенного шаблона
if($resource->get('template') == 8){
$id = $resource->get('id');
// Ваш новый URL
$uri = "product/tovar-".$id;
if($resource->get('uri') != $uri){
// Обеспечиваем редирект
$olduri = $resource->get('uri');
$modelPath = $modx->getOption('autoredirector_core_path',null,$modx->getOption('core_path').'components/autoredirector/').'model/';
$modx->addPackage('autoredirector', $modelPath);
$arRule = array('uri' => $olduri, 'res_id' => $id);
$processorProps = array('processors_path' => $modx->getOption('autoredirector_core_path',null,$modx->getOption('core_path').'components/autoredirector/').'processors/');
if (!$modx->getObject('arRule', $arRule)) {
$response = $modx->runProcessor('mgr/item/create', $arRule, $processorProps);
// Устанавливаем замороженый URL
if (!$response->isError()) {
$resource->set('uri_override', 1);
$resource->set('uri', $uri);
$resource->save();
}
}
}
}
Комментарии (0)
Не писать ответ