Замороженные 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)
Не писать ответ