<?php
if ($modx->event->name == "OnDocFormSave") {
if ($resource->class_key != 'Ticket') return;
$introtext = $resource->get('introtext');
$generateIntrotext = $resource->getIntroText($resource->get('content'), false);
if (empty($resource->getProperty('disable_jevix'))) {
$generateIntrotext = $resource->Jevix($generateIntrotext);
}
if ($introtext == $generateIntrotext) {
$resource->set('introtext', '');
$resource->save();
}
}Запретить Tickets заполнять introtext
14 марта 2016, 17:04
Объектная
У меня он не сохраняет.
1. Скопировал код плагина
2. Указал плагину событие OnDocFormSave
3. Очистил у тикета интротекст и сохранил.
4. Обновил страницу — сгенерированный интротекст снова на месте…
if ($introtext == $generateIntrotext) {Это условие не выполняется.http://s11140.h5.modhost.pro/manager/
Логин: s11140
Пароль: JWZTqxSHMlno
Я понял в чём дело: если в настройках именно секции отключить Jevix для дочерних тикетов, то в introtext будет просто копироваться контент.
Я переделал у себя плагин, сравнивая intotext и с content, теперь работает:
<?php if ($modx->event->name == "OnDocFormSave") { if ($resource->class_key != 'Ticket') return; $introtext = $resource->get('introtext'); $content = $resource->getContent(); $generateIntrotext = $resource->getIntroText($resource->get('content'), false); if (empty($resource->getProperty('disable_jevix'))) { $generateIntrotext = $resource->Jevix($generateIntrotext); } if ($introtext == $generateIntrotext || $introtext == $content) { $resource->set('introtext', ''); $resource->save(); } }Спасибо за плагин — всё работает!