Source of file EditableDateDropdownField.php
Size: 1,770 Bytes - Last Modified: 2021-12-24T06:44:47+00:00
/var/www/docs.ssmods.com/process/src/code/EditableDateDropdownField.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 | <?php namespace DNADesign\SilverstripeDatedropdownselectorfield; use SilverStripe\Core\Manifest\ModuleResourceLoader; if(class_exists('EditableDateField')) { class EditableDateDropdownField extends EditableFormField { private static $singular_name = 'Date Dropdown Field'; private static $plural_name = 'Date Dropdown Fields'; public function populateFromPostData($data) { $fieldPrefix = 'Default-'; if(empty($data['Default']) && !empty($data[$fieldPrefix.'Year']) && !empty($data[$fieldPrefix.'Month']) && !empty($data[$fieldPrefix.'Day'])) { $data['Default'] = $data['Year'] . '-' . $data['Month'] . '-' . $data['Day']; } parent::populateFromPostData($data); } /** * Return the form field * */ public function getFormField() { $field = DateSelectorField::create($this->Name, $this->Title); if ($this->Required) { // Required 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 getIcon() { return ModuleResourceLoader::singleton()->resolveURL( 'silverstripe/userforms: images/editabledatefield.png' ); } public function getValueFromData($data) { $value = (isset($data[$this->Name])) ? $data[$this->Name] : false; if($value) { $output = ''; if(isset($value[2]['Year'])) { $output = $value[2]['Year']; } if(isset($value[1]['Month'])) { $output .= '-'. $value[1]['Month']; } if(isset($value[0]['Day'])) { $output .= '-'. $value[0]['Day']; } return $output; } } } } |