PATH:
home
/
letacommog
/
letaweb
/
protected
/
extensions
/
yiibooster
/
widgets
<?php /** *## TbHtml5Editor class file * * @author: antonio ramirez <antonio@clevertech.biz> * @copyright Copyright © Clevertech 2012- * @license http://www.opensource.org/licenses/bsd-license.php New BSD License */ /** *## TbHtml5Editor widget * * Implements the bootstrap-wysihtml5 editor * @see https://github.com/jhollingworth/bootstrap-wysihtml5 * * @package booster.widgets.forms.inputs.wysiwyg */ class TbHtml5Editor extends CInputWidget { /** * Editor language * Supports: de-DE, es-ES, fr-FR, pt-BR, sv-SE, it-IT */ public $lang = 'en'; /** * Html options that will be assigned to the text area */ public $htmlOptions = array(); /** * Editor options that will be passed to the editor */ public $editorOptions = array(); /** * Editor width */ public $width = '100%'; /** * Editor height */ public $height = '400px'; /** * Display editor */ public function run() { list($name, $id) = $this->resolveNameID(); $this->registerClientScript($id); $this->htmlOptions['id'] = $id; if (!array_key_exists('style', $this->htmlOptions)) { $this->htmlOptions['style'] = "width:{$this->width};height:{$this->height};"; } // Do we have a model? if ($this->hasModel()) { echo CHtml::activeTextArea($this->model, $this->attribute, $this->htmlOptions); } else { echo CHtml::textArea($name, $this->value, $this->htmlOptions); } } /** * Register required script files * * @param string $id */ public function registerClientScript($id) { $booster = Booster::getBooster(); $booster->registerPackage('wysihtml5'); //$booster->registerAssetCss('bootstrap-wysihtml5.css'); //$booster->registerAssetJs('wysihtml5-0.3.0.js'); //$booster->registerAssetJs('bootstrap-wysihtml5.js'); if (isset($this->editorOptions['locale'])) { $booster->registerAssetJs( 'locales/bootstrap-wysihtml5.' . $this->editorOptions['locale'] . '.js' ); } elseif (in_array($this->lang, array('de-DE', 'es-ES', 'fr', 'fr-NL', 'pt-BR', 'sv-SE', 'it-IT'))) { $booster->registerAssetJs('locales/bootstrap-wysihtml5.' . $this->lang . '.js'); $this->editorOptions['locale'] = $this->lang; } $this->normalizeStylesheetsProperty(); $this->insertDefaultStylesheetIfColorsEnabled(); $options = CJSON::encode($this->editorOptions); $script = array(); /** * The default stylesheet option is incompatible with yii paths so it is reset here. * The insertDefaultStylesheetIfColorsEnabled includes the correct stylesheet if needed. * * Any other changes to defaults should be made here. */ $script[] = "$.fn.wysihtml5.defaultOptions.stylesheets = [];"; /** * Check if we need a deep copy for the configuration. */ if (isset($this->editorOptions['deepExtend']) && $this->editorOptions['deepExtend'] === true) { $script[] = "$('#{$id}').wysihtml5('deepExtend', {$options});"; } else { $script[] = "$('#{$id}').wysihtml5({$options});"; } Yii::app()->getClientScript()->registerScript(__CLASS__ . '#' . $id, implode("\n", $script)); } private function insertDefaultStylesheetIfColorsEnabled() { if (empty($this->editorOptions['color'])) { return; } $defaultStyleSheetUrl = Booster::getBooster()->getAssetsUrl() . '/css/wysiwyg-color.css'; array_unshift($this->editorOptions['stylesheets'], $defaultStyleSheetUrl); // we want default css to be first } private function normalizeStylesheetsProperty() { if (empty($this->editorOptions['stylesheets'])) { $this->editorOptions['stylesheets'] = array(); } else if (is_array($this->editorOptions['stylesheets'])) { $this->editorOptions['stylesheets'] = array_filter( $this->editorOptions['stylesheets'], 'is_string' ); } else if (is_string($this->editorOptions['stylesheets'])) { $this->editorOptions['stylesheets'] = array($this->editorOptions['stylesheets']); } else // presumably if this option is neither an array or string then it's some erroneous value; clean it { $this->editorOptions['stylesheets'] = array(); } } }
[+]
..
[-] TbTabView.php
[edit]
[-] TbNavbar.php
[edit]
[-] TbHighCharts.php
[edit]
[-] TbPager.php
[edit]
[-] TbLabel.php
[edit]
[-] TbActiveForm.php
[edit]
[-] TbPanel.php
[edit]
[-] TbJsonButtonColumn.php
[edit]
[-] TbModalManager.php
[edit]
[-] TbToggleColumn.php
[edit]
[-] TbUiLayout.php
[edit]
[-] TbBaseMenu.php
[edit]
[-] widgets.md
[edit]
[-] TbEditableDetailView.php
[edit]
[-] TbButtonGroup.php
[edit]
[-] TbEditable.php
[edit]
[-] TbFileUpload.php
[edit]
[-] TbEditableField.php
[edit]
[-] TbTags.php
[edit]
[-] TbFormButtonElement.php
[edit]
[-] TbFormInputElement.php
[edit]
[-] TbJsonPager.php
[edit]
[-] TbCollapse.php
[edit]
[-] TbBulkActions.php
[edit]
[-] TbRelationalColumn.php
[edit]
[-] TbTabs.php
[edit]
[-] TbModal.php
[edit]
[-] TbExtendedGridView.php
[edit]
[-] TbJumbotron.php
[edit]
[-] TbImageGallery.php
[edit]
[-] TbWidget.php
[edit]
[-] TbMenu.php
[edit]
[-] TbProgress.php
[edit]
[-] TbButtonColumn.php
[edit]
[-] TbJsonToggleColumn.php
[edit]
[-] TbJsonPickerColumn.php
[edit]
[-] TbColorPicker.php
[edit]
[-] TbButtonGroupColumn.php
[edit]
[-] TbSwitch.php
[edit]
[-] TbHeroUnit.php
[edit]
[-] TbDatePicker.php
[edit]
[-] TbJsonCheckBoxColumn.php
[edit]
[-] TbButton.php
[edit]
[-] TbTypeahead.php
[edit]
[-] TbForm.php
[edit]
[-] TbPassfield.php
[edit]
[-] TbEditableColumn.php
[edit]
[-] TbMarkdownEditorJs.php
[edit]
[-] TbPopoverColumn.php
[edit]
[-] TbMarkdownEditor.php
[edit]
[-] TbAlert.php
[edit]
[-] TbGroupGridView.php
[edit]
[-] TbBaseInputWidget.php
[edit]
[-] TbWizard.php
[edit]
[-] TbGroupButtonColumn.php
[edit]
[-] TbExtendedFilter.php
[edit]
[-] TbGoogleVisualizationChart.php
[edit]
[-] TbHtml5Editor.php
[edit]
[-] TbGridView.php
[edit]
[-] TbListView.php
[edit]
[-] TbTimePicker.php
[edit]
[-] TbJsonGridView.php
[edit]
[-] TbCKEditor.php
[edit]
[-] TbTotalSumColumn.php
[edit]
[-] TbDateRangePicker.php
[edit]
[-] TbBadge.php
[edit]
[-] TbDropdown.php
[edit]
[-] TbBreadcrumbs.php
[edit]
[-] TbJsonGridColumn.php
[edit]
[-] TbDateTimePicker.php
[edit]
[-] TbDataColumn.php
[edit]
[-] TbCarousel.php
[edit]
[-] TbJsonDataColumn.php
[edit]
[-] TbRedactorJs.php
[edit]
[-] TbThumbnails.php
[edit]
[-] TbScrollSpy.php
[edit]
[-] TbDetailView.php
[edit]
[+]
input
[-] TbSelect2.php
[edit]
[-] TbImageColumn.php
[edit]