diff options
Diffstat (limited to 'platform/www/lib/plugins/bureaucracy/helper/fielddate.php')
-rw-r--r-- | platform/www/lib/plugins/bureaucracy/helper/fielddate.php | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/platform/www/lib/plugins/bureaucracy/helper/fielddate.php b/platform/www/lib/plugins/bureaucracy/helper/fielddate.php new file mode 100644 index 0000000..6feae1c --- /dev/null +++ b/platform/www/lib/plugins/bureaucracy/helper/fielddate.php @@ -0,0 +1,42 @@ +<?php +/** + * Class helper_plugin_bureaucracy_fielddate + * + * A date in the format YYYY-MM-DD, provides a date picker + */ +class helper_plugin_bureaucracy_fielddate extends helper_plugin_bureaucracy_fieldtextbox { + /** + * Arguments: + * - cmd + * - label + * - ^ (optional) + * + * @param array $args The tokenized definition, only split at spaces + */ + public function initialize($args) { + parent::initialize($args); + $attr = array( + 'class' => 'datepicker edit', + 'maxlength'=>'10' + ); + if(!isset($this->opt['optional'])) { + $attr['required'] = 'required'; + $attr['class'] .= ' required'; + } + $this->tpl = form_makeTextField('@@NAME@@', '@@VALUE@@', '@@DISPLAY@@', '@@ID@@', '@@CLASS@@', $attr); + } + + /** + * Validate field input + * + * @throws Exception when empty or wrong date format + */ + protected function _validate() { + parent::_validate(); + + $value = $this->getParam('value'); + if (!is_null($value) && !preg_match('/^\d{4}-\d{2}-\d{2}$/', $value)) { + throw new Exception(sprintf($this->getLang('e_date'),hsc($this->getParam('display')))); + } + } +} |