Виновником новых неприятностей стал плагин ManagerManager.
Этот плагин мы установили исключительно ради того, чтобы более удобно расположить визуальный редактор аннотаций.На локальном сервере всё прекрасно работало. А на "боевом" мы вдруг обнаруживаем, что ManagerManager не срабатывает и дает ошибки. В результате требуемого вида админки мы не получаем. От ManagerManager в низ фрейма Создать-Редактировать документ пролетает сообщение об ошибке, да ещё и наш любимчик DirectResize начал ругаться. Вообще неприличными выражениями:
DirecrResize - OnDocFormPrerender. On error occurred while loading. Please see the event log for more information.
Разумеется, мы попробовали и изменять порядок загрузки плагинов, и отключать плагины. Совместной работы не получалось. Имея уже опыт сбоев DirectResize мы не стали исследовать кишочки у ManagerManager - просто отключили его, как менее актуальный.
Однако мы ставили его не "за красивы глазки". Он нужен был ради визуального редактора аннотаций.
Пришлось вернуться к разборке с этим полем. Напомним, для подключения TinyMCE к аннотациям мы делали хитрую комбинацию с TV-параметром. Как-то она нам сразу не понравилась - слишком мудрёное дело. D своё время мы находили заметку о подключении визуального редактора к полю introtext. Там был предложен замысловатый способ, включающий:
1. Создание дополнительного плагина.
2. Изменение кода менеджера MODx.
3. Вставка в страницу дополнительного Javascript.
В ядро лезть очень не хотелось, да и метод всё равно не срабатывал, как надо.
И тогда мы, от безысходности, нашли очень простой путь:
1. Создали свой плагин IntroTextRichEditor с кодом
global $replace_richtexteditor;
$replace_richtexteditor[] = "introtext";
Плагин подключен к событию OnDocFormRender.
2. Отключили TV annotation для всех шаблонов. Это был наш TV.
3. Берем страницу на редактирование и видим, что на месте примитивного textarea для introtext появился TinyMCE. Ура!
Однако снова начинает ругаться DirectResize:
An error occurred while loading. Please see the event log for more information.
4. Ах так! Ну тогда мы отключаем событие OnDocFormPrerender - для DirectResize.
5. Заодно вообще отключаем свой плагин ru_IntroTextAndAnnotation - Редактирование Аннотации через TV.
И в результате мы имеем всё, что давно хотели:
а) Визуальный редактор аннотации.
б) Размещение этого редактора на том самом месте, где ему и положено лежать:
Все пляшут и поют!
Не рановато ли?
Написать комментарий