[РЕШЕНО] Проблемы vova07/yii2-imperavi-widget

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Аватара пользователя
dosomeweb
Сообщения: 24
Зарегистрирован: 2015.02.10, 04:33

[РЕШЕНО] Проблемы vova07/yii2-imperavi-widget

Сообщение dosomeweb »

Всем привет. Внезапно поимел проблемы с приятным по началу виджетом vova07/yii2-imperavi-widget от уважаемого vova07.

Проблема такая:
Подключаю виджет к модулю админки, если делать все как указано в описании на Гитхаб, а именно тот пункт который касается подключения виджета как элемент ActiveForm:

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

use vova07\imperavi\Widget;

echo $form->field($model, 'content')->widget(Widget::className(), [
    'settings' => [
        'lang' => 'ru',
        'minHeight' => 200,
        'plugins' => [
            'clips',
            'fullscreen',
            'fileUpload' => Url::to(['/default/file-upload'])
        ]
    ]
]);
.. в таком случае не появляется иконка добавления картинки.

Затем я вычитал на просторах интернета, что можно строку с 'fileUpload' вынести за массив настроек, вот так:

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

echo $form->field($model, 'content')->widget(Widget::className(), [
    'selector' => '#post-content',
    'settings' => [
        'lang' => 'ru',
        'minHeight' => 200,
        'plugins' => [
            'clips',
            'fullscreen',
            ],
        'imageUpload' => Url::to(['/default/image-upload'])
      ]
]);
 
Так иконка появляется, но при попытке загрузить изображение, в отладчике я естественно получаю ошибку т.к. нет у меня в корне сайта никакой папки default, третий вариант я изобрел сам, вот он :

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

echo $form->field($model, 'content')->widget(Widget::className(), [
    'selector' => '#post-content',
    'settings' => [
        'lang' => 'ru',
        'minHeight' => 200,
        'plugins' => [
            'clips',
            'fullscreen',
            'imageUpload'
            ],
        'imageUpload' => Url::to(['/default/image-upload'])
      
    ]
]); 
В таком случае иконка появляется, но сразу после загрузки страницы я вижу ошибку

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

 "GET http://mysite.ru/assets/f6235c6e/plugins/imageUpload/imageUpload.js " 
, виджет пытается найти ассетс, но они у меня в папке web (базовый шаблон), но если бы даже удалось указать правильный путь, то в ассетс в папке f6235c6e нет папки imageUpload и нет никакого imageUpload.js вообще нигде.

ставил виджет через composer.json , composer обновлял, во время установки ошибок не было.

Будьте добры, подскажите в чем может быть дело? Или может сам vova07 появится- было бы вообще идеально.

Спасибо.
Последний раз редактировалось dosomeweb 2015.02.20, 16:07, всего редактировалось 1 раз.
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: Проблемы vova07/yii2-imperavi-widget

Сообщение vova07 »

Здравствуйте @dosomeweb!
Проблема заключается в том что вы неправильно настроили виджет. По крайне мере не до конца. В инструкции есть раздел который описывает специально подключения возможности загрузки изображения: https://github.com/vova07/yii2-imperavi ... зображения если прочитаете этот раздел то увидите что там по мимо самого виджета, нужно добавить еще и экшена в контроллер который и будет загружать эти изображения.
Если даже после прочтения этого примера у вас будут еще проблемы, пишите, попробую вам помочь.
Удачи!
Аватара пользователя
dosomeweb
Сообщения: 24
Зарегистрирован: 2015.02.10, 04:33

Re: Проблемы vova07/yii2-imperavi-widget

Сообщение dosomeweb »

Спасибо за быстрый ответ! Контроллер я само-собой настраивал, просто не стал писать т.к. думал это очевидно, единственное, может я не верно понял, там есть описание настрйки view.php это вью чего? Отображения самого виджета?
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: Проблемы vova07/yii2-imperavi-widget

Сообщение vova07 »

view.php подразумевает файл представления. То есть этот тот файл который будет содержать непосредственно вывод виджета. Это может быть любой файл, _form.php, create.php в общем это чисто чтоб было понятно что речь идет о представлении.
Аватара пользователя
dosomeweb
Сообщения: 24
Зарегистрирован: 2015.02.10, 04:33

Re: Проблемы vova07/yii2-imperavi-widget

