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

В этот раздел мы перенесли статьи, потерявшие актуальность. В основном это связано с появлением новых версий элементов системы, обнаружением более рациональных решений, а также с подготовкой более подробной документации по MODx.

Как настроить FCKEditor в CMS MODx


Для работы в разных CMS мы часто используем популярный редактор FCKEditor. В CMS Etomite настроить его было непросто, особенно при замене версий редактора. Для MODx этот редактор ставится в виде plugin. Работает практически сразу. Но есть нюансы...

Версии редактора весьма часто обновляются. Вроде бы только что мы скачали и ставили версию 2.6.3, а уже через несколько дней появилась версия 2.6.4b. Скачаем её и попробуем подключить в MODx.

Установку FCKeditor в Etomite мы подробно описали в заметке FCKeditor в Etomite. Встраивать этот редактор в MODx нужно принципиально иначе.

 Подобные расширения устанавливаются в MODx в виде plugin. Для установки любого плагина необходимо:

1. Иметь набор файлов, копируемый в соответствующий подкаталог assets/plugins/, например в assets/plugins/fckeditor.

2. Иметь код плагина, который необходимо вставить при создании плагина в окно кода.

3. Знать, к каким событиям следует привязать плагин.

4. Знать, какие свойства и как нужно установить.

Обычно плагины берут в респозитории MODx. Имеется там и FCKeditor, причем в двух вариантах:

FCKEditor_2.5_AFM_Beta_1.zip
FCKEditor_2.6.2.zip

Однако эти варианты включают уже устаревшую версию самого FCKeditor и разные варианты файлового менеджера. А хотелось бы иметь, конечно, самую свежую версию и редактора, и самого лучшего файлового менеджера.

Про файловые менеджеры у нас имеется отдельная заметка.  В результате описанных там приключений мы приняли решение об установке не самой последней версии редактора TinyMCE и не самой последней версии AjaxFileManager. Логично было бы установить и FCKeditor сэтим же файловым менеджером, а потом попытаться обновить сам редактор до самой свежей версии.

Установка штатным способом

Установка плагином штатным способом предполагает:

1. Распаковку из архива в подкаталоги assets и install (дистрибутив должен быть правильно подготовлен).

2. Вход по ссылке на адрес http://site_name/install.

3. Выполнение инсталляции, после котрой плагин, по идее должен установиться правильно.

4. Доводка по месту - когда кувалдой, а когда напильником.

Попробуем это проделать. Для установки возьмем комплект  FCKEditor_2.5_AFM_Beta_1.zip. При этом мы не будем распаковывать папку ajaxfilemanager, так как такой плагин у нас уже есть и он подключен кTinyMCE.

При выполнении пункта 3 мы получили сообщения:

 

Setup will now attempt to setup the database:

Creating connection to the database: OK!

Selecting database `cadx2009`: OK!

Plugin:
  FCKEditor: Installed

Fatal error: Call to a member function getFullTableName() on a non-object in Z:\home\cadx2009\www\manager\processors\cache_sync.class.processor.php on line 100

 

Чего-то такого и следовало ожидать. Готовимся к доводке, надеясь, что обойдемся напильником.

Заглянув  в Ресурсы-Плагины мы обнаруживаем FCKeditor и даже правильно (во всяком случае на первый взгляд) выполненные настройки. Системная конфигурация также видит FCKeditor и виден он в списке Редактор: при редактировании страницы. Осталось его испытать в работе.

Испытания FCKeditor

 

Включаем FCKeditor прямо во время редактирования этой статьи. Первое, что бросается в глаза - лишние кнопки и отсутствие русского интерфейса. Ну, это поправить легче всего. Главное для нас - как работает файловый менеджер.

Вот тут и начинаются обломы. Ранее настроенный для редактора TinyMCE AjaxFileManager работает, но в нем, после выбора файла, не срабатывает кнопка Выбрать. И Отменить не срабатывает. Наверное это последствия ошибки инсталляции, о которой нам было сообщено ранее:

  Fatal error: Call to a member function getFullTableName() on a non-object in manager\processors\cache_sync.class.processor.php on line 100

 

Придется разбираться. Но разбираться нам надо или в рамках кода плагина

assets/plugins/fckeditor25afm/plugin.fckeditor.tpl

или в файле 

assets/plugins/fckeditor25afm/fckeditor.functions.php

 Или еще где. Наша квалификация позволяет только предполагать, хотя кое-что мы соображаем. Да и комплект  FCKEditor_2.5_AFM_Beta_1.zip был заточен на более ранние версии MODx.

 Попробуем установить FCKEditor_2.6.3.zip - в другой каталог. Здесь мы уже будем действовать "неправильно" - просто распакуем в

assets/plugins/fckeditor263. скопируем код плагина из

assets/plugins/fckeditor263/plugin.fckeditor.tpl и вставим его в код в диалоге настройки плагина. И всё! Работает (в первом приближении) и редактор, и файловый менеджер. Вроде бы и всё хорошо, но не всё хорошо.

Файловый менеджер в этом комплекте совсем другой - MCPUK. Это вроде бы и неплохой менеджер:

