Source of file UserFormsCheckboxSetField.php
Size: 1,406 Bytes - Last Modified: 2021-12-23T10:19:14+00:00
/var/www/docs.ssmods.com/process/src/code/FormField/UserFormsCheckboxSetField.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 | <?php namespace SilverStripe\UserForms\FormField; use SilverStripe\Forms\CheckboxSetField; /** * @package userforms */ class UserFormsCheckboxSetField extends CheckboxSetField { /** * jQuery validate requires that the value of the option does not contain * the actual value of the input. * * @return ArrayList */ public function getOptions() { $options = parent::getOptions(); foreach ($options as $option) { $option->Name = "{$this->name}[]"; } return $options; } /** * @inheritdoc * * @return array */ public function getSourceAsArray() { $array = parent::getSourceAsArray(); return array_values($array); } /** * @inheritdoc * * @param Validator $validator * * @return bool */ public function validate($validator) { // get the previous values (could contain comma-delimited list) $previous = $value = $this->Value(); if (is_string($value) && strstr($value, ",")) { $value = explode(",", $value); } // set the value as an array for parent validation $this->setValue($value); $validated = parent::validate($validator); // restore previous value after validation $this->setValue($previous); return $validated; } } |