Пример #1
0
 public function init()
 {
     parent::init();
     $view = $this->getView();
     $id = Json::encode($this->options['id']);
     if ($this->enabledKCFinder) {
         $kcFinderBundle = KCFinderAsset::register($view);
         $kcFinderBaseUrl = $kcFinderBundle->baseUrl;
         // Add KCFinder-specific config for CKEditor
         $this->editorOptions = ArrayHelper::merge($this->editorOptions, ['filebrowserBrowseUrl' => $kcFinderBaseUrl . '/browse.php?opener=ckeditor&type=files', 'filebrowserImageBrowseUrl' => $kcFinderBaseUrl . '/browse.php?opener=ckeditor&type=images', 'filebrowserFlashBrowseUrl' => $kcFinderBaseUrl . '/browse.php?opener=ckeditor&type=flash', 'filebrowserUploadUrl' => $kcFinderBaseUrl . '/upload.php?opener=ckeditor&type=files', 'filebrowserImageUploadUrl' => $kcFinderBaseUrl . '/upload.php?opener=ckeditor&type=images', 'filebrowserFlashUploadUrl' => $kcFinderBaseUrl . '/upload.php?opener=ckeditor&type=flash', 'allowedContent' => true]);
     }
     $jsData = "CKEDITOR.replace({$id}";
     $jsData .= empty($this->editorOptions) ? '' : ', ' . Json::encode($this->editorOptions);
     $jsData .= ").on('blur', function(){this.updateElement(); jQuery(this.element.\$).trigger('blur');});";
     $view->registerJs($jsData);
     CKEditorAsset::register($view);
 }
 public function run()
 {
     $assets = KCFinderAsset::register($this->getView());
     if (!isset($this->kcOptions['url'])) {
         $this->kcOptions['url'] = $assets->baseUrl;
     }
     if ($this->hasModel()) {
         KCFinderSelectAsset::register($this->getView());
         Html::addCssClass($this->options, 'form-control');
         echo Html::beginTag('div', ['class' => 'input-group']);
         echo Html::activeTextInput($this->model, $this->attribute, $this->options);
     } else {
         echo Html::textInput($this->name, $this->value, $this->options);
     }
     echo Html::beginTag('span', ['class' => 'input-group-btn']);
     $this->kcOptions['callback'] = $this->kcCallback;
     echo Html::beginTag('button', ['class' => "btn btn-{$this->buttonType}", 'type' => 'button', 'onclick' => 'selectSingle(' . Json::htmlEncode($this->kcOptions) . ')']);
     echo $this->buttonLabel;
     echo Html::endTag('button');
     echo Html::endTag('span');
     echo Html::endTag('div');
 }