Alexander Makarov
11 years ago
3 changed files with 169 additions and 10 deletions
@ -0,0 +1,45 @@
|
||||
<?php |
||||
/** |
||||
* @link http://www.yiiframework.com/ |
||||
* @copyright Copyright (c) 2008 Yii Software LLC |
||||
* @license http://www.yiiframework.com/license/ |
||||
*/ |
||||
|
||||
namespace yii\jui; |
||||
|
||||
use yii\helpers\Html; |
||||
|
||||
/** |
||||
* Slider renders a slider jQuery UI widget. |
||||
* |
||||
* echo Slider::widget([ |
||||
* 'clientOptions' => [ |
||||
* 'min' => 1, |
||||
* 'max' => 10, |
||||
* ], |
||||
* ]); |
||||
* ``` |
||||
* |
||||
* @see http://api.jqueryui.com/slider/ |
||||
* @author Alexander Makarov <sam@rmcreative.ru> |
||||
* @since 2.0 |
||||
*/ |
||||
class Slider extends Widget |
||||
{ |
||||
protected $clientEventsMap = [ |
||||
'change' => 'slidechange', |
||||
'create' => 'slidecreate', |
||||
'slide' => 'slide', |
||||
'start' => 'slidestart', |
||||
'stop' => 'slidestop', |
||||
]; |
||||
|
||||
/** |
||||
* Executes the widget. |
||||
*/ |
||||
public function run() |
||||
{ |
||||
echo Html::tag('div', '', $this->options); |
||||
$this->registerWidget('slider', SliderAsset::className()); |
||||
} |
||||
} |
@ -0,0 +1,79 @@
|
||||
<?php |
||||
/** |
||||
* @link http://www.yiiframework.com/ |
||||
* @copyright Copyright (c) 2008 Yii Software LLC |
||||
* @license http://www.yiiframework.com/license/ |
||||
*/ |
||||
|
||||
namespace yii\jui; |
||||
|
||||
use yii\helpers\Html; |
||||
|
||||
/** |
||||
* SliderInput renders a slider jQuery UI widget that writes its value into hidden input. |
||||
* |
||||
* For example, |
||||
* |
||||
* ``` |
||||
* echo Slider::widget([ |
||||
* 'model' => $model, |
||||
* 'attrbute' => 'amount', |
||||
* 'clientOptions' => [ |
||||
* 'min' => 1, |
||||
* 'max' => 10, |
||||
* ], |
||||
* ]); |
||||
* ``` |
||||
* |
||||
* The following example will use the name property instead: |
||||
* |
||||
* ``` |
||||
* echo Slider::widget([ |
||||
* 'name' => 'amount', |
||||
* 'clientOptions' => [ |
||||
* 'min' => 1, |
||||
* 'max' => 10, |
||||
* ], |
||||
* ]); |
||||
* ``` |
||||
* |
||||
* @see http://api.jqueryui.com/slider/ |
||||
* @author Alexander Makarov <sam@rmcreative.ru> |
||||
* @since 2.0 |
||||
*/ |
||||
class SliderInput extends InputWidget |
||||
{ |
||||
protected $clientEventsMap = [ |
||||
'change' => 'slidechange', |
||||
'create' => 'slidecreate', |
||||
'slide' => 'slide', |
||||
'start' => 'slidestart', |
||||
'stop' => 'slidestop', |
||||
]; |
||||
|
||||
/** |
||||
* Executes the widget. |
||||
*/ |
||||
public function run() |
||||
{ |
||||
echo Html::tag('div', '', $this->options); |
||||
|
||||
$inputId = $this->id.'-input'; |
||||
$inputOptions = $this->options; |
||||
$inputOptions['id'] = $inputId; |
||||
if ($this->hasModel()) { |
||||
echo Html::activeHiddenInput($this->model, $this->attribute, $inputOptions); |
||||
} else { |
||||
echo Html::hiddenInput($this->name, $this->value, $inputOptions); |
||||
} |
||||
|
||||
if (!isset($this->clientEvents['slide'])) { |
||||
$this->clientEvents['slide'] = 'function(event, ui) { |
||||
$("#'.$inputId.'").val(ui.value); |
||||
}'; |
||||
} |
||||
|
||||
$this->registerWidget('slider', SliderAsset::className()); |
||||
$this->getView()->registerJs('$("#'.$inputId.'").val($("#'.$this->id.'").slider("value"));'); |
||||
} |
||||
} |
Loading…
Reference in new issue