summaryrefslogtreecommitdiff
path: root/protected/extensions/CJuiDateTimePicker/CJuiDateTimePicker.php
diff options
context:
space:
mode:
Diffstat (limited to 'protected/extensions/CJuiDateTimePicker/CJuiDateTimePicker.php')
-rw-r--r--protected/extensions/CJuiDateTimePicker/CJuiDateTimePicker.php66
1 files changed, 66 insertions, 0 deletions
diff --git a/protected/extensions/CJuiDateTimePicker/CJuiDateTimePicker.php b/protected/extensions/CJuiDateTimePicker/CJuiDateTimePicker.php
new file mode 100644
index 0000000..8d5bdf4
--- /dev/null
+++ b/protected/extensions/CJuiDateTimePicker/CJuiDateTimePicker.php
@@ -0,0 +1,66 @@
+<?php
+/**
+ * CJuiDateTimePicker class file.
+ *
+ * @author Anatoly Ivanchin <van4in@gmail.com>
+ * @author Tristan Zur
+ */
+
+Yii::import('zii.widgets.jui.CJuiDatePicker');
+class CJuiDateTimePicker extends CJuiDatePicker
+{
+ const ASSETS_NAME='/jquery-ui-timepicker-addon';
+
+ public $mode='datetime';
+ public $phpDateFormat = 'dd.MM.yyyy HH:mm';
+
+ public function init()
+ {
+ if(!in_array($this->mode, array('date','time','datetime')))
+ throw new CException('unknow mode "'.$this->mode.'"');
+ if(!isset($this->language))
+ $this->language=Yii::app()->getLanguage();
+ return parent::init();
+ }
+
+ public function run()
+ {
+ list($name,$id)=$this->resolveNameID();
+
+ if(isset($this->htmlOptions['id']))
+ $id=$this->htmlOptions['id'];
+ else
+ $this->htmlOptions['id']=$id;
+ if(isset($this->htmlOptions['name']))
+ $name=$this->htmlOptions['name'];
+ else
+ $this->htmlOptions['name']=$name;
+
+ if($this->hasModel()) {
+ // Add support for model attribute and date time formatting
+ $this->value = CHtml::resolveValue($this->model, $this->attribute);
+ $this->value = Format::displayDateTime($this->value);
+ }
+ echo CHtml::textField($name,$this->value,$this->htmlOptions);
+
+
+ $options=CJavaScript::encode($this->options);
+
+ $js = "jQuery('#{$id}').{$this->mode}picker($options);";
+
+ if (isset($this->language)){
+ $this->registerScriptFile($this->i18nScriptFile);
+ $js = "jQuery('#{$id}').{$this->mode}picker(jQuery.extend({showMonthAfterYear:false}, jQuery.datepicker.regional['{$this->language}'], {$options}));";
+ }
+
+ $cs = Yii::app()->getClientScript();
+
+ $assets = Yii::app()->getAssetManager()->publish(dirname(__FILE__).DIRECTORY_SEPARATOR.'assets');
+ $cs->registerCssFile($assets.self::ASSETS_NAME.'.css');
+ $cs->registerScriptFile($assets.self::ASSETS_NAME.'.js',CClientScript::POS_END);
+
+ $cs->registerScript(__CLASS__, $this->defaultOptions?'jQuery.{$this->mode}picker.setDefaults('.CJavaScript::encode($this->defaultOptions).');':'');
+ $cs->registerScript(__CLASS__.'#'.$id, $js);
+
+ }
+} \ No newline at end of file