Страница 1 из 6

Yii2 Imperavi Redactor

Добавлено: 2015.03.13, 13:05
vova07
С вашего позволения уважаемые администраторы, я создам данную тему чтоб можно было получать вопросы в открытом виде вместо ЛС которые не всегда удобны так как вижу их только я. Возможно в открытом доступе быстрее можно будет найти решение за счет сообщества.

Про расширение:
Данный виджет представляет обертку для Imperavi Redactor-a для второй версии Yii. Сам виджет свободен в использовании и распространении. Но вот непосредственно редактор доступен только Yii сообществу, имейте пожалуйста это введу.

Немного про функционал:
- Поддерживает работу в независимом режиме
- Есть возможность подключать виджет к готовой форме
- Возможность загружать изображения и файлы с локальной машины
- Возможность вставлять уже ранее загружаемые изображения и файлы
- Поддерживает кастомные "Assets Bundle"
- Наличие RU и EN документации
- На данный момент переведен на 4 языка: DE, EN, pt-BR, RU

Если у вас есть какие либо вопросы которые вы считаете что не достойны репорта на гитхаб, вы можете всегда их задать в данной теме.
Если вы обнаружили какой либо баг, напишите пожалуйста репорт на гитхаб.

Подробная инструкция по установке и непосредственно исходники расширения хранятся в гитхаб репозитории.

Всем спасибо!

Re: Yii2 Imperavi Redactor

Добавлено: 2015.03.27, 19:40
mat.twg
День добрый, хотел бы разобрать вот это:
Add images that have already been uploaded

// DefaultController.php
public function actions()
{
return [
'images-get' => [
'class' => 'vova07\imperavi\actions\GetAction',
'url' => 'http://my-site.com/images/', // Directory URL address, where files are stored.
'path' => '@alias/to/my/path', // Or absolute path to directory where files are stored.
'type' => GetAction::TYPE_IMAGES,
]
];
}

// View.php
echo \vova07\imperavi\Widget::widget([
'selector' => '#my-textarea-id',
'settings' => [
'lang' => 'ru',
'minHeight' => 200,
'imageManagerJson' => Url::to(['/default/images-get']),
'plugins' => [
'imagemanager'
]
]
]);
error:
001.png
001.png (43.3 КБ) 10550 просмотров
Пока в исходники не залазил, немного по-позже.. но за комментарии зарание спасибо!

Re: Yii2 Imperavi Redactor

Добавлено: 2015.03.27, 22:13
zelenin
GetAction::TYPE_IMAGES, надо указать как \vova07\imperavi\actions\GetAction::TYPE_IMAGES

Re: Yii2 Imperavi Redactor

Добавлено: 2015.03.27, 23:10
vova07
@zelenin написал решение проблемы!

Re: Yii2 Imperavi Redactor

