UPD. Как выяснилось из комментариев, модуль ckeditor с версии 6.x-1.3 официально поддерживает elfinder. Таким образом, всё написанное относится к возможному способу вывода "быстрой" кнопки elfinder'a на тулбар.
UPD2(08/05/2011). Плагин доработан до автоматического определения типа файла, возвращаемого elFinder
Нужен был файлменеджер/мультизагрузчик для редактора CKeditor (именно для drupal-модуля).
Я обычно использую IMCE и стал искать дополнения к IMCE, поддерживающие мультизагрузку.
Нашёл только IMCE Swfupload, но он ещё в бета-стадии и требует установки дополнительных модулей. В общем, не устроил.
Зато как-то неожиданно открыл для себя elFinder.
Менеджер показался очень удобным (на мой взгляд, даже получше IMCE).
Мультизагрузка, drag&drop, создание-удаление директорий, файлов. Автоматические тамбы картинок, ну и в целом как-то юзабельнее выглядит.
CKEditor (по крайней мере 6.x-1.3) позволяет интегрировать IMCE как "быструю" кнопку на тулбар (отдельно от диалога выбора ссылки/картинки/файла). Просто нужно раскомментировать соответствующие определения в ckeditor.config.js и убедиться что присутствует папка imce в /modules/ckeditor/plugins
Я стырил это решение и наскоро адаптировал его под elFinder в виде скромного плагина-кнопки (elFinder).
Результат: на тулбаре имеется самодельная кнопочка, по клику на которой сразу открывается окно этого файлового менеджера (т.е. минуя диалог выбора адреса).
После выбора файла (двойной щелчок или команда меню и т.д.) в менеджере, он закрывается и ссылка возвращается в CKeditor в обвязке тегов.
В общем, почти всё как в "обычном" elFinder или IMCE.
Желающие могут пойти дальше и доработать решение плагина. Для примера сравните код приложенного плагина и стандартного плагина кнопки IMCE (функция setFile()): /modules/ckeditor/plugins/imce/plugin.js
Потребуются модули:
- модуль CKEditor
- модуль elFinder
- сам файлменеджер elfinder (он отдельно от модуля).
Плагин кнопки в архиве приложен к посту. Описание установки - в файле README.TXT архива.
После установки не забыть установить необходимые разрешения ролям для доступа к elFinder, CKEditor (если вы это ещё не сделали).
Отображение кнопки не зависит от разрешений.
То есть - если вы запретили какой-то роли использовать elFinder, то кнопка не исчезнет с панели. Просто по клику на ней будет обычный "У вас нет прав для просмотра и т.д.".
ps. И это... Отписывайтесь, пожалуйста, у кого что получилось. Будут доработки - велкам + респект и уважуха
Вложение | Размер |
---|---|
![]() | 2.72 КБ |
Комментарии
Вещь вроде и не плохая, но видно, что не закончена.
Удивительно, что вообще работа прошла не замеченной на д.ру.
Да отличный менеджер. Мультизагрузка радует.
Не закончена - да, у меня просто не было времени "копать" долго это направление. К тому же в JS я не очень-то "рулю".
Может, кто-то таки доработает решение.
Там всего-то нужно добавить в самую последнюю функцию плагина механизм определения типа файла по расширению. Обычные строковые операции, вообще-то. Исходная ссылка возвращается elFinder'ом как текст и передаётся в эту функцию как параметр. Просто сделать проверку последних символов после точки с конца строки. Если JPG, PNG, GIF - то обвязывать в img, если нет - то в обычную ссылку а-ля a href= и т.д. Хотя бы как-то так.
А можно усложнить решение и получить объект Image с тем, чтобы определить размеры изображения для вставки (т.е. with="" height="").
И ещё. Отметил такую
забавнуюлюбопытную вещь. Модуль elfinder ругается, если включен IMCE, но если игнорировать эти сообщения и зайти в настройки модуля CKeditor (конкретно - в настройки профиля, где выбирается файловый менеджер), то в списке файловых менеджеров помимо IMCE появляется также и elFinder. Можно просто указать его как файловый менеджер и - бинго! elFinder начинает работать через стандартный диалог выбора картинки ("Просмотреть на сервере")!Правда если не включен IMCE, то и elFinder не будет в этом списке. Но я как-то поэкспериментировал и добился результата так: включил оба модуля - IMCE и elFinder, зашел в настройки профиля CKeditor, установил там elFinder как файловый менеджер, потом отключил модуль IMCE, и всё стало ОК - elFinder "привязался" к CKeditor. Не знаю, почему это получилось![Smile](https://drupal.ru/sites/all/modules/contrib/smiley/packs/kolobok/smile.gif)
А вообще - тут есть топик одного из разработчиков модуля:
http://www.drupal.ru/node/45147
В модуле CKEditor сейчас есть официальная поддержка elFinder. Предупреждение для imce сделано из-за возможных проблем с интеграцией - вызывать сам менеджер никто не мешает.
Если это так, то это баг - надо отписать разработчикам ckeditor. Выбор elfinder не должен зависеть от imce.
Спасибо! Видимо, я пропустил это событие. Приношу извинения.
Проверил на свежей сборке - всё ок. Отпишу в посте, что есть штатная поддержка ckeditor.
PS. А может, тогда и "быструю" кнопочку сделаете официальную? Полезная же штучка - чтоб каждый раз не париться с диалогом "Просмотреть на сервере".
Да, штука полезная. Завел у себя в трекере http://drupal.org/node/1164376
UPD: Модуль ckeditor не имеет api для расширения. Для добавления кнопки надо править файлы модуля. Могу конечно сделать чтобы elfinder сам кнопку там прописывал, но это опасно - структуру файла поменяют и работать не будет, либо сломается что-нибудь.
На уровне api возможно добавление кнопки в модуле wysiwig, причем сразу во все поддерживаемые редакторы - это попробую сделать. В идеале аналогичный api должен быть и у ckeditor, тем более что его допилить в этом плане несложно.
Ну вам виднее конечно, как именно делать. Но я хочу отметить, что если речь идёт только о правке /modules/ckeditor/ckeditor.config.js - то это в общем-то штатная процедура конфигурирования редактора по "вкусу". Он же для того и существует - это файл конфигурирования.
Супер! Спасибо, будем ждать.
А можно поподробнее, потому что я, например, сам найти эту секцию в файле /modules/ckeditor/ckeditor.config.js не смог.
1. Открываем /modules/ckeditor/ckeditor.config.js
2. Находим такую секцию (это пример для тулбара DrupalFiltered):
['Source'],
['Cut','Copy','Paste','PasteText','PasteFromWord','-','SpellChecker', 'Scayt'],
['Undo','Redo','Find','Replace','-','SelectAll','RemoveFormat'],
['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar'],
['Maximize', 'ShowBlocks'],
'/',
['Format'],
['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock','-','BidiRtl','BidiLtr'],
['Link','Unlink','Anchor','LinkToNode', 'LinkToMenu'],
['DrupalBreak', 'DrupalPageBreak']
];
3. Группы кнопок (как они отображаются на тулбаре) заключены в квадратные скобки []. Можете добавить кнопку в любую группу, просто дописав 'elFinder' (не забыть отделить запятой).
Или же - как в моём примере - создать кнопку в отдельной группе, дописав ['elFinder'].
4. Если вы используете другой тулбар, то ищите в этом же файле описание своего тулбара. Например для DrupalFull описание будет начинаться с:
config.toolbar_DrupalFull = [
5. Собственно, всё :-).
В общем, я таки нашёл время и доработал плагин.
Теперь автоматически (с помощью рег. выражений) определяется расширение файла и на основании этого создаётся должная обвязка тегами:
1. для .jpg|.png|.jpeg|.gif - создаётся тег img
2. для всех остальных - обычный a href=""
Также в архив добавлен файл README.TXT, описывающий порядок интеграции в тулбар CKeditor.
Архив с плагином в аттаче к посту обновлён. Пользуйтесь![Wink](https://drupal.ru/sites/all/modules/contrib/smiley/packs/kolobok/wink.gif)
Подскажите пож. нажимаю на кнопку "Выбор на сервере", открывается elFinder, а как добавить картинку, не понимаю. Двойной щелчок на картинке открывает ее и не передает в CKeditor. Что делать? Спасибо.
Вы используете этот плагин? Какая версия D?
Плагин вообще-то писался под 6-й Drupal, и как он работает в 7-ке - не знаю.
Попробуйте выяснить - возможно уже есть штатный механизм "быстрой" кнопки в последних версиях elFinder (разработчик вроде заинтересовался).
Drupal 6.24
elFinder (version 1.2)
elFinder 6.x-1.x-dev
Такие версии компонентов. Сам файловый менеджер работает без проблем, а в CKeditor ничего не передает...
странный эффект...
добавил модули, которые требуются для elFinder File Field Source.
все включил - добавление картинок заработало. Потом все эти модули отключил - добавление картинок все-рано работает...
Попробуйте навести справки о ситуации у разработчика модуля elFinder. (У него здесь есть топик: http://www.drupal.ru/node/45147)
спасибо
наступил на теже грабли - vox может узнал как побороть непередавание ссылки назад в CKEditor?
Как в Chrome, так и Firefox при двойном клике на картинку она открывается в отдельном окне и не вставляется в статью. Проблема уже у многих. В чем может быть причина?