Source of file RadioFieldSet.php
Size: 1,891 Bytes - Last Modified: 2021-12-24T05:18:45+00:00
/var/www/docs.ssmods.com/process/src/src/Fields/RadioFieldSet.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | <?php namespace IQnection\FormBuilder\Fields; use IQnection\FormBuilder\Model\Field; use Symbiote\GridFieldExtensions\GridFieldEditableColumns; use SilverStripe\Forms; class RadioFieldSet extends Field { private static $table_name = 'FormBuilderRadioFieldSet'; private static $singular_name = 'Radio Buttons'; private static $extensions = [ \IQnection\FormBuilder\Extensions\SelectField::class ]; private static $db = [ 'HorizontalLayout' => 'Boolean' ]; private static $defaults = [ 'HorizontalLayout' => 0 ]; public function getCMSFields() { $fields = parent::getCMSFields(); $fields->addFieldToTab('Root.Settings', $HorizontalLayoutField = Forms\OptionSetField::create('HorizontalLayout', 'Layout') ->setSource([0 => 'Vertical', 1 => 'Horizontal']) ); if (!$this->Exists()) { $HorizontalLayoutField->setValue(0); } return $fields; } public function validate() { $result = parent::validate(); if ($this->Options()->Filter('DefaultSelected',1)->Count() > 1) { $result->addError('You can only have one default value selected'); } return $result; } public function ExtraCssClasses($as_string = false) { $classes = parent::ExtraCssClasses($as_string); if ($this->HorizontalLayout) { $classes[] = 'horizontal'; } return $classes; } public function getBaseField(&$validator = null, $defaults = null) { $selectedDefault = $this->Options()->Filter('DefaultSelected',1)->First(); $field = Forms\OptionSetField::create($this->getFrontendFieldName()); if ($selectedDefault) { $field->setValue($selectedDefault->ID); } $field->setSource($this->getFieldSourceArray()); return $field; } public function getOptionjQuerySelector($option, $valueSelector = false) { $selector = $this->getjQuerySelector(); if ($valueSelector) { $selector .= '[value="'.$option->ID.'"]'; } return $selector; } } |