public function Field()
 {
     $valArr = $this->value ? explode('-', $this->value) : null;
     // fields
     $first = new NumericField($this->name . '[first]', false, $valArr ? array_shift($valArr) : null);
     $first->setMaxLength(3);
     $first->addExtraClass('ird-numeric');
     $second = new NumericField($this->name . '[second]', false, $valArr ? array_shift($valArr) : null);
     $second->setMaxLength(3);
     $second->addExtraClass('ird-numeric');
     $third = new NumericField($this->name . '[third]', false, $valArr ? array_shift($valArr) : null);
     $third->setMaxLength(3);
     $third->addExtraClass('ird-numeric');
     $fields = array($first->Field(), $second->Field(), $third->Field());
     $html = implode('<span style="padding: 0 8px">-</span>', $fields);
     return $html;
 }
 function Field()
 {
     // Three separate fields for day, month and year
     if ($this->getConfig('dmyfields')) {
         // values
         $valArr = $this->valueObj ? $this->valueObj->toArray() : null;
         // fields
         $fieldDay = new NumericField($this->name . '[day]', false, $valArr ? $valArr['day'] : null);
         $fieldDay->addExtraClass('day');
         $fieldDay->setMaxLength(2);
         $fieldMonth = new NumericField($this->name . '[month]', false, $valArr ? $valArr['month'] : null);
         $fieldMonth->addExtraClass('month');
         $fieldMonth->setMaxLength(2);
         $fieldYear = new NumericField($this->name . '[year]', false, $valArr ? $valArr['year'] : null);
         $fieldYear->addExtraClass('year');
         $fieldYear->setMaxLength(4);
         // order fields depending on format
         $sep = $this->getConfig('dmyseparator');
         $format = $this->getConfig('dateformat');
         $fields = array();
         $fields[stripos($format, 'd')] = $fieldDay->Field();
         $fields[stripos($format, 'm')] = $fieldMonth->Field();
         $fields[stripos($format, 'y')] = $fieldYear->Field();
         ksort($fields);
         $html = implode($sep, $fields);
     } else {
         $html = parent::Field();
     }
     return $html;
 }
예제 #3
0
 function Field($properties = array())
 {
     $config = array('showcalendar' => $this->getConfig('showcalendar'), 'isoDateformat' => $this->getConfig('dateformat'), 'jqueryDateformat' => DateField_View_JQuery::convert_iso_to_jquery_format($this->getConfig('dateformat')), 'min' => $this->getConfig('min'), 'max' => $this->getConfig('max'));
     // Add other jQuery UI specific, namespaced options (only serializable, no callbacks etc.)
     // TODO Move to DateField_View_jQuery once we have a properly extensible HTML5 attribute system for FormField
     foreach ($this->getConfig() as $k => $v) {
         if (preg_match('/^jQueryUI\\.(.*)/', $k, $matches)) {
             $config[$matches[1]] = $v;
         }
     }
     $config = array_filter($config);
     foreach ($config as $k => $v) {
         $this->setAttribute('data-' . $k, $v);
     }
     // Three separate fields for day, month and year
     if ($this->getConfig('dmyfields')) {
         // values
         $valArr = $this->valueObj ? $this->valueObj->toArray() : null;
         // fields
         $fieldDay = new NumericField($this->name . '[day]', false, $valArr ? $valArr['day'] : null);
         $fieldDay->addExtraClass('day');
         $fieldDay->setMaxLength(2);
         $fieldMonth = new NumericField($this->name . '[month]', false, $valArr ? $valArr['month'] : null);
         $fieldMonth->addExtraClass('month');
         $fieldMonth->setMaxLength(2);
         $fieldYear = new NumericField($this->name . '[year]', false, $valArr ? $valArr['year'] : null);
         $fieldYear->addExtraClass('year');
         $fieldYear->setMaxLength(4);
         // order fields depending on format
         $sep = $this->getConfig('dmyseparator');
         $format = $this->getConfig('dateformat');
         $fields = array();
         $fields[stripos($format, 'd')] = $fieldDay->Field();
         $fields[stripos($format, 'm')] = $fieldMonth->Field();
         $fields[stripos($format, 'y')] = $fieldYear->Field();
         ksort($fields);
         $html = implode($sep, $fields);
         // dmyfields doesn't work with showcalendar
         $this->setConfig('showcalendar', false);
     } else {
         $html = parent::Field();
     }
     return $html;
 }