Добавлено: 2015.04.06, 22:31
NEIRON
Добрый день!
Делал всё по инструкции (https://github.com/vova07/yii2-imperavi-widget), но редактор что-то не заработал.
Установил через composer
И заменяю в стандартной _form.php:

Код: Выделить всё

<?= $form->field($model, 'description')->textarea(['rows' => 6]) ?>
На код из примера:

Код: Выделить всё

 echo $form->field($model, 'description')->widget(Widget::className(), [
    'settings' => [
    'lang' => 'ru',
    'minHeight' => 200,
    'plugins' => [
    'clips',
    'fullscreen'
    ]
    ]
    ]); 
На странице получаю:
screenshot-atlant.grcc.dev 2015-04-06 22-29-37.png
screenshot-atlant.grcc.dev 2015-04-06 22-29-37.png (19.31 КБ) 10521 просмотр
В консоли ошибок нет. Где-то еще какие-то настройки надо прописать, что бы редактор заработал? Спасибо.

Re: Yii2 Imperavi Redactor

Добавлено: 2015.04.07, 19:58
vova07
@NEIRON вроде все правильно у вас прописано, и этих настроек вполне достаточно чтобы все работало. В консоли браузера точно нет ошибок? Скрин консоли можете предоставить? + напишите пожалуйста версию браузера в котором смотрите?

Re: Yii2 Imperavi Redactor

Добавлено: 2015.04.08, 10:52
NEIRON
Вот скрин консоли:
Изображение
Браузер: Chromium Версия 41.0.2272.76 Ubuntu 14.10 (64-bit)
Но, если говорите, что указанных мной настроек достаточно, возможно дело в скриптах шаблона. Используется шаблон: http://aqvatarius.com/themes/atlant/html/index.html
Буду пробовать на чистом Yii2. Спасибо за ответ, буду разбираться.

P.S. Проверил в Firefox, тоже не работает. Дело не в браузере, значит.

Re: Yii2 Imperavi Redactor

Добавлено: 2015.04.08, 17:48
vova07
Честно даже не знаю что сказать. Возможно дело в теме, точнее в CSS стилях. Может "z-index" перекрывает редактор, или "display: none;" как-то прописывается для родителя или еще что.
Проверьте непосредственно вывод "textarea" и стили которые к ней привязаны.
Да и как вы правильно решили, проверьте сначала на голом приложении, если все заработает, значит виноват CSS.

Re: Yii2 Imperavi Redactor

Добавлено: 2015.04.16, 17:59
NEIRON
vova07 писал(а):Да и как вы правильно решили, проверьте сначала на голом приложении, если все заработает, значит виноват CSS.
Спасибо за помощь и советы.
При подключении шаблона забыл указать:

Код: Выделить всё

<?php $this->head() ?>
Отдельно спасибо за ваши модули.

Re: Yii2 Imperavi Redactor

Добавлено: 2015.04.19, 17:24
Halumein
Про аплоад непонятно:

Код: Выделить всё

        'file-upload' => [
            'class' => 'vova07\imperavi\actions\UploadAction',
            'url' => 'http://my-site.com/files/', // Directory URL address, where files are stored.
            'path' => '@alias/to/my/path' // Or absolute path to directory where files are stored.
        ],
Как path использовать если он всегда по url загружает?
Или как тогда настроить, что бы Yii2 не думал, что http://my-site.com/images - контроллер.

Re: Yii2 Imperavi Redactor

Добавлено: 2015.04.19, 21:20
vova07
Возможно не совсем ясно написал комменты в README, по этому попробую исправить:
"url" - это ссылка к директории с веб доступом в которой будет загружен сам файл. Подразумевается что в конкретно данной ситуации загрузка происходит в временную папку, по этому и УРЛ будет временным.
"path" - это путь к временной папке куда будет загружен файл. Данный выджет имеет такую логику что он предварительно загружает файл в временную папку, именно в той что указано в "path". И только при сохранении он перемещает файл в постоянную папку.

Сам Уии не будет думать что это контроллер, если правильно настроить УРЛ менеджер.

Надеюсь я смог вам более менее разъяснить ситуацию.

Re: Yii2 Imperavi Redactor

Добавлено: 2015.04.20, 06:16
Halumein
Да, теперь понятно, спасибо.

UPD. Насколько я вижу, логика такова: загрузил изображение по пути указанному в path, а в редакторе, в src изображения прописал url.

Re: Yii2 Imperavi Redactor

Добавлено: 2015.04.20, 08:36
vova07
Да, именно так.

Re: Yii2 Imperavi Redactor

Добавлено: 2015.05.07, 13:41
Halumein
При загрузке изображения, виджет вставляет в поле код: <img src=...>
Можно ли как-то сделать, что бы он по-умолчанию добавлял туда еще один атрибут width="100%" ?
<img src="..." width="100%">
На мой взгляд удобнее выставлять изображение на полную ширину блока, а не ширину изображения: накидал их в колонку несколько штук, и не парюсь что в итоге они по-вылазят за края колонки абы-как.

Хотя, должен признать, это полезно для изображений бОльше ширины блока, если ширина изображения небольшая - логичнее оставлять неизменной.

Может добавить еще параметр в форму? defaultWidth для аплоад-изображений и пускай подставляет его.

Re: Yii2 Imperavi Redactor

Добавлено: 2015.05.07, 15:23
vova07
Здравствуйте!

Так как давно уже не слежу за доками редактора, не помню все, но если в нём предусмотрен колбэк который вызывается перед вставкой изображения в редактор, то эту задачу можно решить через него.
Если колбэк отсутсвует то задачу нужно решать через свой вспомогательный кастомный виджет.

А по умолчанию если на сайте предусматриваются только большие изображения, то лучше всего прописать для них глобальные CSS правила, и не загрязнять лишним кодом ХТМЛ и тем самым не нагружая саму JS логику.

Так как задача очень личная (это я говорю потому что лично я бы не использовал такую логику на своих сайтах - имею введу добавления явной ширины к изображению - я кстати ярых ненавистник явных стилей в ХТМЛ коде) то добавлять такую опцию вероятнее всего не имеет смысла.

Хотя если кому-то еще это будет полезно и кто-то готов поделится кодом, то прошу на гитхаб с ПР-ом, и я его приму.

Re: Yii2 Imperavi Redactor

Добавлено: 2015.05.07, 15:38
Halumein
Принято.
Решил css и правилом max-width: 100%;

Re: Yii2 Imperavi Redactor

Добавлено: 2015.05.08, 15:24
celsoft
Прошу рассмотреть. :)
1.png
Тут думаю все ясно
1.png (67.93 КБ) 10356 просмотров
22.png
На хосте не пробовал, на локале точно беда с путями.
22.png (105.71 КБ) 10356 просмотров
3.png
Не критично, но все же. В офф. плагине инпут по центру))
3.png (19.83 КБ) 10356 просмотров
Возможно пропустил... но не увидел как указывать форматы для загрузки картинок и файлов.
Если такой возможности нет, то хотелось бы ее увидеть. Что-то типа 'fTypes' => 'rar, zip, exe' и т.д. Вам виднее.

