You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

59 lines
1.5 KiB

<?php
namespace common\widgets\ueditor;
use Yii;
use yii\web\View;
use yii\helpers\Html;
use yii\helpers\Url;
use yii\helpers\Json;
use yii\helpers\ArrayHelper;
use yii\widgets\InputWidget;
use common\widgets\ueditor\assets\UeditorAsset;
class Ueditor extends InputWidget
{
/**
* 编辑器传参配置(配置查看百度编辑器(ueditor)官方文档)
*/
public $options = [];
/**
* 编辑器默认基础配置
*/
public $_init;
public function init()
{
$this->id = $this->hasModel() ? Html::getInputId($this->model, $this->attribute) : $this->id;
$this->_init = [
'serverUrl' => Url::to(['ueditor']),
'lang' => (strtolower(\Yii::$app->language) == 'en-us') ? 'en' : 'zh-cn',
];
$this->options = ArrayHelper::merge($this->_init, $this->options);
//parent::init();
}
public function run()
{
$this->registerClientScript();
if ($this->hasModel()) {
return Html::activeTextarea($this->model, $this->attribute, ['id' => $this->id]);
} else {
return Html::textarea($this->id, $this->value, ['id' => $this->id]);
}
}
/**
* 注册Js
*/
protected function registerClientScript()
{
UEditorAsset::register($this->view);
$options = Json::encode($this->options);
$script = "UE.getEditor('" . $this->id . "', " . $options . ")";
$this->view->registerJs($script, View::POS_READY);
}
}