Добрый день, читатели!
Предлагаю вашему вниманию модуль для Kohana v.2.3.x под кодовым названием «Editor«. Он представляет собой библиотеку для работы с текстовыми редакторами а-ля Tiny_MCE, состоящую собcтвенно из библиотеки Editor и набора драйверов к различным редакторам. На данный момент реализованы драйверы для Tiny_MCE, FCKeditor и MarkItUp!. Update. Добавил небольшое описание модуля и обновил архив модуля в связи с небольшими изменениями.
Не буду томить лишними словами:
- Demo-страничка
- Исходники с default’ными настройками (сам модуль)
- Конфигурация, используемая мной для демо (бросить в APPPATH/config)
- Дополнительный файл для FCKeditor (он кладется в папку рядом с fckconfig.js), где прописаны дополнительные toolbar‘ы.
Использование
Собственно сами объекты создаются через конструктор или factory(), в качестве параметра можно передать массив конфигурации или имя сохраненного профиля. Если параметр не указан, будет использован профиль default. Пример профиля (config/editor.php):
$config['default'] = array ( 'width' => 500, 'height' => 200, 'editor' => array ( 'driver' => 'fckeditor', 'profile' => 'default', ), 'fieldname' => 'text', 'value' => '', ); |
Указана ширина и высота, имя поля ввода, значение, а также данные для создания драйвера — сам тип драйвера и используемый им профиль. Профили для самих драйверов хранятся в поддиректории editors, название берется по имени драйвера (fckeditor.php, tinymce.php и т.д.). Указанные параметры (кроме информации о драйвере) можно указать и после создания объекта. Для этого есть методы set_width(), set_height(), set_value(), set_fieldname(). Например, метод set_value() удобно использовать при редактировании текстовых объектов (статьи, комментарии и т.д.). Для генерации кода предназначен метод render($print = TRUE, $create_field = TRUE). Если параметр $print установлен в TRUE, то сгенерированный код редактора будет отображен напрямую. Второй параметр позволяет указать, создавать ли поле textarea (если TRUE), либо оно уже существует.
В конфигурации драйвера можно указать различные параметры, зависящие от типа редактора. Так, для FCKeditor пользовательские тулбары создаются в отдельном файле, поэтому в конфигурации присутствует только название тулбара (путь к этому файлу задается параметром $config['customconfig']). А в Tiny_MCE наоборот — наборы кнопок указываются в настройках. Для редакторов на базе jquery необходимо указать путь к нему (по умолчанию будет браться из параметра $config['jquerypath'] файла config/editor.php). Независимо от профиля в файле конфигуратора необходимо указать базовый путь к директории редактора ($config['basepath'] или $config['path']) и имя главного подключаемого файла ($config['scriptname']).
Update2. Теперь и в официальном хранилище проектов (тыц)
Можно еще добавить http://ufku.com/drupal/bueditor/demo
довольно популярный модуль для друпала, может работать и вне его)
На самом деле добавление драйвера для любого редактора очень просто (если конечно редактор грамотно сделан). Из имеющих драйверов слепить еще один — пара пустяков.
Вопрос чайника: как поставить этот модуль?
Делал так:
1. скопировал в modules/editor содержимое из editor.rar
2. включил модуль в конфигурации
3. скопировал config/editor.php в application/editor.php
3. добавил код «Editor::factory(«fck_default»)->set_fieldname(«fck_default»)->set_value(«FCKeditor default»)->render(TRUE, TRUE);»
4. получаю «C:/www/kohana/wwwroot/modules/editor/libraries/Editor.php [50]:
The Editor__Driver driver for the Editor library could not be found
»
Что не так?
Ммм, не скопировал config.php из config.rar. Вопрос снят.
Но есть другой: как анполняется папка /media/*?
Как захотите
У меня в ней лежат папки js, images и css. Редакторы я сложил в js, но можно и в другие папки — в конфигурации все настраивается.
Установил для tinymce.
А как вот в конфиге указать начальный шрифт и его размер?
А как он обычно устанавливается? Поскольку я много с данным редактором не работал, многие моменты не знаю.
Если через tinyMCE.init(), то придется придумывать механизм установки дополнительных полей…
Hey, have you ported this module to KO3 by any chance?
I’ll share it at github.com in a few days.
Any chance to translate your tuto to english? Please, post in WIKI page of your project in Kohana Projects
чота нет на гитхубе новой версии для ко3
Версия для ko3
ой, так это для ко3?
прошу прощения, я просто в код не заглядывал
посмотрел — вроде
чота ничо не получилось установить Editor для Ko3.
А что именно не получилось-то?
ЗЫ. Постараюсь сегодня обновить проект, у меня немного более оптимизированная версия на локале хранится.
есть ли у Вас примеры конфигов для ko3 ?
скачал версию с гитхаба, вроде как свежая на сколько я понял?
очень интересно получается.
имя поля он подхватывает только из драйвера игнорируя конфиги и вызовы метода set.
$editor = Editor::factory(‘tinymce’)->set(‘fieldname’, ‘asfasjghlskjgh’)->render(FALSE, TRUE);
$this->template->content->editor = $editor;
Да, Ваш предыдущий коммент подстегнул меня обновить исходники модуля
У меня установка имени поля вроде как работает. Единственное, что я забыл подложить в github пример конфигов для драйвера. Дело в том, что для драйвера tinymce модуль пытается подгрузить конфиг из config/editor/tinymce.php.
вот жеж)) я так и думал что не всё так просто))
Вам не сложно будет обновить ссылки в посте и выложить примеры конфигов?
з.ы. Иван, я ваш фанат ^_^
и ещё обратил внимание, что у вас как в основном классе editor, так и в драйверах есть метод set. и метод factory возвращает экземпляр драйвера, а не самого класса.
я думаю что имя поля именно поэтому не может быть передано в класс через set ))
надеюсь что правильно выразился, а то я пока что начинающий :-[
разобрался.
файле драйвера в методе set вначале необходимо добавить:
parent::set($field, $value);
+++
Ссылка есть в комментах, сейчас добавлю в UPD статьи. Пропущенные конфиги постараюсь добавить вечером. А parent::set() есть во всех драйверах.
Под 3.2 не удалось завести.
Модуль рабочий?