Редактор текста 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. Использовать их вместе нельзя.