Наши заметки о MODx
В этом разделе мы будем собирать небольшую копилку секретов по работе с системой управления контентом сайта (CMS) MODx. Эти заметки ни в коем случае не претендуют на лавры документации. На нашем сайте тема MODx вообще занимает небольшой уголок, и эти материалы мы размещаем только потому, что по роду основной работы нам приходится оказывать техническую поддержку нескольким десяткам организаций, использующих наши прототипы сайтов. В то же время кое-что может пригодиться и другим людям.
Мы не претендуем на изложение "истины в последней инстанции". Наверняка в этих заметках гуру MODx найдут неточности и ошибки. Мы будем очень благодарны, если на это нам укажут в комментариях.
В заметках мы стараемся не просто сразу приводить готовое правильное решение, но и показываем, как мы набивали шишки в процессе поиска.

Ещё один глюк при переезде на хостинг


В заметке Проблема с DirectResize мы писали о сбое в работе плагина на сервере хостинга. Ту проблему мы устранили, но неожиданно обнаружилась другая.

 

Виновником новых неприятностей стал плагин 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:

 

DirecrResize - OnDocFormPrerender.
An error occurred while loading. Please see the event log for more information.

4. Ах так! Ну тогда мы отключаем событие OnDocFormPrerender - для DirectResize.

 

5. Заодно вообще отключаем свой плагин ru_IntroTextAndAnnotation  - Редактирование Аннотации через TV.

И в результате мы имеем всё, что давно хотели:

а) Визуальный редактор аннотации.

б) Размещение этого редактора на том самом месте, где ему и положено лежать:

  Визуальный редактор аннотации

Сюрприз

Все пляшут и поют!dansing

  Не рановато ли?

 

 

22-04-2009 14:32:09



    Содержание раздела «Проблема с ManagerManager»:
Комментарии любых посетителей

Написать комментарий