Страница 5 из 6
Re: Yii2 Imperavi Redactor
Добавлено: 2016.11.29, 13:05
Dominus
Arni писал(а):Dominus писал(а):
Что бы отключить уникальность имен файлов, в настройках нужно указать:
По умолчанию там стоит true.
Спасибо! Не знаете есть ли какая-то настройка, чтобы в файлах с именем на кирилице при сохранении не коверкалось название? Получается Киевстар - акты.xlsx
Это с
кодировкой надо играть. Ну или переименовывать имена файлов в транслит).
Для транслита можно воспользоваться этим хэлпером
TransliteratorHelper for Yii 2.
Re: Yii2 Imperavi Redactor
Добавлено: 2016.11.29, 14:32
zelenin
некорректный и тяжелый транслитератор. из коробки в php идет "правильный" intl
Re: Yii2 Imperavi Redactor
Добавлено: 2016.11.29, 16:30
Arni
В любом случае это надо ковыряться в файлах виджета искать куда вставить функцию транслитерации?
Re: Yii2 Imperavi Redactor
Добавлено: 2016.11.29, 16:57
Dominus
Arni писал(а):В любом случае это надо ковыряться в файлах виджета искать куда вставить функцию транслитерации?
Отнаследоваться, переопределить что вам нужно и подключать свою версию UploadAction, да и искать то там особо ничего не нужно, код понятен, нужно только изменить run(), а именно там где задаётся имя файла
Как то так:
Код: Выделить всё
namespace common/components/imperavi/actions
class UploadAction extends \vova07\imperavi\actions\UploadAction
{
public function run()
{
...
if ($this->unique === true && $model->file->extension) {
$model->file->name = uniqid() . '.' . $model->file->extension;
} else if($model->file->baseName && $model->file->extension) {
// Задаём своё имя
$model->file->name = self::transliterateName($model->file->baseName). '.' . $model->file->extension;
}
...
}
public function transliterateName($str) {
// наш код
...
return $str;
}
}
и подключаем:
Код: Выделить всё
'file-upload' => [
...
'class' => 'common\components\imperavi\actions\UploadAction',
...
]
Re: Yii2 Imperavi Redactor
Добавлено: 2016.11.29, 17:55
Arni
Ура, получилось. Добавил в класс:
$model->file->name = transliterator_transliterate('Any-Latin; Latin-ASCII;', $model->file->baseName) . '.' . $model->file->extension;
осталось подключить как вы написали. Единственное плохо, что транслитератор intl на хостингах обычно отключен, наверное буду делать через какой-нибудь отдельный класс, которых полно в интернете.
Re: Yii2 Imperavi Redactor
Добавлено: 2016.11.29, 18:09
zelenin
Arni писал(а):Ура, получилось. Добавил в класс:
$model->file->name = transliterator_transliterate('Any-Latin; Latin-ASCII;', $model->file->baseName) . '.' . $model->file->extension;
осталось подключить как вы написали. Единственное плохо, что транслитератор intl на хостингах обычно отключен, наверное буду делать через какой-нибудь отдельный класс, которых полно в интернете.
надо включить.
Re: Yii2 Imperavi Redactor
Добавлено: 2016.11.29, 19:05
Arni
zelenin писал(а):Arni писал(а):Ура, получилось. Добавил в класс:
$model->file->name = transliterator_transliterate('Any-Latin; Latin-ASCII;', $model->file->baseName) . '.' . $model->file->extension;
осталось подключить как вы написали. Единственное плохо, что транслитератор intl на хостингах обычно отключен, наверное буду делать через какой-нибудь отдельный класс, которых полно в интернете.
надо включить.
Это понятно, просто хочу универсальное решение, а то получится сайт готов, а какой-то хостер откажется включать.
Re: Yii2 Imperavi Redactor
Добавлено: 2016.11.29, 19:09
zelenin
Arni писал(а):zelenin писал(а):Arni писал(а):Ура, получилось. Добавил в класс:
$model->file->name = transliterator_transliterate('Any-Latin; Latin-ASCII;', $model->file->baseName) . '.' . $model->file->extension;
осталось подключить как вы написали. Единственное плохо, что транслитератор intl на хостингах обычно отключен, наверное буду делать через какой-нибудь отдельный класс, которых полно в интернете.
надо включить.
Это понятно, просто хочу универсальное решение, а то получится сайт готов, а какой-то хостер откажется включать.
это проблема хостера. Вы вправе сами выбирать своего хостера. Достаточно странно ухудшать свой код, чтобы решить странные проблемы чужого дяди.
Re: Yii2 Imperavi Redactor
Добавлено: 2016.11.29, 22:58
Arni
Dominus писал(а):
подключаем
Методом тыка подключил. Работает, если в методе run() закомментировать строку
Код: Выделить всё
$model->addRule ('file', $this->_validator, $this->validatorOptions)->validate();
иначе ошибка в app.log:
Код: Выделить всё
2016-11-30 00:48:07 [127.0.0.1][-][-][error][yii\base\UnknownPropertyException] exception 'yii\base\UnknownPropertyException' with message 'Getting unknown property: common\widgets\UploadKsl::_validator' in W:\domains\klisl.loc\vendor\yiisoft\yii2\base\Component.php:143
Stack trace:
#0 W:\domains\klisl.loc\common\widgets\UploadKsl.php(33): yii\base\Component->__get('_validator')
#1 [internal function]: common\widgets\UploadKsl->run()
#2 W:\domains\klisl.loc\vendor\yiisoft\yii2\base\Action.php(92): call_user_func_array(Array, Array)
#3 W:\domains\klisl.loc\vendor\yiisoft\yii2\base\Controller.php(154): yii\base\Action->runWithParams(Array)
#4 W:\domains\klisl.loc\vendor\yiisoft\yii2\base\Module.php(454): yii\base\Controller->runAction('image-upload', Array)
#5 W:\domains\klisl.loc\vendor\yiisoft\yii2\web\Application.php(100): yii\base\Module->runAction('post/image-uplo...', Array)
#6 W:\domains\klisl.loc\vendor\yiisoft\yii2\base\Application.php(375): yii\web\Application->handleRequest(Object(yii\web\Request))
#7 W:\domains\klisl.loc\backend\web\index.php(19): yii\base\Application->run()
#8 {main}
не разбираюсь в этом, может у кого есть идеи? Ничего ведь в коде класса не менял.
Re: Yii2 Imperavi Redactor
Добавлено: 2016.11.30, 11:15
Dominus
Arni писал(а):Dominus писал(а):
подключаем
Методом тыка подключил. Работает, если в методе run() закомментировать строку
Код: Выделить всё
$model->addRule ('file', $this->_validator, $this->validatorOptions)->validate();
иначе ошибка в app.log:
Код: Выделить всё
2016-11-30 00:48:07 [127.0.0.1][-][-][error][yii\base\UnknownPropertyException] exception 'yii\base\UnknownPropertyException' with message 'Getting unknown property: common\widgets\UploadKsl::_validator' in W:\domains\klisl.loc\vendor\yiisoft\yii2\base\Component.php:143
Stack trace:
#0 W:\domains\klisl.loc\common\widgets\UploadKsl.php(33): yii\base\Component->__get('_validator')
#1 [internal function]: common\widgets\UploadKsl->run()
#2 W:\domains\klisl.loc\vendor\yiisoft\yii2\base\Action.php(92): call_user_func_array(Array, Array)
#3 W:\domains\klisl.loc\vendor\yiisoft\yii2\base\Controller.php(154): yii\base\Action->runWithParams(Array)
#4 W:\domains\klisl.loc\vendor\yiisoft\yii2\base\Module.php(454): yii\base\Controller->runAction('image-upload', Array)
#5 W:\domains\klisl.loc\vendor\yiisoft\yii2\web\Application.php(100): yii\base\Module->runAction('post/image-uplo...', Array)
#6 W:\domains\klisl.loc\vendor\yiisoft\yii2\base\Application.php(375): yii\web\Application->handleRequest(Object(yii\web\Request))
#7 W:\domains\klisl.loc\backend\web\index.php(19): yii\base\Application->run()
#8 {main}
не разбираюсь в этом, может у кого есть идеи? Ничего ведь в коде класса не менял.
Ошибка говорит о том, что не определена переменная $_validator.
$_validator приватная переменная, попробуйте добавить её перед run() в вашей версии UploadAction
т.е.
Код: Выделить всё
namespace common/components/imperavi/actions
class UploadAction extends \vova07\imperavi\actions\UploadAction
{
/**
* @var string Model validator name
*/
private $_validator = 'image';
public function run()
{
...
if ($this->unique === true && $model->file->extension) {
$model->file->name = uniqid() . '.' . $model->file->extension;
} else if($model->file->baseName && $model->file->extension) {
// Задаём своё имя
$model->file->name = self::transliterateName($model->file->baseName). '.' . $model->file->extension;
}
...
}
public function transliterateName($str) {
// наш код
...
return $str;
}
}
Re: Yii2 Imperavi Redactor
Добавлено: 2016.11.30, 12:10
Arni
Dominus писал(а):
Теперь все ок, спасибо. Когда сделал то уже думаю- как я сам не догадался)
Re: Yii2 Imperavi Redactor
Добавлено: 2016.12.28, 15:56
Arni
При вставке html кода в режиме "код", при повторном открытии/пересохранении записи, некоторые теги, например <span> форматирюется в
Код: Выделить всё
<span style="color: #000000; font-weight: bold;">class</span>
то есть кавычки заменяются. Кто-то знает как отменить такое форматирование?
Re: Yii2 Imperavi Redactor
Добавлено: 2016.12.28, 16:38
Arni
Разобрался, это делает функция encodeEntities() из файла redactor.js Отменил замену символов в функции, сейчас нормально. Но может есть такая настройка, чтобы не изменять файл виджета?
Re: Yii2 Imperavi Redactor
Добавлено: 2016.12.29, 00:50
Dominus
Arni писал(а):Разобрался, это делает функция encodeEntities() из файла redactor.js Отменил замену символов в функции, сейчас нормально. Но может есть такая настройка, чтобы не изменять файл виджета?
Смотрите
настройки самого редактора.
Re: Yii2 Imperavi Redactor
Добавлено: 2016.12.29, 19:37
Arni
Dominus писал(а):
Смотрите
настройки самого редактора.
Вроде бы там нет такой опции, но есть много другого нужного о чем не знал.
Re: Yii2 Imperavi Redactor
Добавлено: 2017.02.16, 07:26
kawabanga
Друзья, а нет ли желания продлить OEM лицензию? Всем миром по нитке... Я бы вложился...
Re: Yii2 Imperavi Redactor
Добавлено: 2017.02.19, 18:48
kemycuk
Товарищи, привет!
Редактор создаёт списки вида:
<ul>
<li></li>
<li></li>
<li></li>
</ul>
А мне нужно добавить стиль по умолчанию:
<ul class="style-name">
<li></li>
<li></li>
<li></li>
</ul>
Где что нужно отредактироват ьскажите, пожалуйста? (Желательно имя файла и строку, тк я вообще далёк от php)
Re: Yii2 Imperavi Redactor
Добавлено: 2017.03.31, 11:47
Goog1e
Не получается удалить картинку на сервере, когда удаляешь через кнопку
https://yadi.sk/i/9nGvFseU3GWiRX
DefaultController
Код: Выделить всё
return [
'images-get' => [
'class' => 'vova07\imperavi\actions\GetAction',
'url' => '/images/post',
'path' => '@webroot/images/post',
'type' => GetAction::TYPE_IMAGES,
],
'image-upload' => [
'class' => 'vova07\imperavi\actions\UploadAction',
'url' => '/images/post',
'path' => '@webroot/images/post',
],
];
_form
Код: Выделить всё
<?= $form->field($model, 'post_content')->widget(
Imperavi::className(), [
'settings' => [
'minHeight' => 300,
'imageUpload' => Url::to(['/admin/default/image-upload']),
'imageManagerJson' => Url::to(['/admin/default/image-get']),
'plugins' => [
'imagemanager',
]
]
]
) ?>
И еще такой момент, не могу добавить новые плагины
Например 'counter' ,'table' - кнопки в редакторе не появляются.
Re: Yii2 Imperavi Redactor
Добавлено: 2017.03.31, 16:30
Goog1e
Насчет вывода плагинов - такая вот штука,
Если на странице 2 редактора, и если во дном стоит плагин 'table' а в втором нет это, то не выводится плагин вообще.Приходится впихивать везде, чтоб показывало
Re: Yii2 Imperavi Redactor
Добавлено: 2017.04.26, 17:44
antosh
Goog1e писал(а): ↑2017.03.31, 16:30
Насчет вывода плагинов - такая вот штука,
Если на странице 2 редактора, и если во дном стоит плагин 'table' а в втором нет это, то не выводится плагин вообще.Приходится впихивать везде, чтоб показывало
Причем, по аналогии с плагином Video (на таблицах не проверял), если на странице редактор используется N раз, то главное, чтобы плагин был прописан к использованию в следующих за необходимым редактором
. В предыдущих необходимому можно не вписывать.