123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- <?php
- namespace common\widgets\editor\ueditor;
- use Yii;
- use yii\helpers\ArrayHelper;
- use yii\helpers\Html;
- use yii\helpers\Json;
- use yii\helpers\Url;
- use yii\web\View;
- use yii\widgets\InputWidget;
- class UEditor extends InputWidget
- {
- //配置选项,参阅Ueditor官网文档(定制菜单等)
- public $clientOptions = [];
- //默认配置
- protected $_options;
- public $saveUrl = [];
- /**
- * @throws \yii\base\InvalidConfigException
- */
- public function init()
- {
- if (isset($this->options['id'])) {
- $this->id = $this->options['id'];
- } else {
- $this->id = $this->hasModel() ? Html::getInputId($this->model,
- $this->attribute) : $this->id;
- }
- $this->_options = [
- 'serverUrl' => Url::to($this->saveUrl),
- 'initialFrameWidth' => '100%',
- 'initialFrameHeight' => '400',
- 'lang' => (strtolower(Yii::$app->language) == 'en-us') ? 'en' : 'zh-cn',
- ];
- $this->clientOptions = ArrayHelper::merge($this->_options, $this->clientOptions);
- 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]);
- }
- }
- /**
- * 注册客户端脚本
- */
- protected function registerClientScript()
- {
- UEditorAsset::register($this->view);
- $clientOptions = Json::encode($this->clientOptions);
- $script = "UE.getEditor('" . $this->id . "', " . $clientOptions . ");";
- $this->view->registerJs($script, View::POS_READY);
- }
- }
|