1 <?php
2
3 class UWjuidate {
4
5 6 7
8 public $params = array(
9 'ui-theme'=>'base',
10 'language'=>'en',
11 );
12
13 14 15 16
17 public function init() {
18 return array(
19 'name'=>__CLASS__,
20 'label'=>UserModule::t('jQueryUI datepicker'),
21 'fieldType'=>array('DATE','VARCHAR'),
22 'params'=>$this->params,
23 'paramsLabels' => array(
24 'dateFormat'=>UserModule::t('Date format'),
25 ),
26 );
27 }
28
29 30 31 32 33
34 public function viewAttribute($model,$field) {
35 return $model->getAttribute($field->varname);
36 }
37
38 39 40 41 42 43
44 public function editAttribute($model,$field,$htmlOptions=array()) {
45 if (!isset($htmlOptions['size'])) $htmlOptions['size'] = 60;
46 if (!isset($htmlOptions['maxlength'])) $htmlOptions['maxlength'] = (($field->field_size)?$field->field_size:10);
47 if (!isset($htmlOptions['id'])) $htmlOptions['id'] = get_class($model).'_'.$field->varname;
48
49 $id = $htmlOptions['id'];
50 $options['dateFormat'] = 'yy-mm-dd';
51 $options=CJavaScript::encode($options);
52
53 $basePath=Yii::getPathOfAlias('user.views.asset');
54 $baseUrl=Yii::app()->getAssetManager()->publish($basePath);
55 $cs = Yii::app()->getClientScript();
56 $cs->registerCssFile($baseUrl.'/css/'.$this->params['ui-theme'].'/jquery-ui.css');
57 $cs->registerScriptFile($baseUrl.'/js/jquery-ui.min.js');
58
59 $language = $this->params['language'];
60 if ($language!='en') {
61 $js = "jQuery('#{$id}').datepicker(jQuery.extend({showMonthAfterYear:false}, jQuery.datepicker.regional['{$language}'], {$options}));";
62 $cs->registerScriptFile($baseUrl.'/js/jquery-ui-i18n.min.js');
63 } else $js = "jQuery('#{$id}').datepicker({$options});";
64
65 $cs->registerScript('ProfileFieldController'.'#'.$id, $js);
66
67 return CHtml::activeTextField($model,$field->varname,$htmlOptions);
68 }
69
70 }