Разные шаблоны для Ticket'ов

Василий, привет!
Оригинал вопроса здесь (возможно, затерялся среди комментариев или ответа пока просто нету. В любом случае попытаю счастья отдельным топиком.)
Кратко о ситуации, прежде чем задать вопрос.
Есть несколько различных тикетов-контейнеров (TicketSection), для большинства из которых установлена дефолтная опция шаблона (tickets.default_template), например, 2.
В то же время есть еще несколько категорий тикетов, для которых дефолтный шаблон должен быть другой. Поскольку системная опция уже занята для большинства тикетов, для остальных переопределение шаблона происходит в плагине по системному событию OnDocFormRender, где по родительскому id из $_REQUEST проверяется принадлежность ресурса к той или иной категории ресурсов и определяется, какой шаблон должен быть применен. В конечном итоге нужный шаблон «успешно» выставляется через
$modx->controller->setProperty('template', 10);
о чем свидетельствует тот самый номер шаблона в поле «шаблон», доп поля, привязанные к нему а так же значение скрытого поля с именем «template», отдающее в консоли браузера значение 10, пока не начинает срабатывать js (вероятно тикетов). И вот тут происходит повторное переопределение шаблона на дефолтный (tickets.default_template) — выбранное название шаблона соответствует номеру 2, и скрытый инпут также получает значение 2.
Т.е. при повторном редактировании тикета шаблон будет изменен, если каждый раз не править его вручную.
Пока кое-как спасает плагин на событие OnBeforeDocFormSave с проверкой выбранного шаблона, вбрасывающий предупреждение и предотвращающий дальнейшее сохранение тикета с «неправильным» шаблоном.

ручная установка MODx.config.default_template = 10; в файле core/components/tickets/controllers/ticket/create.class.php результата не дает.
Методом тыка комментировал строки подобно этой в файле core/components/tickets/processors/mgr/ticket/create.class.php
$this->setProperty('template', $this->modx->getOption('tickets.default_template', null, $this->modx->getOption('default_template'), true));
Все так же безрезультатно (что в принципе и логично, раз плагин успешно меняет шаблон), а значит это делает js.

Собственно вопрос:
можно ли перехватить установку дефолтного шаблона, и если да, то в каком направлении копать?
Василий
17 января 2014, 09:22
modx.pro
1 459
0

Комментарии: 1

Василий Наумкин
17 января 2014, 13:34
0
Шаблон выставляется в контроллере.

По хорошему, это нужно выносить в настройки секции, как у Articles, но у меня пока нет времени для работы с тикетами. Если есть желание профинансировать — займусь. Цена вопроса 3000 — 5000 руб.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1