/**
  * Create the field for display in CMS.
  * 
  * (non-PHPdoc)
  * @see FormField::Field()
  * @return String
  */
 function Field()
 {
     $this->stockLevelField->setForm($this->form);
     if ($this->value == -1) {
         $this->stockLevelField->addExtraClass('HiddenStock');
     }
     return $this->stockLevelField->SmallFieldHolder();
 }
 /**
  * @param String $label
  * @return NumericField
  */
 public function getQuantityField($label = '')
 {
     $f = new NumericField("Product[{$this->owner->ID}][Quantity]", $label);
     $f->setAttribute('type', Config::inst()->get('GroupedCartFormChildHooks', 'quantity_field_type'));
     $f->setAttribute('min', '0');
     $f->addExtraClass('grouped-quantity');
     return $f;
 }
Пример #3
0
 /**
  * @return NumericField
  */
 public function getFormField()
 {
     $field = new NumericField($this->Name, $this->Title);
     $field->addExtraClass('number');
     if ($field->Required) {
         // Required and numeric validation can conflict so add the
         // required validation messages as input attributes
         $errorMessage = $this->getErrorMessage()->HTML();
         $field->setAttribute('data-rule-required', 'true');
         $field->setAttribute('data-msg-required', $errorMessage);
     }
     return $field;
 }
 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;
 }
Пример #5
0
 /**
  * @return TextareaField|TextField
  */
 public function getFormField()
 {
     if ($this->getSetting('Rows') && $this->getSetting('Rows') > 1) {
         $taf = new NumericField($this->Name, $this->Title);
         $taf->setRows($this->getSetting('Rows'));
         $taf->addExtraClass('number');
     } else {
         $taf = new NumericField($this->Name, $this->Title, null, $this->getSetting('MaxLength'));
         $taf->addExtraClass('number');
     }
     if ($this->Required) {
         //  Required and numeric validation can conflict so add the Required validation messages
         // as input attributes
         $errorMessage = $this->getErrorMessage()->HTML();
         $taf->setAttribute('data-rule-required', 'true');
         $taf->setAttribute('data-msg-required', $errorMessage);
     }
     return $taf;
 }
 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;
 }
Пример #7
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;
 }
 protected function initFormField()
 {
     $field = new NumericField($this->Name, $this->Title);
     $field->addExtraClass('number');
     return $field;
 }