From bc743a32b78d48f824dcbf4eff0601b7b23fff63 Mon Sep 17 00:00:00 2001 From: Qiang Xue Date: Sat, 12 Oct 2013 20:52:41 -0400 Subject: [PATCH] Fixes #968: clientOptions should not be ignored when enabling internationalization. --- extensions/jui/yii/jui/DatePicker.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/extensions/jui/yii/jui/DatePicker.php b/extensions/jui/yii/jui/DatePicker.php index c275190..ea05579 100644 --- a/extensions/jui/yii/jui/DatePicker.php +++ b/extensions/jui/yii/jui/DatePicker.php @@ -9,6 +9,7 @@ namespace yii\jui; use Yii; use yii\helpers\Html; +use yii\helpers\Json; /** * DatePicker renders an datepicker jQuery UI widget. @@ -61,11 +62,19 @@ class DatePicker extends InputWidget public function run() { echo $this->renderWidget() . "\n"; - $this->registerWidget('datepicker', DatePickerAsset::className()); if ($this->language !== false) { $view = $this->getView(); DatePickerRegionalAsset::register($view); - $view->registerJs("$('#{$this->options['id']}').datepicker('option', $.datepicker.regional['{$this->language}']);"); + // do not pass in any options when creating the widget + // set the options later so that the options can be combined with regional options + $options = $this->clientOptions; + $this->clientOptions = array(); + $this->registerWidget('datepicker', DatePickerAsset::className()); + $this->clientOptions = $options; + $options = Json::encode($options); + $view->registerJs("$('#{$this->options['id']}').datepicker('option', $.extend({}, $.datepicker.regional['{$this->language}'], $options));"); + } else { + $this->registerWidget('datepicker', DatePickerAsset::className()); } }