MCPUK Browser

MCPUK Browser

Вроде бы он тоже неплох - можно и папку создать, и картинку сразу загрузить. Но вот незадача - иногда не видит он картинки в формате PNG, а таких у нас как раз большинство! JPEG видит, а PNG - нет. Добиться устранения этого глюка нам не удалось, по крайней мере с налета. Если бы всегда не видел - можно было бы списать на ошибки, но когда при абсолютно оидинаковой конфигурации на одном сайте видит, а на другом нет - это гораздо хуже. Поэтому попробовали другой файловый менеджер - Ajaxfilemanager.

И вот еще одна беда - после подключения этого менеджера (MCPUK) уже в TinyMCE посыпались предупреждающие сообщения при вызове AjaxFileManager:

Предупреждающие сообщения

Предупреждающие сообщения

При этом еще и становится недоступным предварительный просмотр выделенного изображения (миниатюра).

На этом можно и остановиться. Не будем описывать все наши прочие попытки скрестить FCKeditor с MODx, да чтобы одновременно можно было использовать TinyMCE с прикрученным AjaxFileManadger. Много чего мы перепробовали, но нужного результата не получилось. Подождем, может быть появится и нужная нам конфигурация.
В результате принято решение - оставить только TinyMCE, тем более, что удалось сконфигурировать этот редактор так, как нам нужно. Но это уже другая история.

И, напоследок, хоть мы и отказались (пока) от FCKeditor, несколько замечаний по дополнительным настройкам - может кому-то пригодится.

Дополнительные настройки FCKEditor

Очень удобно, если:

а) В самом окне редактора используется именно наша таблица стилей, и содержимое контента отображается так же, как и на сайте.

б) В комбобоксе Стиль отображаются именно наши стили.

Как этого добиться?

Подключение нашей таблицы стилей

Для этого надо открыть Инструменты - Конфигурация, вкладка Интерфейс и представление и для FCKEditor в поле Путь к CSS-файлу внести относительный путь от корня сайта, например:

/assets/templates/site/css/screen.css

Теперь в окне редактора будут отображаться стили именно из этого файла.

Настройка кобобокса Стиль

На той же вкладке, в поле XML Style указываем относительный путь к XML-файлу с нашими стилями:

/assets/plugins/fckeditor25afm/my_styles.xml

 Как описать наши стили для комбобокса

Тут надо с умом.

Во первых, не надо пытаться описать много стилей. Нужен самый минимум, причем те стили, которые используются для оформления контента. А это - заголовки, какие-то виды абзацев, комментарии, списки особого вида, картинки. Заголовки (сесли они не специального вида) даже можно и не вставлять - они есть в комбобоксе Форматирование.

На наших страницах, например, часто применяются пометки с помощью буллетов и маленьких картиночек. Вот их и можно вставить.

Примеры стилей можно найти в файле fckstyles.xml.

Но пришлось столкнуться с такой проблемой - в комбобокс Стили не попадают стили для элементов li!

В результате пришлось отказаться от использования "li с картинками" и сделать более общие классы, например:

 

.acad { background: url(images/acad.gif) no-repeat top left; padding: 0px; padding-left: 30px; }

.user { background: url(images/user.gif) no-repeat top left; padding: 0px; padding-left: 30px; }

 

Выглядеть это будет так:

Текст, выводимый системой AutoCAD Текст, выводимый системой AutoCAD Текст, выводимый системой AutoCAD Текст, выводимый системой AutoCAD Текст, выводимый системой AutoCAD
Действия пользователя  Действия пользователя    Действия пользователя   Действия пользователя   Действия пользователя   Действия пользователя

 

 Сам файл стилей выглядит примерно так:

<?xml version="1.0" encoding="windows-1251" ?>
<Styles>
	<Style name="light_box" element="div">
		<Attribute name="class" value="light_box"/>
	</Style>
	<Style name="Acad" element="div">
		<Attribute name="class" value="acad"/>
	</Style>
	<Style name="User" element="div">
		<Attribute name="class" value="user"/>
	</Style>
	<Style name="Alert" element="div">
		<Attribute name="class" value="alert"/>
	</Style>
	<Style name="Вопрос" element="div">
		<Attribute name="class" value="quest"/>
	</Style>
	<Style name="Ответ" element="div">
		<Attribute name="class" value="answ"/>
	</Style>
	<Style name="Warning" element="div">
		<Attribute name="class" value="warning"/>
	</Style>
	<Style name="Автор" element="div">
		<Attribute name="class" value="author"/>
	</Style>
	<Style name="date" element="div">
		<Attribute name="class" value="date"/>
	</Style>
	<Style name="Code" element="div">
		<Attribute name="class" value="code"/>
	</Style>
	<Style name="Menu Item" element="span">
		<Attribute name="class" value="cad_menu"/>
	</Style>
</Styles>

В результате список стилей в FCKeditor будет выглядеть так:

  Список стилей в FCKeditor

31-01-2008 14:33:18



    Содержание раздела «Настройки FCKEditor в MODx»:
Комментарии любых посетителей

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