Контент


Модуль Editor

Добрый день, читатели!

Предлагаю вашему вниманию модуль для Kohana v.2.3.x под кодовым названием «Editor«. Он представляет собой библиотеку для работы с текстовыми редакторами а-ля Tiny_MCE, состоящую собcтвенно из библиотеки Editor и набора драйверов к различным редакторам. На данный момент реализованы драйверы для Tiny_MCE, FCKeditor и MarkItUp!. Update. Добавил небольшое описание модуля и обновил архив модуля в связи с небольшими изменениями.

Не буду томить лишними словами:

Использование

Собственно сами объекты создаются через конструктор или 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. Теперь и в официальном хранилище проектов (тыц) ;)

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Опубликовано в Kohana.

Теги: , , .


Комментарии (23)

Будьте в курсе обсуждения, подпишитесь на RSS ленту комментариев к этой записи.

  1. cwer пишет:

    Можно еще добавить http://ufku.com/drupal/bueditor/demo :)
    довольно популярный модуль для друпала, может работать и вне его)

  2. BIakaVeron пишет:

    На самом деле добавление драйвера для любого редактора очень просто (если конечно редактор грамотно сделан). Из имеющих драйверов слепить еще один — пара пустяков.

  3. Василий пишет:

    Вопрос чайника: как поставить этот модуль?

    Делал так:
    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
    »

    Что не так?

  4. Василий пишет:

    Ммм, не скопировал config.php из config.rar. Вопрос снят.
    Но есть другой: как анполняется папка /media/*?

  5. BIakaVeron пишет:

    Как захотите :)
    У меня в ней лежат папки js, images и css. Редакторы я сложил в js, но можно и в другие папки — в конфигурации все настраивается.

  6. WLAD пишет:

    Установил для tinymce.
    А как вот в конфиге указать начальный шрифт и его размер?

  7. BIakaVeron пишет:

    А как он обычно устанавливается? :) Поскольку я много с данным редактором не работал, многие моменты не знаю.
    Если через tinyMCE.init(), то придется придумывать механизм установки дополнительных полей…

  8. Rafi B. пишет:

    Hey, have you ported this module to KO3 by any chance?

  9. BIakaVeron пишет:

    I’ll share it at github.com in a few days.

  10. Marcelo Rodrigo пишет:

    Any chance to translate your tuto to english? Please, post in WIKI page of your project in Kohana Projects :)

  11. Jah пишет:

    чота нет на гитхубе новой версии для ко3 :cry:

  12. BIakaVeron пишет:

    Версия для ko3

  13. Jah пишет:

    ой, так это для ко3? :D

    прошу прощения, я просто в код не заглядывал :roll:

    посмотрел — вроде

  14. Jah пишет:

    чота ничо не получилось установить Editor для Ko3. :?

  15. BIakaVeron пишет:

    А что именно не получилось-то?

    ЗЫ. Постараюсь сегодня обновить проект, у меня немного более оптимизированная версия на локале хранится.

  16. Jah пишет:

    есть ли у Вас примеры конфигов для ko3 ?

  17. Jah пишет:

    скачал версию с гитхаба, вроде как свежая на сколько я понял? :)
    очень интересно получается.
    имя поля он подхватывает только из драйвера игнорируя конфиги и вызовы метода set.

    $editor = Editor::factory(‘tinymce’)->set(‘fieldname’, ‘asfasjghlskjgh’)->render(FALSE, TRUE);
    $this->template->content->editor = $editor;

  18. biakaveron пишет:

    Да, Ваш предыдущий коммент подстегнул меня обновить исходники модуля :)
    У меня установка имени поля вроде как работает. Единственное, что я забыл подложить в github пример конфигов для драйвера. Дело в том, что для драйвера tinymce модуль пытается подгрузить конфиг из config/editor/tinymce.php.

  19. Jah пишет:

    вот жеж)) я так и думал что не всё так просто))

    Вам не сложно будет обновить ссылки в посте и выложить примеры конфигов?

    з.ы. Иван, я ваш фанат ^_^

  20. Jah пишет:

    и ещё обратил внимание, что у вас как в основном классе editor, так и в драйверах есть метод set. и метод factory возвращает экземпляр драйвера, а не самого класса.

    я думаю что имя поля именно поэтому не может быть передано в класс через set ))

    надеюсь что правильно выразился, а то я пока что начинающий :-[

  21. Jah пишет:

    разобрался.

    файле драйвера в методе set вначале необходимо добавить:

    parent::set($field, $value);

    +++

  22. biakaveron пишет:

    Ссылка есть в комментах, сейчас добавлю в UPD статьи. Пропущенные конфиги постараюсь добавить вечером. А parent::set() есть во всех драйверах.

  23. klay пишет:

    Под 3.2 не удалось завести.
    Модуль рабочий?



Можно включить подсветку кода: <code><pre lang="">...</pre></code>
Разрешены некоторые HTML теги

или используйте trackback.