Наверх

Часть 3 (Отступление). Пишем плагин

Здесь напишу небольшую подсказку для тех, кто еще ни разу не писал плагинов. Готового ответа на задание в этой статье нет.

Напомню задачу:
Напишите плагин, который будет устанавливать нужное значение псевдонима для всех создаваемых документов в разделе «Статьи»
Чтобы суметь внести изменения в создаваемый ресурс мы должны создать плагин и указать событие, при наступлении которого этот плагин будет автоматически запускаться.

Нам нужно, чтобы наш плагин запускался при создании нового ресурса или редактировании уже существующего (мало ли, вдруг пользователь удалит псевдоним при редактировании).

При создании/редактировании ресурса вызываются два события: OnBeforeDocFormSave и OnDocFormSave. Первое событие вызывается перед тем, как данные ресурса сохранятся, а второе — уже после сохранения. Соответственно, во время события OnBeforeDocFormSave у нас объекта еще не существует — есть только данные, которые ввел пользователь. А нам нужно знать id ресурса, соответственно это событие нам не подходит.

Когда вызывается событие OnDocFormSave объект уже существует, соответственно мы можем узнать и его id. В плагине объект (только что созданный ресурс) находится в переменной $resource. И мы можем получить значение любого его поля так:
$resource->get('pagetitle');

Ну вот, думаю, этого будет достаточно, чтобы выполнить вторую часть задания. Если все же не получается, можете заглянуть в ответ. (ответа пока нет, чуть позже размещу здесь и ответ) G+


2 комментария

  1. schokk 15 ноября 2021, 10:33 # 0
    Готового решения так и нет.
    1. Илья Уткин 15 ноября 2021, 11:14 # 0
      Это раздел «Уроки», он нужен для того, чтобы научить что-то делать, а не дать готовое решение.

    Авторизация

    через сервис Loginza:


    Шаблоны MODX

    1 2 Дальше »

    Объектная
    модель
    MODX