summaryrefslogtreecommitdiff
path: root/platform/www/lib/plugins/bureaucracy/helper/fielddate.php
diff options
context:
space:
mode:
Diffstat (limited to 'platform/www/lib/plugins/bureaucracy/helper/fielddate.php')
-rw-r--r--platform/www/lib/plugins/bureaucracy/helper/fielddate.php42
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'))));
+ }
+ }
+}