Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
80 lines (65 sloc) 2.63 KB

Imperavi Redactor Widget

ImperaviRedactorWidget — обёртка для Imperavi Redactor, довольно неплохого WYSIWYG редактора.

Обратите внимание, что сам Imperavi Redactor — коммерческий продукт и не является OpenSource, но так как сообщество Yii купило OEM-лицензию, то вы можете бесплатно пользоваться им в проектах на Yii 1.1.x и 2.0.x.

В данном репозитории содержится код для 1.1.x. Код для 2.0.x здесь: https://github.com/vova07/yii2-imperavi-widget.

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

Импортируем виджет:

Yii::import('ext.imperavi-redactor-widget.ImperaviRedactorWidget');

Вызываем виджет:

$this->widget('ImperaviRedactorWidget', array(
    // Можно использовать пару имя модели - имя свойства
    'model' => $my_model,
    'attribute' => 'my_field',

    // или только имя поля ввода
    'name' => 'my_input_name',

    // Немного опций, см. http://imperavi.com/redactor/docs/
    'options' => array(
        'lang' => 'ru',
        'toolbar' => false,
        'iframe' => true,
        'css' => 'wym.css',
    ),
));

Также можно подключить Redactor к уже существующим на странице элементам:

$this->widget('ImperaviRedactorWidget', array(
    // Селектор для textarea
    'selector' => '.redactor',
    // Немного опций, см. http://imperavi.com/redactor/docs/
    'options' => array(),
));

Плагины редактора подключаются при помощи пакетов с ресурсами.

$this->widget('ImperaviRedactorWidget', array(
    'selector' => '.redactor',
    'options' => array(
        'lang' => 'ru',
    ),
    'plugins' => array(
        'fullscreen' => array(
            'js' => array('fullscreen.js',),
        ),
        'clips' => array(
            // Можно указать путь для публикации
            'basePath' => 'application.components.imperavi.my_plugin',
            // Можно указать ссылку на ресурсы плагина, в этом случае basePath игнорирутеся.
            // По умолчанию, путь до папки plugins из ресурсов расширения
            'baseUrl' => '/js/my_plugin',
            'css' => array('clips.css',),
            'js' => array('clips.js',),
            // Можно также указывать зависимости
            'depends' => array('imperavi-redactor',),
        ),
    ),
));
Jump to Line
Something went wrong with that request. Please try again.