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

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

Как настраивать файловые менеджеры в TinyMCE


Редактор без менеджера файлов - не редактор. В TinyMCE как раз нет своего менеджера файлов. Так и должно быть - редактор написан на Javascript, а в этом языке нет средв для работы с файлами. К счастью, TinyMCE можно интегрировать со сторонними менеджерами.

Сборка MODx 0.9.6.3 включает TinyMCE 3.2.0.1 с файловым менеджером MCPUK. На этом, вроде бы неплохом менеджере мы уже обжигались - он не всегда видит PNG-файлы. Даже если это следствие каких-то наших ошибок (а мы не нашли причин) - всё равно - такой менеджер нам не нужен.

Для MODx существует сборка TinyMCE213AFM с AiaxFileManager (AFM) версии от 22 мая 2007 года. Выглядит он так:

Ajaxfilemanager

Ajaxfilemanager - из версии 2.5

Вроде бы такая сборка нас всем устраивает. Но это же устаревшая сборка, а всегда хочется самого нового. Захотелось нам соединить самую последнюю версию TinyMCE 3.2.1.1 с самой последней версией AFM - 4. Выглядит AFM-4 так (вариант обзора Details):

AFM-4

Или так (вариант обзора Thumbnails):

AFM-4

Вроде бы в AFM-4 появились приятные дополнения (разные режимы просмотра, линейка ссылок в стиле Breadcrumbs, постраничный вывод), но как-то он нам сразу возьми, да не поглянись. В разных браузерах шибко по-разному отображается, да и работает заметно медленнее, да и результат выбора в TinyMCE возвращает в виде полного, а не относительного имени файла. Конечно все это где-то и как-то можно настроить, вопрос в том - где и как?

Чтобы не забыть, что делалось мы написали несколько страниц с протоколом своих мучений. А потом все выкинули -  зачем засорять сайт описанием безрезультатных действий.

Не удалась и попытка прикрутить к новому TinyMCE старого AFM. Там вроде бы удалось добиться запуска менеджера, но никак он не захотел ни возвращать результат по кнопке Выбор, ни закрываться по кнопке Отменить.  Ни днем, ни вечером, ни "после вчерашнего", ни на свежую голову.

В результате пришлось  вернуться к сборке TinyMCE213AFM - там все работает и вроде бы всё, как надо. Но и при настройке этой версии пришлось кое-что проделать.

Настройки AFM

1. Первым делом стало вылетать вот такое сообщение:

INCLUDE_ORDERING_ERROR
Please use the MODx Content Manager instead of accessing this file directly.
 

 Эта ошибка обсуждалась на англоязычном форуме, но предложенный там метод лечения не помог.Предлагалось в

assets/plugins/ajaxfilemanager/inc/config.base.php фрагмент кода

if(!isset($_SESSION['mgrValidated'])) { die("<b>INCLUDE_ORDERING_ERROR</b><br /><br />Please use the MODx Content Manager instead of accessing this file directly."); }

заменить на

if(!isset($_SESSION['mgrValidated']) && !isset($_SESSION['webValidated'])) { die("<b>INCLUDE_ORDERING_ERROR</b><br /><br /> Please use the  MODx Content Manager instead of accessing this file directly.");}

 Не помогло! Вылечилось просто "заремливанием" этого участка кода.

2. Затем пришлось изменить в файле assets/plugins/ajaxfilemanager/inc/data.php  код

Array
(
[currentFolderPath] => ../../../../uploaded/file/
[new_folder] => New Folder
)

 

  на 

Array
(
[currentFolderPath] => ../../images/modx/
[new_folder] => new_folder
)

 

Это файл, в который AFM записывает свое последнее состояние - последнюю папку, в которой он шарился. Надо, чтобы такая папка существовала.

3. Затем пришлось русский язык прикрутить. Создал отсутствующий ранее assets/plugins/ajaxfilemanager/langs/ru.php

и в assets/plugins/ajaxfilemanager/inc/config.base.php в участке кода

 define('CONFIG_LANG_DEFAULT',
(CONFIG_QUERY_STRING_ENABLE && !empty($_GET['language'])?secureFileName($_GET['language']):'en')); 

изменил en на ru.

И тут мы попались на детскую ошибку! Cразу сыплются варнинги в огромном количестве:  

Warning:Cannot modify header information - headers already sent by (output started at ....

Это потом мы стали такие умные и узнали, что эти ошибки возникают при сохранении файла в UTF-8 с сигнатурой BOM, а тогда пришлось помучиться, прежде чем ошибка была установлена.

После этих несложных манипуляций редактор TinyMCE с AjaxFileManager стали вполне прилично работать. Однако обнаружилась ошибка браузера Safari, описанная в заметке MODx и браузеры.Так что всё-таки будем дожидаться свежей сборки MODx с AFM.

Позже мы столкнулись с тем, что AFM показывает не все подкаталоги в assets, а только files, flash, images, galleries, media. В принципе, так и должно бы быть, но нам надо и в templates заглядывать, да мало ли куда. Как найти ограничения на папки - пока не удалось.
Причем, если мы создаем в assets какой-то свой каталог, он доступен для просмотра. Но не видны cache, docs, export, import, js, modules, plugins, site, snippets, templates.
Эффект проявляется на локальной машине, поэтому атрибуты папок не влияют.

  Однако всё-таки хочется использовать более свежую версию редактора. После того, как мы дождались сборки tinyMCE 3.2.1.1 для MODx, была предпринята ещё одна попытка замены браузера MCPUK на AFM. Увы, не получилось. Тогда мы просто заменили скрипты самого редактора версии 2.1.3 на скрипты версии 3.2.1.1 не меняя больше ничего. Вроде бы всё работает, но надо понаблюдать.

12-01-2009 11:05:52



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

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


 
Саша
Комментарий
Re: Как настраивать файловые менеджеры в TinyMCE
Реплика №1: 03.02.2011, 13:50:41
Так а где можно взять эту сборку TinyMCE213AFM?
Не могу найти