Развернул yii-app-basic. Само расширение создал через gii в папке runtime/tmp-extensions.
Чтоб автозагрузка классов работала добавил запись в composer.json проекта
Код: Выделить всё
"autoload": {
"psr-4": {
"delgus\\knedlick\\": "runtime/tmp-extensions/yii2-knedlick-wysiwyg"
}
},
Возникли проблемы при подключении скрипта с wysiwyg(написан на чистом js). Текст ошибки в консоли
И это при том что файл knedlick.js в папке /assets/afe01840/ сгенерировался и там лежит преспокойно.Загрузка <script> по адресу «http://base.test/assets/afe01840/knedlick.js» не удалась. base.test:781
jQuery.Deferred exception: knedlick is not a function @http://base.test/:786:1
mightThrow@http://base.test/assets/fafcfa5/jquery.js:3583:21
resolve/</process<@http://base.test/assets/fafcfa5/jquery.js:3651:12
undefined
Код моего виджета
Код: Выделить всё
<?php
namespace delgus\knedlick;
use yii\helpers\Html;
use yii\widgets\InputWidget;
/**
* This is just an example.
*/
class Knedlick extends InputWidget
{
/**
* @inheritdoc
*/
public function init()
{
parent::init();
// $this->initOptions();
}
/**
* @inheritdoc
*/
public function run()
{
if ($this->hasModel()) {
echo Html::activeTextarea($this->model, $this->attribute, $this->options);
} else {
echo Html::textarea($this->name, $this->value, $this->options);
}
$this->registerPlugin();
}
protected function registerPlugin()
{
$view = $this->getView();
KnedlickAsset::register($view);
$id = $this->options['id'];
$view->registerJs('knedlick('.$id.')');
}
}
Код: Выделить всё
<?php
namespace delgus\knedlick;
use yii\web\AssetBundle;
class KnedlickAsset extends AssetBundle
{
public $sourcePath = '@runtime/tmp-extensions/yii2-knedlick-wysiwyg/assets/';
public $js = [
'knedlick.js',
];
}
Может делал кто?) Заранее благодарче)