6f487bfa998a2d5fb5421709b3f885298897bd7c
[eevladatepicker.git] / lib / widget / eeWidgetFormDateVlaDatePicker.class.php
1 <?php
2
3 /*
4  * This file is part of the Vista-Like Date Picker plugin for Symfony.
5  * (c) Christophe Benz <cbenz@easter-eggs.com>
6  * 
7  * For the full copyright and license information, please view the LICENSE
8  * file that was distributed with this source code.
9  */
10
11 /**
12  * eeWidgetFormDateVlaDatePicker represents a rich Javascript date widget 
13  *
14  * @author     Christophe Benz <cbenz@easter-eggs.com>
15  * @version    SVN: $Id: eeWidgetFormDateVlaDatePicker.class.php $
16  */
17 class eeWidgetFormDateVlaDatePicker extends sfWidgetForm
18 {
19   /**
20    * Configures the current widget.
21    *
22    * Available options:
23    *
24    *  * start_monday: Whether the week starts on monday (true by default)
25    *
26    * @param array $options     An array of options
27    * @param array $attributes  An array of default HTML attributes
28    *
29    * @see sfWidgetForm
30    */
31   protected function configure($options = array(), $attributes = array())
32   {
33     $this->addOption('start_monday', true);
34   }
35
36   /**
37    * @param  string $name        The element name
38    * @param  string $value       The date displayed in this widget
39    * @param  array  $attributes  An array of HTML attributes to be merged with the default HTML attributes
40    * @param  array  $errors      An array of errors for the field
41    *
42    * @return string An HTML tag string
43    *
44    * @see sfWidgetForm
45    */
46   public function render($name, $value = null, $attributes = array(), $errors = array())
47   {
48     $input = new sfWidgetFormInput(array(), array('autocomplete' => 'off'));
49
50     $html = $input->render($name, $value);
51
52     $id = $input->generateId($name);
53     $monday_option = $this->getOption('start_monday');
54     $html .= <<<EOHTML
55 <script type="text/javascript">
56 new vlaDatePicker('$id', {prefillDate: false, startMonday: $monday_option});
57 </script>
58 EOHTML;
59
60     return $html;
61   }
62
63   /*
64    *
65    * Gets the stylesheet paths associated with the widget.
66    *
67    * @return array An array of stylesheet paths
68    */
69   public function getStylesheets()
70   {
71       return array('/eeVlaDatePickerPlugin/css/vlaCal-v2.1.css' => 'screen');
72   }
73
74   /**
75    * Gets the JavaScript paths associated with the widget.
76    *
77    * @return array An array of JavaScript paths
78    */
79   public function getJavaScripts()
80   {
81     $js = array(
82       '/eeVlaDatePickerPlugin/js/vlaCal-v2.1-compressed.js',
83       '/eeVlaDatePickerPlugin/js/vlaCal-v2.1-clientside-v1.0.1-compressed.js'
84     );
85
86     $culture = sfContext::getInstance()->getUser()->getCulture();
87     if(isset($culture)) {
88       $i18n_js = 'eeVlaDatePickerPlugin/js/i18n/' . $culture . '.js';
89       if(file_exists($i18n_js)) {
90         $js[] = '/' . $i18n_js;
91       }
92     }
93
94     return $js;
95   }
96
97 }