public function updateCMSFields(FieldSet $fields) { Requirements::javascript(THIRDPARTY_DIR . '/jquery/jquery.js'); Requirements::javascript(THIRDPARTY_DIR . '/jquery-livequery/jquery.livequery.js'); Requirements::javascript('newsletter-pagesource/javascript/NewsletterAdmin.js'); $source = new OptionsetField('ContentSource', 'Content Source', array('content' => 'A content block', 'page' => 'A page in the site tree')); $fields->insertBefore($source, 'Content'); $page = new TreeDropdownField('SourcePageID', '', 'SiteTree'); $fields->insertBefore($page, 'Content'); $fields->dataFieldByName('Content')->setTitle(''); }
function testMakeFieldReadonly() { $fieldSet = new FieldSet(new TabSet('Root', new Tab('Main', new TextField('A'), new TextField('B')))); $fieldSet->makeFieldReadonly('A'); $this->assertTrue($fieldSet->dataFieldByName('A')->isReadonly(), 'Field nested inside a TabSet and FieldSet can be marked readonly by FieldSet->makeFieldReadonly()'); }
function updateCMSFields(FieldSet &$fields) { $allForums = DataObject::get('Forum'); $fields->removeByName('ModeratedForums'); $fields->addFieldToTab('Root.ModeratedForums', new CheckboxSetField('ModeratedForums', _t('ForumRole.MODERATEDFORUMS', 'Moderated forums'), $allForums ? $allForums->map('ID', 'Title') : array())); $suspend = $fields->dataFieldByName('SuspendedUntil'); $suspend->setConfig('showcalendar', true); if (Permission::checkMember($this->owner->ID, "ACCESS_FORUM")) { $fields->addFieldToTab('Root.Forum', new ImageField("Avatar", _t('ForumRole.UPLOADAVATAR', "Upload avatar"))); $fields->addFieldToTab('Root.Forum', new DropdownField("ForumRank", _t('ForumRole.FORUMRANK', "User rating"), array("Community Member" => _t('ForumRole.COMMEMBER'), "Administrator" => _t('ForumRole.ADMIN', 'Administrator'), "Moderator" => _t('ForumRole.MOD', 'Moderator')))); } }
function validate($validator) { $errorMessage = ''; $valid = true; $fields = $this->SubmittedFieldSet($sourceItemsNew); $fields = new FieldSet($fields); foreach($fields as $field){ $valid = $field->validate($validator)&&$valid; } //debug::show($this->form->Message()); if($this->requiredFields&&$sourceItemsNew&&$sourceItemsNew->count()) { foreach ($this->requiredFields as $field) { foreach($sourceItemsNew as $item){ $cellName = $this->Name().'['.$item->ID.']['.$field.']'; $cName = $this->Name().'[new]['.$field.'][]'; if($fieldObj = $fields->dataFieldByName($cellName)) { if(!trim($fieldObj->Value())){ $title = $fieldObj->Title(); $errorMessage .= sprintf( _t('TableField.ISREQUIRED', "In %s '%s' is required."), $this->name, $title ); $errorMessage .= "<br />"; } } } } } if($errorMessage){ $messageType .= "validation"; $message .= "<br />".$errorMessage; $validator->validationError($this->name, $message, $messageType); } return $valid; }
/** * Make a readonly transformation on all fields in the given * FieldSet which have a name corresponding to a key in the * given $values array. * * @param FieldSet &$fields * @param array $values */ public function updateFieldSet(FieldSet &$fields, array $values) { foreach ($values as $field => $value) { if ($fields->dataFieldByName($field)) $fields->makeFieldReadonly($field); } }