Установка и использование Imperavi Redactor в Yii

Установка Imperavi Redactor в Yii

Для начала необходимо скачать виджет imperavi-redactor-widget: https://github.com/yiiext/imperavi-redactor-widget и скопировать его в /protected/extensions/imperavi-redactor-widget.

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

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

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

И в представлении вызываем сам виджет:

  1. <?php
  2. $this->widget('ImperaviRedactorWidget', array(
  3. //используем модель
  4. 'model' => $modelName, //модель
  5. 'attribute' => 'fieldName', //имя поля
  6. //или просто для поля ввода 'name' => 'inputName',
  7. 'name' => 'my_input_name',
  8. // Настройки виджета, подробнее: http://imperavi.com/redactor/docs/
  9. 'options' => array(
  10. 'lang' => 'en',
  11. 'toolbar' => false,
  12. 'iframe' => true,
  13. ),
  14. ));

Пример вызова виджета с дополнительными параметрами:

  1. <div class="form-group">
  2. <?php
  3. echo $form->labelEx($model, 'shortText');
  4. $this->widget('ImperaviRedactorWidget', array(
  5. 'model' => $model,
  6. 'attribute' => 'shortText',
  7. 'options' => array(
  8. 'focus' => true,
  9. 'lang' => Yii::app()->language,
  10. 'buttons' => array('html', 'bold', 'deleted', 'unorderedlist', 'orderedlist', 'link'),
  11. ),
  12. 'htmlOptions' => array('placeholder' => 'Введите краткое описание статьи')
  13. ));
  14. echo $form->error($model, 'text');
  15. ?>
  16. </div>
  17.  
  18. <div class="form-group">
  19. <?php
  20. echo $form->labelEx($model, 'text');
  21. $this->widget('ImperaviRedactorWidget', array(
  22. 'model' => $model,
  23. 'attribute' => 'text',
  24. 'options' => array(
  25. 'minHeight' => 300,
  26. 'lang' => Yii::app()->language,
  27. 'imageUpload' => '/pathToFolder',
  28. 'formatting' => array('p', 'blockquote', 'pre', 'h2', 'h3'),
  29. ),
  30. 'plugins' => array(
  31. 'fullscreen' => array(
  32. 'js' => array('fullscreen.js',),
  33. ),
  34. 'table' => array('js' => array('table.js',),),
  35. 'imagemanager' => array('js' => array('imagemanager.js',),),
  36. 'filemanager' => array('js' => array('filemanager.js',),),
  37. 'clips' => array(
  38. //можно указать путь для публикации
  39. //'basePath' => 'application.components.imperavi.my_plugin',
  40. //можно указать ссылку на ресурсы плагина, в этом случае basePath игнорирутеся.
  41. //по умолчанию, путь до папки plugins из ресурсов расширения
  42. //'baseUrl' => '/js/my_plugin',
  43. 'css' => array('clips.css',),
  44. 'js' => array('clips.js',),
  45. //можно также указывать зависимости
  46. 'depends' => array('imperavi-redactor',),
  47. ),
  48. ),
  49. ));
  50. echo $form->error($model, 'text');
  51. ?>
  52. </div>

Установка и использование Imperavi Redactor в Yii2

Для работы с Imperavi Redactor в Yii2 будем использовать виджет: https://github.com/vova07/yii2-imperavi-widget.

Установка Imperavi Redactor в Yii2 с помощью composer

Открываем терминал (консоль) переходим в папку проекта и выполняем команду:

  1. composer require --prefer-dist vova07/yii2-imperavi-widget "*"

Эта команда установит виджет в папку: yii-application/vendor/vova07/yii2-imperavi-widget

Установка Imperavi Redactor в Yii2 без использования composer

Скачиваем виджет с github: https://github.com/vova07/yii2-imperavi-widget.

Распаковываем содержимое папки yii2-imperavi-widget-master в папку /yii-application/vendor/vova07/yii2-imperavi-widget.

В файл vendor/composer/autoload_psr4.php добавляем:

  1. 'vova07\\imperavi\\' => array($vendorDir . '/vova07/yii2-imperavi-widget/src'),

После чего файл vendor/composer/autoload_psr4.php примет вид:

  1. return array(
  2. //...
  3. 'vova07\\imperavi\\' => array($vendorDir . '/vova07/yii2-imperavi-widget/src'),
  4. //...
  5. );

В файл vendor/yiisoft/extensions.php добавляем:

  1. 'vova07/imperavi' =>
  2. array (
  3. 'name' => 'vova07/imperavi',
  4. 'version' => '1.2.10.0',
  5. 'alias' =>
  6. array (
  7. '@vova07/imperavi' => $vendorDir . '/vova07/yii2-imperavi-widget/src',
  8. ),
  9. ),

После чего файл vendor/yiisoft/extensions.php примет вид:

  1. <?php
  2. $vendorDir = dirname(__DIR__);
  3. return array (
  4. //...
  5. 'vova07/imperavi' =>
  6. array (
  7. 'name' => 'vova07/imperavi',
  8. 'version' => '1.2.10.0',
  9. 'alias' =>
  10. array (
  11. '@vova07/imperavi' => $vendorDir . '/vova07/yii2-imperavi-widget/src',
  12. ),
  13. ),
  14. //...
  15. );

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

Выводим Imperavi Redactor как простой виджет:

  1. echo \vova07\imperavi\Widget::widget([
  2. 'name' => 'redactor',
  3. 'settings' => [
  4. 'lang' => 'ru',
  5. 'minHeight' => 200,
  6. 'plugins' => [
  7. 'clips',
  8. 'fullscreen'
  9. ]
  10. ]
  11. ]);

Выводим Imperavi Redactor как виджет ActiveForm:

  1. use vova07\imperavi\Widget;
  2. echo $form->field($model, 'text')->widget(Widget::className(), [
  3. 'settings' => [
  4. 'lang' => 'ru',
  5. 'minHeight' => 200,
  6. 'plugins' => [
  7. 'clips',
  8. 'fullscreen'
  9. ]
  10. ]
  11. ]);

Подробная документация виджета: https://github.com/vova07/yii2-imperavi-widget/blob/master/README_RU.md или https://github.com/vova07/yii2-imperavi-widget.

Дополнительно

Документация по Imperavi Redactor:http://imperavi.com/redactor/docs/