Yii2: Визуальный редактор Imperavi Redactor
Одна из самых необходимых вещей при создании сайта на Yii (Yii 2) это добавить на текстовое поле визуальный редактор. Для себя нашёл очень удобным редакотр Imperavi Redactor, на новых проектах ставлю его вместо ckeditor или Tinymce. Мне приглянулся виджет от vova07 - https://github.com/vova07/yii2-imperavi-widget. Хорошо описан, удобен на формах. Устанавливается легко через composer. Пришлось повозиться с ошибкой неизвестного класс Widget. Локально composer быстро установил виджет. Но на хостинге нет composer, а просто залить файлы, в которые вносил изменения, оказалось недостаточным. Были видно какие-то добавления в папку vendors/composer, или ещё куда. Проблема решилась перезагрузкой всей папки vendors на хостинг.
Также похожие расширения:
- https://github.com/asofter/yii2-imperavi-redactor
- https://packagist.org/packages/zyx/yii2-imperavi-redactor
В контроллере добавил в actions()
public function actions()
{
return [
'error' => [
'class' => 'yii\web\ErrorAction',
],
'image-upload' => [
'class' => 'vova07\imperavi\actions\UploadAction',
'url' => '/images/blog/', // Directory URL address, where files are stored.
'path' => '@webroot/images/blog/' // Or absolute path to directory where files are stored.
],
'images-get' => [
'class' => 'vova07\imperavi\actions\GetAction',
'url' => '/images/blog/', // Directory URL address, where files are stored.
'path' => '@webroot/images/blog/', // Or absolute path to directory where files are stored.
'type' => '0',
],
'files-get' => [
'class' => 'vova07\imperavi\actions\GetAction',
'url' => '/files/blog/', // Directory URL address, where files are stored.
'path' => '@webroot/files/blog/', // Or absolute path to directory where files are stored.
'type' => '1',//GetAction::TYPE_FILES,
],
'file-upload' => [
'class' => 'vova07\imperavi\actions\UploadAction',
'url' => '/files/blog/', // Directory URL address, where files are stored.
'path' => '@webroot/files/blog/' // Or absolute path to directory where files are stored.
],
];
}
use vova07\imperavi\Widget;
<?= $form->field($model, 'text')->widget(Widget::classname(), [
'settings' => [
'lang' => 'ru',
'minHeight' => 300,
'pastePlainText' => true,
'buttonSource' => true,
'plugins' => [
'clips',
'fullscreen'
],
'imageUpload' => Url::to(['/blog/image-upload']),
'imageManagerJson' => Url::to(['/blog/images-get']),
'fileManagerJson' => Url::to(['/blog/files-get']),
'fileUpload' => Url::to(['/blog/file-upload'])
]
]);?>
almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.
Вы можете почитать все статьи от almix'а.
- 14 Разработка приложения на Yii. Урок 14: Выводим список категорий как новый виджет на сайте (29.04.2015)
- 13 Разработка приложения на Yii. Урок 13: Внедряем категории для статей. (29.04.2015)
- 12 Разработка приложения на Yii. Урок 12: Профилирование приложения, включаем кеширование. (20.01.2015)
- 11 Yiico. Видеокурс по разработке сайта на Yii. Урок 11: Отладка приложения, включаем журналирование. (20.01.2015)
- 10 Yiico. Видеокурс по разработке сайта на Yii. Урок 10: Если ваше приложение находится не в корневой папке, а во вложенной. (19.10.2014)
- 9 Разработка сайта на Yii с нуля. Урок 9. Выборка статей определённого автора. (13.08.2014)
- 8 Разработка сайта на Yii с нуля. Урок 8. Вызов в моделях функции, общей для них. Как избегать дублирования кода? (25.07.2014)
- 7 Разработка сайта на Yii с нуля. Урок 7. Изменение количества выводимых записей на странице в CGridView. Включаем сессии Yii. (04.09.2013)
- 6 Разработка сайта на Yii с нуля. Урок 6. Автоматич. отправка оповещений об одобренных комментариях на email автора комментария (11.08.2013)
- 5 Разработка сайта на Yii с нуля. Урок 5. Переименовываем blog в yiico. Изменяем "Home" в breadcrumbs. Включаем Gzip-сжатие. (09.08.2013)
- 4 Курс по Yii с нуля. Урок 4. Дорабатываем простую работу с пользователями: хранение пароля при редактировании пользователя. (13.04.2013)
- 3 Курс по Yii с нуля. Урок 3. Создаём новых пользователей. Организуем простую систему авторизации. Аутентификация, пароли, соли. (20.07.2014)
- 2 Yii + Git (github) на Mac. (24.03.2013)
- 2 Курс по Yii с нуля. Урок 2. Переносим и настраиваем Yii и проект нашего сайта на рабочем сервере. Избавляемся от index.php в url (09.07.2014)
- 1 Курс по Yii с нуля. Урок 1. Устанавливаем Yii на локальном компьютере. Заводим проект будущего сайта. (10.03.2013)
- 0 Composer – пакетный менеджер PHP. Что и как? (22.07.2014)
- 0 MySQL: проверить содержится ли значение в поле столбца (в столбце хранится строка значений через запятую) (22.05.2014)
- 0 Yii: Статичные страницы (создание, редактирование, удаление) (28.04.2014)
- 0 Yii: Расширение ECKEditor = Связка ckeditor + kcfinder (визуальный редактор с бесплатным файловым менеджером) (28.04.2014)
- 0 Yii: Bootstrap tabs, делаем активной вкладку на которую выполняется переход по ссылке (20.03.2014)
- 0 Yii: Доступ к атрибуту модели из файла шаблона (Вызов в шаблоне какого-либо атрибута модели). (17.02.2014)
- 0 Yii: Множественный автокомплит с помощью CJuiAutoComplete (автокомплит нескольких значений в одно поле) (07.02.2014)
- 0 Yii: Фотогалерея через поведение (доработка расширения imagesgallerymanager) (08.03.2016)
- 0 Yii: Установка и настройка Yii-app заготовки приложения от Crisu83 (09.03.2014)
- 0 Twitter Bootstrap Carousel Crossfade (09.09.2013)
6 комментариев
Так же поставил и настроил imperavi на YII2, но с картинками какая-то проблема...При попытке использовать уже загруженные картинки (image manager) показывает вместо файлов пустоту, причем количество пустых картинок равно количеству реальных файлов. Что-то с путями?
У меня загруженные ранее картинки работают, делал так:
В контроллере:
В представлении:
Привет. Может быть кому нибудь поможет (из тех кто будет искать позже).
Решением проблемы "{"error":"The file \"Doc_999e15b6b1a143f48e142872fdfd3b6b.pdf\" is not an image."} "
является использование "дополнительных параметров" в "actions" а именно:
'uploadOnlyImage' => false, //чтобы можно было загружать файлы
'validatorOptions' => ['maxSize' => 40000], //макс. размер файла"...просто залить файлы, в которые вносил изменения, оказалось недостаточным. Были видно какие-то добавления в папку vendors/composer, или ещё куда. Проблема решилась перезагрузкой всей папки vendors на хостинг."
Посмотрите файл /vendor/composer/autoload_psr4.php