PATH:
home
/
letacommog
/
letaweb
/
protected
/
extensions
/
yiibooster
/
widgets
<?php /** *## TbSelect2 class file. * * @author Antonio Ramirez <antonio@clevertech.biz> * @copyright Copyright © Clevertech 2012- * @license [New BSD License](http://www.opensource.org/licenses/bsd-license.php) */ /** *## Select2 wrapper widget * * @see http://ivaynberg.github.io/select2/ * * @package booster.widgets.forms.inputs */ class TbSelect2 extends CInputWidget { /** * @var TbActiveForm when created via TbActiveForm. * This attribute is set to the form that renders the widget * @see TbActionForm->inputRow */ public $form; /** * @var array @param data for generating the list options (value=>display) */ public $data = array(); /** * @var string[] the JavaScript event handlers. */ public $events = array(); /** * @var bool whether to display a dropdown select box or use it for tagging */ public $asDropDownList = true; /** * @var string the default value. */ public $val; /** * @var */ public $options; /** * @var bool * @since 2.1.0 */ public $readonly = false; /** * @var bool * @since 2.1.0 */ public $disabled = false; /** *### .init() * * Initializes the widget. */ public function init() { $this->normalizeData(); $this->normalizeOptions(); $this->addEmptyItemIfPlaceholderDefined(); $this->setDefaultWidthIfEmpty(); // disabled & readonly if (!empty($this->htmlOptions['readonly'])) { $this->readonly = true; } if (!empty($this->htmlOptions['disabled'])) { $this->disabled = true; } } /** *### .run() * * Runs the widget. */ public function run() { list($name, $id) = $this->resolveNameID(); if ($this->hasModel()) { if ($this->form) { echo $this->asDropDownList ? $this->form->dropDownList($this->model, $this->attribute, $this->data, $this->htmlOptions) : $this->form->hiddenField($this->model, $this->attribute, $this->htmlOptions); } else { echo $this->asDropDownList ? CHtml::activeDropDownList($this->model, $this->attribute, $this->data, $this->htmlOptions) : CHtml::activeHiddenField($this->model, $this->attribute, $this->htmlOptions); } } else { echo $this->asDropDownList ? CHtml::dropDownList($name, $this->value, $this->data, $this->htmlOptions) : CHtml::hiddenField($name, $this->value, $this->htmlOptions); } $this->registerClientScript($id); } /** *### .registerClientScript() * * Registers required client script for bootstrap select2. It is not used through bootstrap->registerPlugin * in order to attach events if any */ public function registerClientScript($id) { Booster::getBooster()->registerPackage('select2'); $options = !empty($this->options) ? CJavaScript::encode($this->options) : ''; if(! empty($this->val)) { if(is_array($this->val)) { $data = CJSON::encode($this->val); } else { $data = $this->val; } $defValue = ".select2('val', $data)"; } else $defValue = ''; if ($this->readonly) { $defValue .= ".select2('readonly', true)"; } elseif ($this->disabled) { $defValue .= ".select2('enable', false)"; } ob_start(); echo "jQuery('#{$id}').select2({$options})"; foreach ($this->events as $event => $handler) { echo ".on('{$event}', " . CJavaScript::encode($handler) . ")"; } echo $defValue; Yii::app()->getClientScript()->registerScript(__CLASS__ . '#' . $this->getId(), ob_get_clean() . ';'); } private function setDefaultWidthIfEmpty() { if (empty($this->options['width'])) { $this->options['width'] = 'resolve'; } } private function normalizeData() { if (!$this->data) $this->data = array(); } private function addEmptyItemIfPlaceholderDefined() { if (!empty($this->htmlOptions['placeholder'])) $this->options['placeholder'] = $this->htmlOptions['placeholder']; if (!empty($this->options['placeholder']) && empty($this->htmlOptions['multiple'])) $this->prependDataWithEmptyItem(); } private function normalizeOptions() { if (empty($this->options)) { $this->options = array(); } } private function prependDataWithEmptyItem() { $this->data = array('' => '') + $this->data; } }
[+]
..
[-] 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]