[MODX] Плагин для формирования замороженных URL с редиректом

Замороженные 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)

  1. Напишите первый комментарий
*Комментарий будет опубликован после проверки модератором

[MODx] Генератор настроек MIGX

[MODx, MIGx] Документация на русском по MIGX

[MODX] Импорт и экспорт в MiniShop2. Реализация 1

[JS] Маска для ввода телефона +7(___)___-__-__

[MODx] minishop2 tips

Как включить HTTPS (SSL) в MODX - Подробная инструкция

[MODx, miniShop2] Генерация YML для выгрузки в маркет

jQuery.Maskedinput js - документация на русском с примерами

[MODx] Подсказки по API

[OpenCart] Вывести на главную все категории с картинками

[MODx] Сайт на обслуживании (выключить сайт)

[MODx, MIGX] Примеры использования

[PHP, JSON] Пример перевода с помощью Yandex Translate API

Расширение свойств товаров minishop2

Универсальная форма обратной связи — feedBackForm

[MODx, Gallery] Галерея. Вывести обложки альбомов и фотографии

[Opencart] Вернуть английский язык, если вы его удалили

[OpenCart] Вывести модуль напрямую через контроллер

[MODX, MIGX] Вывести getImageList только если он не пустой

[MODX, MiniShop2] Примеры выборки where, optionFilters, innerJoin

[MODX, MIGX] Тип поля "Список ресурсов" (resourcelist) с ограничением по родителю (parents)

[MODX] pThumb - ресайз изображений. Примеры использования.

[MODx, Quip] Более рабочий вариант.

Отключить автозаполнение input

Красивое адаптивное меню под pdoMenu

Все записи

Добавьте такую строчку на свой сайт за 2 минуты по инструкции
Наш сайт использует куки, нажмите «ОК» если вы не против
OK