TinyMCE + 1с-Битрикс

tinymce

TinyMCE - Javascript WYSIWYG Editor

Пост скорее для новичков битрикса. В нем я хочу показать как просто и легко можно создать компонент. Мы сделаем компонент по выводу виз редактора (WYSIWYG). К сожалению в стандартной поставке упрощенный редактор, мягко говоря не всегда удобен. Я придерживаюсь мнения что нужно чуть больше уделять внимания интерфейсам которые используют именно пользователи сайта, битрикс хоть и что-то сделал для этого, но как всегда не фундаментально. Я это называю как пускание пыль в глаза. Но да ладно, это все понятно, да и написать хороший редактор не очень то и просто. Мы будет интегрировать популярный редактор

TinyMCE + 1с-Битрикс.


Для этого нам понадобится дистрибутив самого редактора, берем самую свежую версию с сайта производителя http://tinymce.moxiecode.com/.

Создаем каркас нашего компонента. Для лучшего понимания я вынесу этот компонент в свое пространство имен, думаю так будет удобнее. Итак создаем вот такую структуру папок:

/bitrix/components/tools/

/bitrix/components/tools/editor.tiny.mce/

/bitrix/components/tools/editor.tiny.mce/templates/

/bitrix/components/tools/editor.tiny.mce/templates/.default/

И создаем папку куда выложим сам дистрибутив редактора tiny_mce т. е.

/bitrix/components/tools/editor.tiny.mce/tiny_mce/

В папке /bitrix/components/tools/editor.tiny.mce/ создаем 2 файла.

componet.php — кто еще не знает это логика нашего компонента

.parameters.php — файл для описания входящих параметров

Итак приступим. Копируем скаченный дистрибутив в папку tiny_mce. Открываем файл componet.php и начинаем подключать .  Опишу важные моменты,  исходник я выложу ниже :

Подключаем сам редактор:

<?  $APPLICATION->AddHeadScript($this->__path .’/tiny_mce/tiny_mce.js’); ?>

Подключаем стили, я их вынес в папку с компонентом чтобы было удобнее, это настройка уже в js, в коде инициализации:

content_css : ‘<?=$this->__path?>/example.css’,

Очень важный момент,  если на странице 2 или более редакторов то мы идентифицируем их по имени классы editor_selector : ‘<?=$sEditorID?>’. Странное решение со стороны разработчиков но все же это так.

Ну и собственно сама текстария для которой это все и делается

<textarea id='<?=$sIdTextAria?>’  name='<?=$sNameTextAria?>’ style=’width:<?=$iTextariaWidth?>’><?=$sText?></textarea>

Итак как использовать. Просто подключается вот в таком виде:

[source language=’php’]


IncludeComponent(«tools:editor.tiny.mce», «.default», array(
«TEXT» => $_POST[«content»], // контент из запроса который нужно вставить
«TEXTARIA_NAME» => «content», // имя поля
«TEXTARIA_ID» => «content»,         // id поля
«TEXTARIA_WIDTH» => «100%»,  // ширина
«TEXTARIA_HEIGHT» => «300»,    // высота

«INIT_ID» => «ID» // ID самого редактора
),
false
);
?>

[/source]

Ну вот и архив, можно посмотреть на пример, доработать и использовать. В следующий раз покажу как прикрутить к компоненту добавления элемента iblock.element.add.

Скачать

8 thoughts on “TinyMCE + 1с-Битрикс

  1. Здорово. Только без продолжения нам, новичкам, непонятно, как это всё прикрутить в админку)

    1. Так это же не для админки, а для вывода в публичке сайта. В админке зашит свой редактор.

  2. а опишите как прикрутить к «В следующий раз покажу как прикрутить к компоненту добавления элемента iblock.element.add» + возможно есть решение по вставке картинок в текст, по аналогии со вставкой картинок в блоге Битрикса (при добавлении/редактировании записи пользователем сайта)

  3. Подстава… я то думал это для админки… а это компонентик всего то…

  4. установил и подключил вышеописанным методом, но на целевой странице обычная текстарея появляется, без редактора. Что то где-то не цепляется

  5. Все привет, большое спасибо автору за Пост, я продолжу его мысль по поводу iblock.element.add и скажу что там ничего сложного, для добавления текста в например DETAIL_TEXT ничего не надо делать просто берем знаение $_POST[«content»] например и записываем, НО при отображении его обратно в редакторе надо написать html_entity_decode($_POST[«content»]) тогда все работает ОК

Comments are closed.