/
v.bolshakov
/
AIEcosystem-Testing
Обзор
Документация
Войти
/
v.bolshakov
/
AIEcosystem-Testing
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev
common/widgets/TinyMce.php
70 строк
2 KB
Developer
Initial commit
03 авг 2026, 17:43
03 авг 2026, 17:43
7433917
Код
Авторство
О чём код?
<?php namespace common\widgets; use common\assets\TinyMceAsset; use Yii; use yii\helpers\ArrayHelper; use yii\helpers\Html; use yii\widgets\InputWidget; /** * Widget TinyMCE * * @author Dmitry E. Semenov <sde.tomsk@gmail.com> * @copyright Self (c) 2021 */ class TinyMce extends InputWidget { /** * @var string the language to use. Defaults to null (en). */ public $language = 'en'; /** * @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->registerClientScript(); } /** * Registers tinyMCE js plugin */ protected function registerClientScript() { $view = $this->getView(); // подключаем язык $asset = TinyMceAsset::register($view); if (Yii::$app->language !== 'en') { $langFile = 'langs/' . Yii::$app->language . '.js'; $language_url = $asset->baseUrl . "/{$langFile}"; $asset->js[] = $langFile; } $js = []; // подключаем дополнительные стили foreach (ArrayHelper::getValue(Yii::$app->params, 'TinyMce.assets', []) as $className) { $asset = $className::register($view); $url = $asset->baseUrl . '/tiny-mce.css?r=' . time(); $js[] = "TinyMce.registerCss('{$url}');"; } // регистрируем плагины foreach (ArrayHelper::getValue(Yii::$app->params, 'TinyMce.plugins', []) as $className) { $asset = $className::register($view); $url = $asset->baseUrl . '/plugin.js?r=' . time(); $js[] = "TinyMce.registerPlugin({'{$asset->pluginName}': '{$url}'});"; } $view->registerJs(implode("\n", $js)); } }