Сообщение dosomeweb »

Да, с этим ясно. И еще, по поводу вот этих строк в контроллере

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

'url' => '/img/', // Directory URL address, where files are stored.
 'path' => '@webroot/img/', // Or absolute path to directory where files are stored.
 
Они же подразумевают путь к директории, где я собираюсь хранить файлы?
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: Проблемы vova07/yii2-imperavi-widget

Сообщение vova07 »

Да, именно.
Аватара пользователя
dosomeweb
Сообщения: 24
Зарегистрирован: 2015.02.10, 04:33

Re: Проблемы vova07/yii2-imperavi-widget

Сообщение dosomeweb »

Ну тогда я вообще ничего не понимаю :( Попробую еще раз привести свой код полностью, итак

Контроллер:

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


    public function actions()
{
    return [
        'image-upload' => [
            'class' => 'vova07\imperavi\actions\UploadAction',
            'url' => '/img/', // Directory URL address, where files are stored.
            'path' => '@webroot/img' // Or absolute path to directory where files are stored.
        ],

      
    ];
}
...
_form.php

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

<?
echo $form->field($model, 'content')->widget(Widget::className(), [
    'selector' => '#post-content',
    'settings' => [
        'lang' => 'ru',
        'minHeight' => 200,
        'plugins' => [
            'clips',
            'fullscreen',
            'imageUpload' => Url::to(['/default/image-upload'])
            ],
        
      
    ]
]);

    ?>
    
    ...

В итоге, иконки добавления изображения нет, в обработчике браузера вот такая ошибка:

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

 GET http://mysite.ru/assets/f6235c6e/plugins//default/image-upload//default/image-upload.js 

Может это как-то связано с тем, что у меня к _form.php еще подключен виджет:

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

use kartik\file\FileInput;
?

Жаль все таки было бы отказываться от yii2-imperavi-widget, он очень приятен, но нужны изображения ...
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: Проблемы vova07/yii2-imperavi-widget

Сообщение vova07 »

Ошибка странная если честно. Рервое что бросается в глаза это повторения default/image-upload и слэши лишние там тоже рисутсвуют. Попробуйте прописать путь к экшену как абсолютный в смысле относительно приложения. И также если можно отключите временно другие расширения, чтобы точно убедится что проблема на стороне моеготрасширения.
Аватара пользователя
dosomeweb
Сообщения: 24
Зарегистрирован: 2015.02.10, 04:33

Re: Проблемы vova07/yii2-imperavi-widget

Сообщение dosomeweb »

Ох, вообще получается страх божий :)

прописал так:

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

'imageUpload' => Url::to(['/modules/admin/controllers/default/image-upload'])

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

http://mysite.ru/assets/f6235c6e/plugins//modules/admin/controllers/default/image-upload//modules/admin/controllers/default/image-upload.js  
да собственно, если даже вообще не писать путь, например так:

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

'imageUpload'
даже без URL , то виджет все равно упорно ищет что то тут)

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

 GET http://mysite.ru/assets/f6235c6e/plugins/imageUpload/imageUpload.js   
Аватара пользователя
dosomeweb
Сообщения: 24
Зарегистрирован: 2015.02.10, 04:33

Re: Проблемы vova07/yii2-imperavi-widget

Сообщение dosomeweb »

ах, да, kartik\file\FileInput отключил
Аватара пользователя
dosomeweb
Сообщения: 24
Зарегистрирован: 2015.02.10, 04:33

Re: Проблемы vova07/yii2-imperavi-widget

Сообщение dosomeweb »

еще мысль, у меня включен prettyUrl в конфиге, может тут проблема? Вот кусок конфига:

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

 'urlManager' => [
         'class'=>'yii\web\UrlManager',
        'enablePrettyUrl' => true,
        'showScriptName' => false,
        'rules' => [
            'module/<module:\w+>/<controller:\w+>/<action:\w+>' => '<module>/<controller>/<action>',
            '<controller>/<action>' => '<controller>/<action>',
        ]
    ],
 
maxmirazh33
Сообщения: 45
Зарегистрирован: 2013.04.05, 09:49
Откуда: Омск

Re: Проблемы vova07/yii2-imperavi-widget

Сообщение maxmirazh33 »

