CJuiSliderInput
| Пакет | zii.widgets.jui |
|---|---|
| Наследование | класс CJuiSliderInput » CJuiInputWidget » CJuiWidget » CWidget » CBaseController » CComponent |
| С тех пор | 1.1 |
| Исходный код | framework/zii/widgets/jui/CJuiSliderInput.php |
CJuiSlider инкапсулирует плагин JUI slider.
Для использования этого виджета, вы можете вставить следующий код в представление:
$this->widget('zii.widgets.jui.CJuiSliderInput',array(
'name'=>'rate',
'value'=>37,
// additional javascript options for the slider plugin
'options'=>array(
'min'=>10,
'max'=>50,
),
'htmlOptions'=>array(
'style'=>'height:20px;',
),
));
Виджет также может использоваться в режиме диапазона, который использует 2 ползунка для установки диапазона. В этом режиме, attribute и maxAttribute будут определять имена атрибутов для минимального и максимального значений диапазона соответственно. Например:
$this->widget('zii.widgets.jui.CJuiSliderInput',array(
'model'=>$model,
'attribute'=>'timeMin',
'maxAttribute'=>'timeMax',
// additional javascript options for the slider plugin
'options'=>array(
'range'=>true,
'min'=>0,
'max'=>24,
),
));
Если вам нужно использовать событие ползунка, пожалуйста, измените значение события на 'stop' или 'change'.
Настроив свойство options, вы можете указать параметры, которые нужно передать плагину JUI slider. Обратитесь к документации JUI Slider API для возможных параметров (имя-значение) и страницы JUI Slider для общего описания и демонстрации.
Общедоступные свойства
| Свойство | Тип | Описание | Определено |
|---|---|---|---|
| actionPrefix | строка | префикс к идентификаторам действий. | CWidget |
| attribute | строка | атрибут, связанный с этим виджетом. | CJuiInputWidget |
| controller | CController | Возвращает контроллер, к которому принадлежит этот виджет. | CWidget |
| cssFile | смешанный | имя файла темы CSS. | CJuiWidget |
| event | строка | имя события, к которому будет прикреплён ввод для ползунка. | CJuiSliderInput |
| htmlOptions | массив | атрибуты HTML, которые должны быть отображены в теге HTML, представляющем виджет JUI. | CJuiWidget |
| id | строка | Возвращает идентификатор виджета или генерирует новый, если требуется. | CWidget |
| maxAttribute | строка | имя атрибута для максимального значения, если ползунок используется в режиме диапазона. | CJuiSliderInput |
| maxIdSuffix | строка | суффикс, который будет добавлен к идентификатору элемента ввода максимального значения, когда ползунок используется в режиме диапазона. | CJuiSliderInput |
| maxName | строка | имя ввода, которое будет использоваться для атрибута максимального значения при использовании ползунка в режиме диапазона. | CJuiSliderInput |
| maxValue | целое число | определяет максимальное значение ползунка, если есть две ручки (режим диапазона). | CJuiSliderInput |
| model | CModel | модель данных, связанная с этим виджетом. | CJuiInputWidget |
| name | строка | имя ввода. | CJuiInputWidget |
| options | массив | исходные JavaScript-параметры, которые должны быть переданы плагину JUI. | CJuiWidget |
| owner | CBaseController | Возвращает владельца/создателя этого виджета. | CWidget |
| scriptFile | смешанный | основной JavaScript-файл JUI. | CJuiWidget |
| scriptUrl | строка | корневой URL, который содержит все JavaScript-файлы JUI. | CJuiWidget |
| skin | смешанный | имя скина, которое должно использоваться этим виджетом. | CWidget |
| tagName | строка | имя контейнерного элемента, который содержит ползунок. | CJuiSliderInput |
| theme | строка | имя темы JUI. | CJuiWidget |
| themeUrl | строка | корневой URL, который содержит все папки тем JUI. | CJuiWidget |
| value | целое число | определяет значение ползунка, если есть только одна ручка. | CJuiSliderInput |
| viewPath | строка | Возвращает каталог, содержащий файлы представления для этого виджета. | CWidget |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | CComponent |
| __construct() | Конструктор. | CWidget |
| __get() | Возвращает значение свойства, список обработчиков событий или поведение по его имени. | CComponent |
| __isset() | Проверяет, является ли значение свойства нулевым. | CComponent |
| __set() | Устанавливает значение свойства компонента. | CComponent |
| __unset() | Устанавливает свойство компонента в значение null. | CComponent |
| actions() | Возвращает список действий, используемых этим виджетом. | CWidget |
| asa() | Возвращает объект поведения с заданным именем. | CComponent |
| attachBehavior() | Прикрепляет поведение к данному компоненту. | CComponent |
| attachBehaviors() | Прикрепляет список поведений к компоненту. | CComponent |
| attachEventHandler() | Прикрепляет обработчик событий к событию. | CComponent |
| beginCache() | Начинает кеширование фрагмента. | CBaseController |
| beginClip() | Начинает запись клипа. | CBaseController |
| beginContent() | Начинает отображение содержимого, которое должно быть оформлено указанным представлением. | CBaseController |
| beginWidget() | Создает виджет и выполняет его. | CBaseController |
| canGetProperty() | Определяет, можно ли считать свойство. | CComponent |
| canSetProperty() | Определяет, можно ли установить свойство. | CComponent |
| createWidget() | Создает виджет и инициализирует его. | CBaseController |
| detachBehavior() | Отсоединяет поведение от компонента. | CComponent |
| detachBehaviors() | Отсоединяет все поведения от компонента. | CComponent |
| detachEventHandler() | Отсоединяет существующий обработчик событий. | CComponent |
| disableBehavior() | Отключает прикрепленное поведение. | CComponent |
| disableBehaviors() | Отключает все прикрепленные поведения к этому компоненту. | CComponent |
| enableBehavior() | Включает прикрепленное поведение. | CComponent |
| enableBehaviors() | Включает все прикрепленные поведения к этому компоненту. | CComponent |
| endCache() | Завершает кеширование фрагмента. | CBaseController |
| endClip() | Завершает запись клипа. | CBaseController |
| endContent() | Завершает отрисовку содержимого. | CBaseController |
| endWidget() | Завершает выполнение указанного виджета. | CBaseController |
| evaluateExpression() | Вычисляет PHP-выражение или обратный вызов в контексте этого компонента. | CComponent |
| getController() | Возвращает контроллер, к которому принадлежит этот виджет. | CWidget |
| getEventHandlers() | Возвращает список прикрепленных обработчиков событий для события. | CComponent |
| getId() | Возвращает ID виджета или генерирует новый, если требуется. | CWidget |
| getOwner() | Возвращает владельца/создателя этого виджета. | CWidget |
| getViewFile() | Ищет файл шаблона представления по имени представления. | CWidget |
| getViewPath() | Возвращает каталог, содержащий файлы представлений для этого виджета. | CWidget |
| hasEvent() | Определяет, определено ли событие. | CComponent |
| hasEventHandler() | Проверяет, имеются ли прикреплённые обработчики для указанного события. | CComponent |
| hasProperty() | Определяет, определён ли свойство. | CComponent |
| init() | Инициализирует виджет. | CJuiWidget |
| raiseEvent() | Вызывает событие. | CComponent |
| render() | Отображает представление. | CWidget |
| renderFile() | Отображает файл представления. | CBaseController |
| renderInternal() | Отображает файл представления. | CBaseController |
| run() | Выполнить этот виджет. | CJuiSliderInput |
| setId() | Устанавливает ID виджета. | CWidget |
| widget() | Создаёт и выполняет виджет. | CBaseController |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| hasModel() | Определяет, связан ли этот виджет с моделью данных. | CJuiInputWidget |
| registerCoreScripts() | Регистрирует основные скриптовые файлы. | CJuiWidget |
| registerScriptFile() | Регистрирует JavaScript-файл в scriptUrl. | CJuiWidget |
| resolveNameID() | Разрешает имя и ID ввода. Свойство source имени и/или свойства source атрибута | CJuiInputWidget |
| resolvePackagePath() | Определяет путь установки пакета JUI. | CJuiWidget |
Подробное описание свойств
event свойство
public string $event;
имя события, к которому будет привязан ввод к ползунку. Может быть 'slide', 'stop' или 'change'. Если нужно использовать событие 'slide', измените свойство $event на 'change'.
maxAttribute свойство
public string $maxAttribute;
имя атрибута для максимального значения, если ползунок используется в режиме диапазона.
maxIdSuffix свойство (доступно начиная с версии v1.1.14)
public string $maxIdSuffix;
приставка, которая добавляется к идентификатору элемента ввода максимального значения, когда ползунок используется в режиме диапазона.
maxName свойство (доступно начиная с версии v1.1.14)
public string $maxName;
имя атрибута ввода для максимального значения, когда используется ползунок в режиме диапазона. Это необходимо задать в случае, если не используется model.
maxValue свойство (доступно начиная с версии v1.1.14)
public integer $maxValue;
определяет максимальное значение ползунка, если есть две ручки (режим диапазона). Игнорируется, если есть только одна ручка.
tagName свойство
public string $tagName;
имя контейнерного элемента, содержащего ползунок. По умолчанию равно 'div'.
value свойство
public integer $value;
определяет значение ползунка, если есть только одна ручка. Если ручек более одной, определяет значение первой ручки.
Подробное описание методов
run() метод
public void run() |
public function run()
{
list($name,$id)=$this->resolveNameID();
if(isset($this->htmlOptions['id']))
$id=$this->htmlOptions['id'];
else
$this->htmlOptions['id']=$id;
$isRange=isset($this->options['range']) && $this->options['range'] &&
$this->options['range']!=='max' && $this->options['range']!=='min';
if($this->hasModel())
{
$attribute=$this->attribute;
if($isRange)
{
$options=$this->htmlOptions;
echo CHtml::activeHiddenField($this->model,$this->attribute,$options);
$options['id'].=$this->maxIdSuffix;
echo CHtml::activeHiddenField($this->model,$this->maxAttribute,$options);
$maxAttribute=$this->maxAttribute;
$this->options['values']=array($this->model->$attribute,$this->model->$maxAttribute);
}
else
{
echo CHtml::activeHiddenField($this->model,$this->attribute,$this->htmlOptions);
$this->options['value']=$this->model->$attribute;
}
}
else
{
if($isRange)
{
list($maxName,$maxId)=$this->resolveNameID('maxName','maxAttribute');
$options=$this->htmlOptions;
echo CHtml::hiddenField($name,$this->value,$options);
$options['id'].=$this->maxIdSuffix;
echo CHtml::hiddenField($maxName,$this->maxValue,$options);
$this->options['values']=array($this->value,$this->maxValue);
}
else
{
echo CHtml::hiddenField($name,$this->value,$this->htmlOptions);
if($this->value!==null)
$this->options['value']=$this->value;
}
}
$idHidden=$this->htmlOptions['id'];
$this->htmlOptions['id']=$idHidden.'_slider';
echo CHtml::tag($this->tagName,$this->htmlOptions,'');
$this->options[$this->event]=$isRange
? new CJavaScriptExpression("function(e,ui){ v=ui.values; jQuery('#{$idHidden}').val(v[0]); jQuery('#{$idHidden}{$this->maxIdSuffix}').val(v[1]); }")
: new CJavaScriptExpression("function(event, ui) { jQuery('#{$idHidden}').val(ui.value); }");
$options=CJavaScript::encode($this->options);
Yii::app()->getClientScript()->registerScript(__CLASS__.'#'.$id,"jQuery('#{$id}_slider').slider($options);");
}
Выполнить этот виджет. Этот метод регистрирует необходимый JavaScript и рендерит необходимый HTML-код.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CJuiSliderInput