P.s. не хватает спойлеров на форуме.

Re: Yii2 Imperavi Redactor

Добавлено: 2015.05.08, 18:59
vova07
@celsoft первая ошибка вероятнее всего связана с неправильными настройками. Если вы загружаете файл, то в экшене контролера должны указать что туда будут загружаться файлы а не картинки. Для этого есть специальный параметр: "uploadOnlyImage" который по умолчанию "true".

Вторая ошибка валидна только для винды, попробую решить, давно уже надо, но сильно сейчас занят, даже очень.

По третьему изображению не совсем понял что там не так. Подробнее пожалуйста если можно.

Касательно типов файлов то эта опция доступна с первого релиза: "validatorOptions" позволяет вам настроить валидацию файла так как вам это угодно, в рамках доступных опций "FileValidator"-а

Re: Yii2 Imperavi Redactor

Добавлено: 2015.05.08, 20:18
celsoft
Для этого есть специальный параметр: "uploadOnlyImage" который по умолчанию "true".
Не совсем понял для чего так сделано. Ведь для изображений есть отдельный загрузчик. Как минимум нужно было хотя бы минимальный набор расширений по умолчанию сделать. Я имею ввиду файловый загрузчик. Ну да ладно, не суть.

Хотелось бы увидеть ошибки через alert хотя бы, а не в консоли (первый скрин). Ведь не каждый додумается залезть и посмотреть ответ, когда что-то не загружается.

По поводу третьего. Прикрепил скрин с офф. сайта. Там input по центру + пишет что файлы можно загружать перетаскивая. Сравните и поймете о чем я. Мелочь, но приятно. :D
1.png
1.png (19.7 КБ) 10342 просмотра

Re: Yii2 Imperavi Redactor

Добавлено: 2015.05.12, 10:31
Halumein
Вопрос про плагин "limiter"
Вижу плагин есть в папке виджета, но как его использовать? По аналогии с http://imperavi.com/redactor/plugins/limiter/ что-то не работает:

Код: Выделить всё

                <?= $form->field($model, 'anons')->widget(Widget::className(), [
                        'settings' => [
                            'lang' => 'ru',
                            'limiter' => 10,
                            'minHeight' => 200,
                            'plugins' => [
                                'fullscreen',
                                'limiter',
                            ]
                        ]