Не нужно подключать imageUpload в секцию с плагинами.
Аватара пользователя
dosomeweb
Сообщения: 24
Зарегистрирован: 2015.02.10, 04:33

Re: Проблемы vova07/yii2-imperavi-widget

Сообщение dosomeweb »

maxmirazh33 писал(а):Не нужно подключать imageUpload в секцию с плагинами.
да, когда выносишь ее за пределы секции то иконка добавления изображений появляется, но почему-то как бы я не прописывал путь виджет все равно подставляет в начало http://mysite.ru

пишу так:

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

'imageUpload'=> Url::to(['/modules/admin/controllers/default/image-upload']) 
получаю ошибку:

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

POST http://mysite.ru/modules/admin/controllers/default/image-upload 404 (Not Found) 
dmg
Сообщения: 685
Зарегистрирован: 2012.10.15, 03:09

Re: Проблемы vova07/yii2-imperavi-widget

Сообщение dmg »

у вас какая то путаница со структурой приложения и настройками.
возьмите у vova07 готовое приложение и поэтапно затачивайте под свои нужды.
Аватара пользователя
dosomeweb
Сообщения: 24
Зарегистрирован: 2015.02.10, 04:33

Re: Проблемы vova07/yii2-imperavi-widget

Сообщение dosomeweb »

Я попробую конечно, но там настроек-то три строчки, вроде все сделал строго по описанию. Может у меня вообще в приложении какие-то проблемы с путями т.к. даже убрав Url::to() и просто написав

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

'imageUpload'=>'/modules/admin/controllers/default/image-upload' 
получаю

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

POST http://mysite.ru/modules/admin/controllers/default/image-upload 404 (Not Found) 
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: Проблемы vova07/yii2-imperavi-widget

Сообщение vova07 »

Итак первое что вам нужно сделать это правильно прописать настройки виджета:

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

echo $form->field($model, 'content')->widget(Widget::className(), [
    'selector' => '#post-content',
    'settings' => [
        'lang' => 'ru',
        'minHeight' => 200,
        'imageUpload' => Url::to(['/default/image-upload'])
    ]
]);
Второе это прописать правильно УРЛ к экшена загрузки. Так как вы не написали как у вас называется контроллер, в каком он нэймспэйсе, и где лежит я не могу вам правильно подсказать. Уже сами решите думаю, так как это не сложно.

После этого у вас все должно заработать. Если не работает, то вы что-то упустили, так как перепроверил все и все работает, в демке тоже.
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: Проблемы vova07/yii2-imperavi-widget

Сообщение vova07 »

Судя по вашим правилам то возможны только два правильных варианта в зависимости от места расположения контролера с экшеном загрузки:
- Если контролер в стандартной папке controllers и он называется DefaultController.php то ссылка должна быть такого вида:

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

Url::to(['/default/image-upload'])
- Если тот же контроллер является частью модуля то ссылка должна быть примерно такого вида:

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

Url::to(['/module/название_модуля/default/image-upload'])
Обратите внимание что именно 'module' а не 'modules' в множественном числе.
Аватара пользователя
dosomeweb
Сообщения: 24
Зарегистрирован: 2015.02.10, 04:33

Re: Проблемы vova07/yii2-imperavi-widget

Сообщение dosomeweb »

контроллер DefaultController
нэймспэйс контроллера app\modules\admin\controllers

сама форма лежит modules\admin\views\post

скопипастил сейчас вашу настройку, получаю путь от корня сайта опять:

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

POST http://mysite.ru/default/image-upload 404 (Not Found) 
Беда. Но спасибо за попытки помочь.
Аватара пользователя
dosomeweb
Сообщения: 24
Зарегистрирован: 2015.02.10, 04:33

Re: Проблемы vova07/yii2-imperavi-widget

Сообщение dosomeweb »

да, именно в модуле, но вариант

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

Url::to(['/module/admin/default/image-upload'])
не помогает т.к. опять что-то в начале подставляет http://maysite.ru

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

POST http://mysite.ru/module/admin/default/image-upload 404 (Not Found) 
Аватара пользователя
dosomeweb
Сообщения: 24
Зарегистрирован: 2015.02.10, 04:33

Re: Проблемы vova07/yii2-imperavi-widget

Сообщение dosomeweb »

я тут подумал, может это как-то связано с настройками сервера? У меня там прописана корневая директория mysite.ru/web
Ответить