Альтернативные текстовые редакторы

Для редактирования текстовых данных (типы данных MySQL: text и blob) в Blox CMS применяется встроенный редактор. Это означает, что в окне редактирования вы сможете не только набирать текст, но и определенным образом оформлять его.

Обычно для подключения к веб-странице текстового редактора, написанного на языке JavaScript необходимо сделать две вещи. Во-первых, в разделе head кода страницы нужно добавить ссылки на файлы редактора или написать код JavaScript, предоставленный разработчиками редактора. Во-вторых, бывает нужно немного изменить код тега textarea (например, добавить класс), чтобы над полем ввода текста появилась панелька форматирования. Во многих редакторах второй пункт выполнять вообще не приходится, и все теги textarea автоматически получают панельки форматирования.

Так или иначе, для подключения альтернативного текстового редактора необходимо взять два фрагмента кода, предлагаемого разработчиками редактора, и вставить их в веб-страницы. В Blox CMS для подключения текстового редактора не нужно редактировать файлы системы. Упомянутые выше фрагменты нужно просто записать в отдельные файлы: text-editor-link.php и text-editor-output.php. При необходимости они будут автоматически подключаться системой.

Для подключения текстового редактора:

В корневой папке сайта (где находится главный файл index.php) создайте новую папку text-editor. Наличие этой папки само по себе будет означать, что используется альтернативный текстовый редактор. Для непосредственного подключения текстового редактора необходимо создать два файла: text-editor-link.php и text-editor-output.php. Ниже приводятся примеры содержимого этих файлов.

По умолчанию в системе используется редактор CKEditor, а упомянутые выше файлы лежат в папке BLOX/includes.

text-editor-link.php

<link href="<?= $textEditorUrl ?>/myEditor.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="<?= $textEditorUrl ?>/myEditor.js"></script>
Этот код подключает текстовый редактор. Вставку php-кода с переменной $textEditorUrl изменять не нужно. Это URL (адрес в Интернете) папки, где находятся файлы редактора.

text-editor-output.php

<textarea name="dat[<?= $field ?>]" class='my-editor'>
    <?= $dat[$field] ?>
</textarea>

Этот код непосредственно выводит текстовый редактор с полем ввода текста. За поле ввода текста в HTML отвечает тег textarea. Обычно бывает достаточно изменить или добавить (согласно инструкции для редактора) какой-то атрибут для этого тега. Некоторые редактора, например, популярный редактор TinyMCE, вообще не требуют изменений этого тега. Для других редакторов бывает нужно целиком заменить тег textarea на какой-то код JavaScript.

Вставки php-кода с переменными $field, $dat[] изменять не нужно. В шаблоне может находиться несколько полей для ввода массивных текстов (типы данных MySQL: text и blob). Первая вставка выводит номер поля данного, редактируемого с помощью текстового редактора, вторая отображает - извлеченное из БД значение данного поля.

В одной записи обычно бывает несколько данных. Имена данных представлены нумерованным массивом dat. Если подключаемый редактор не поддерживает массивы в атрибуте name тега textarea, то есть, не работает запись вида name="dat[9]" , то имена допустимо записывать в скалярном виде dat9 (Blox CMS сама приведет их к массиву). С учетом сказанного код будет выглядеть так:

text-editor-output.php
<textarea name="dat<?= $field ?>" class='my-editor'>
    <?= $dat[$field] ?>
</textarea>