Редактор текста CKEditor 4
Компонент для редактирования текста. Демо:
Если у вас задействован файл .htaccess, то после установки компонента обязательно пропишите в нём разрешение на папку /lib/ckeditor4/:
RewriteCond $1 !^(index\.php|robots\.txt|favicon\.ico|sitemap\.xml|i/.*|tmp/.*|upl/.*|lib/ckeditor4/.*)
Чтобы компонент заработал, там, где должно находиться поле для редактирования нужно сделать так (в самом простейшем виде):
<?php IncludeCom("dev/ckeditor4", array ( "name" => "some_input_name" )); ?>
Для textarea эта запись была бы эквивалентна следующей:
<textarea name="some_input_name"></textarea>
Более продвинутое использование компонента выглядит следующим образом:
<?php IncludeCom("dev/ckeditor4", array ( "name" => "some_input_name", "value" => Post("some_input_name", "Default text
", M_HTML_FILTER_OFF | M_XSS_FILTER_OFF), "mode" => "full" // short - для минималистичного редактора, full - для полноценного редактора (по умолчанию) )); ?>
Здесь мы задаём значение которое должно по умолчанию отображаться в редакторе после его инициализации.
Причем это значение берется из POST, если произошел submit формы.
Это удобно если форма не прошла валидацию и нужно вновь отобразить введенный пользователем текст.
Так же обратите внимание на флаги M_HTML_FILTER_OFF и M_XSS_FILTER_OFF. Они отключают экранирование тегов (и неизбежно делают ввод потенциально небезопасным).
Для textarea эта запись была бы эквивалентна следующей:
<textarea name="some_input_name"> <?= Post("some_input_name", "Default text
", M_HTML_FILTER_OFF | M_XSS_FILTER_OFF)?> </textarea>
Получение данных для обработки делается аналогично:
$postedText = Post("some_input_name", NULL, M_HTML_FILTER_OFF | M_XSS_FILTER_OFF);
Параметры
В компоненте есть только два параметра задаваемых в файле core/config/ckeditor4.php:
$g_config['ckeditor4']['resize_down_width'] = 1200; $g_config['ckeditor4']['resize_down_height'] = 960;
Эти параметры определяют до какой ширины и высоты следует уменьшить изображения, которые CKEditor будет загружать на сервер (при вствке изображений в редактируемый текст)
Дополнительно
Мы рекомендуем использовать этот компонент только в админке, потому что входные данные он берет в небезопасном виде (с html тегами) а это всегда несёт потенциальную опасность.
Если будете использовать этот компонент в не-админитративных разделах, то озаботьтесь очисткой данных от всех тегов, кроме необходимых вам.
Этот компонент конфликтует с компонентом ckeditor и ckeditorhelper. Использовать их вместе нельзя.