Source of file EditableMemberListField.php
Size: 2,022 Bytes - Last Modified: 2021-12-23T10:35:40+00:00
/var/www/docs.ssmods.com/process/src/code/Model/EditableFormField/EditableMemberListField.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | <?php namespace SilverStripe\UserForms\Model\EditableFormField; use SilverStripe\Forms\DropdownField; use SilverStripe\Forms\FieldList; use SilverStripe\Security\Group; use SilverStripe\Security\Member; use SilverStripe\UserForms\Model\EditableFormField; /** * Creates an editable field that displays members in a given group * * @package userforms * @property int $GroupID * @method Group Group() */ class EditableMemberListField extends EditableFormField { private static $singular_name = 'Member List Field'; private static $plural_name = 'Member List Fields'; private static $has_one = [ 'Group' => Group::class ]; private static $table_name = 'EditableMemberListField'; /** * @return FieldList */ public function getCMSFields() { $fields = parent::getCMSFields(); $fields->removeByName('Default'); $fields->removeByName('Validation'); /** @skipUpgrade */ $fields->addFieldToTab( 'Root.Main', DropdownField::create( 'GroupID', _t('SilverStripe\\UserForms\\Model\\EditableFormField.GROUP', 'Group'), Group::get()->map() )->setEmptyString(' ') ); return $fields; } public function getFormField() { if (empty($this->GroupID)) { return false; } $members = Member::map_in_groups($this->GroupID); $field = DropdownField::create($this->Name, $this->Title ?: false, $members) ->setTemplate(EditableDropdown::class) ->setFieldHolderTemplate(EditableFormField::class . '_holder'); $this->doUpdateFormField($field); return $field; } public function getValueFromData($data) { if (isset($data[$this->Name])) { $memberID = $data[$this->Name]; $member = Member::get()->byID($memberID); return $member ? $member->getName() : ''; } return false; } } |