public function updateCMSFields(FieldList $fields) { $extFields = self::$db; $fields->removeByName(array_keys($extFields)); if (!$this->owner->WordpressID) { return; } $compositeFields = array(); foreach ($extFields as $name => $type) { $value = $this->owner->getField($name); $compositeFields[$name] = ReadonlyField::create($name . '_Readonly', FormField::name_to_label($name), $value); } if ($compositeFields) { $wordpressCompositeField = ToggleCompositeField::create('WordpressCompositeField', 'Wordpress', $compositeFields)->setHeadingLevel(4); if ($fields->fieldByName('Metadata')) { $fields->insertBefore($wordpressCompositeField, 'Metadata'); } else { if ($fields->fieldByName('Root')) { $fields->addFieldToTab('Root.Main', $wordpressCompositeField); } else { $fields->push($wordpressCompositeField); } } } }
public function updateCMSFields(FieldList $fields) { if (get_class($fields->fieldByName('Root.Main')) == 'TabSet') { $fields->addFieldsToTab('Root.Main.Metadata', $this->getTagFields()); } else { if (get_class($fields->fieldByName('Root')) == 'TabSet') { $fields->addFieldsToTab('Root.Metadata', $this->getTagFields()); } else { if (get_class($fields) == 'FieldSet' || get_class($fields) == 'FieldList') { foreach ($this->getTagFields() as $f) { $fields->push($f); } } } } }
/** * @param FieldList $fields */ public function updateCMSFields(FieldList $fields) { /** ========================================= * @var TextareaField $address * @var TextareaField $postalAddress * @var TextField $mailChimpAPI * @var TextareaField $mailChimpSuccessMessage ===========================================*/ if (!$fields->fieldByName('Root.Settings')) { $fields->addFieldToTab('Root', TabSet::create('Settings')); } /** ----------------------------------------- * Details * ----------------------------------------*/ $address = TextareaField::create('Address', 'Address'); $address->setRows(8); $postalAddress = TextareaField::create('PostalAddress', 'Postal Address'); $postalAddress->setRows(8); $fields->findOrMakeTab('Root.Settings.Details'); $fields->addFieldsToTab('Root.Settings.Details', array(HeaderField::create('', 'Company Details'), Textfield::create('Phone', 'Phone Number'), Textfield::create('Email', 'Public Email Address'), $address, $postalAddress, TextField::create('Facebook', 'Facebook'), TextField::create('LinkedIn', 'LinkedIn'), TextField::create('Pinterest', 'Pinterest'), TextField::create('TwitterHandle', 'Twitter Handle'))); /** ----------------------------------------- * Subscription * ----------------------------------------*/ $mailChimpAPI = TextField::create('MailChimpAPI', 'API Key'); $mailChimpSuccessMessage = TextareaField::create('MailChimpSuccessMessage', 'Success Message (optional)'); $mailChimpAPI->setRightTitle('<a href="https://us9.admin.mailchimp.com/account/api-key-popup/" target="_blank"><i>How do I get my MailChimp API Key?</i></a>'); $mailChimpSuccessMessage->setRows(2)->setRightTitle('Message displayed when a user has successfully subscribed to a list.'); $fields->findOrMakeTab('Root.Settings.Subscription', 'Subscription'); $fields->addFieldsToTab('Root.Settings.Subscription', array(HeaderField::create('', 'Newsletter Subscription'), LiteralField::create('', '<p>The API key, and list ID are necessary for the Newsletter Subscription form to function.</p>'), $mailChimpAPI, TextField::create('MailChimpListID', 'List ID'), $mailChimpSuccessMessage)); }
public function updateCMSFields(FieldList $fields) { /* ----------------------------------------- * Color Picker ------------------------------------------*/ Requirements::css('boilerplate/css/colorpicker.css'); Requirements::javascript('boilerplate/javascript/colorpicker.min.js'); Requirements::javascript('boilerplate/javascript/colorpicker.init.js'); /* ========================================= * Settings =========================================*/ if (!$fields->fieldByName('Root.Settings')) { $fields->addFieldToTab('Root', new TabSet('Settings')); } /* ----------------------------------------- * Images ------------------------------------------*/ $fields->findOrMakeTab('Root.Settings.Images', 'Images'); $fields->addFieldsToTab('Root.Settings.Images', array($logo = new UploadField('LogoImage', _t('BoilerplateConfig.LogoImageLabel', 'Logo')), $favicon = new UploadField('Favicon', _t('BoilerplateConfig.FaviconLabel', 'Favicon')))); $logo->setRightTitle('Choose an Image For Your Logo'); $favicon->setRightTitle('Choose an Image For Your Favicon (16x16)'); /* ----------------------------------------- * Company Details ------------------------------------------*/ $fields->findOrMakeTab('Root.Settings.Details', 'Details'); $fields->addFieldsToTab('Root.Settings.Details', array(new Textfield('Phone', _t('BoilerplateConfig.PhoneLabel', 'Phone Number')), new Textfield('Email', _t('BoilerplateConfig.EmailLabel', 'Public Email Address')), $PhysicalAddress = new HtmlEditorField('PhysicalAddress', _t('BoilerplateConfig.PhysicalAddressLabel', 'Physical Address')))); $PhysicalAddress->setRows(3); /* ----------------------------------------- * Tracking Code ------------------------------------------*/ $fields->findOrMakeTab('Root.Settings.TrackingCode', 'Tracking Code'); $fields->addFieldsToTab('Root.Settings.TrackingCode', array($trackingCode = new TextareaField('TrackingCode', _t('BoilerplateConfig.TrackingCodeLabel', 'Tracking Code')))); $trackingCode->setRows(20); }
public function updateFieldsForFile(FieldList $fields, $url, $file) { if (!($apiKey = Config::inst()->get('Aviary', 'ClientID'))) { return; } // load Aviary (js+css) Aviary::loadAviary(); // Image pointer $aviaryImage = LiteralField::create('AviaryImage', '<img class="aviary_image" id="aviary_image_' . $file->ID . '" src="/' . $url . '" style="display: none;" />'); // create edit button $editButton = FormAction::create('AviaryEditImage', _t('Aviary.EditImage', 'Edit Image'))->setAttribute('data-apikey', $apiKey)->setAttribute('data-localprocessing', Config::inst()->get('Aviary', 'LocalProcessing')); if (!$fields->fieldByName('FilePreview.FilePreviewImage.AviaryEditImageWrapper') && ($previewRoot = $fields->fieldByName('FilePreview.FilePreviewImage.ImageFull'))) { $fields->insertAfter(CompositeField::create($editButton)->setName('AviaryEditImageWrapper'), $previewRoot->getName()); $fields->insertAfter($aviaryImage, 'FilePreviewImage'); } }
function updateCMSFields(FieldList $fields) { if ($attributes = $fields->fieldByName("ProductAttributeType")) { $attributes->getConfig()->removeComponentsByType("GridFieldAddNewButton")->addComponent($multiclass = new GridFieldAddNewMultiClass()); $multiclass->setClasses(array_values(ClassInfo::subclassesFor("ProductAttributeType"))); } }
public function updateCMSFields(FieldList $fields) { foreach (['primary', 'secondary'] as $lower) { $upper = ucfirst($lower); $config = $this->owner->config()->get("{$lower}_gallery"); if (is_null($config) || isset($config['enabled']) && $config['enabled'] === false) { continue; } $config['title'] = isset($config['title']) ? $config['title'] : "{$upper} Gallery"; $config['folder'] = isset($config['folder']) ? $config['folder'] : "{$upper}-Gallery-Images"; $GridFieldConfig = new GridFieldConfig_RecordEditor(); $GridFieldConfig->removeComponentsByType('GridFieldAddNewButton'); $GridFieldConfig->addComponent($bulkUploadConfig = new GridFieldBulkUpload()); $GridFieldConfig->addComponent(new GridFieldSortableRows('SortOrder')); $GridFieldConfig->addComponent(new GridFieldGalleryTheme('Image')); $bulkUploadConfig->setUfSetup('setFolderName', "Images/{$config['folder']}"); $GridField = new GridField("{$upper}GalleryGridField", $config['title'], $this->owner->{"{$upper}GalleryImages"}(), $GridFieldConfig); /** @var TabSet $rootTab */ //We need to repush Metadata to ensure it is the last tab $rootTab = $fields->fieldByName('Root'); $rootTab->push($tab = Tab::create("{$upper}Gallery")); if ($rootTab->fieldByName('Metadata')) { $metaChildren = $rootTab->fieldByName('Metadata')->getChildren(); $rootTab->removeByName('Metadata'); $rootTab->push(Tab::create('Metadata')->setChildren($metaChildren)); } $tab->setTitle($config['title']); $fields->addFieldToTab("Root.{$upper}Gallery", $GridField); } }
/** * Value is sometimes an array, and sometimes a single value, so we need * to handle both cases. * * @param mixed $value * @param mixed $data * @return $this */ public function setValue($value, $data = null) { // If $data is a DataObject, don't use the value, since it's a hashed value if ($data && $data instanceof DataObject) { $value = ''; } //store this for later $oldValue = $this->value; if (is_array($value)) { $this->value = $value['_Password']; $this->confirmValue = $value['_ConfirmPassword']; $this->currentPasswordValue = $this->getRequireExistingPassword() && isset($value['_CurrentPassword']) ? $value['_CurrentPassword'] : null; if ($this->showOnClick && isset($value['_PasswordFieldVisible'])) { $this->children->fieldByName($this->getName() . '[_PasswordFieldVisible]')->setValue($value['_PasswordFieldVisible']); } } else { if ($value || !$value && $this->canBeEmpty) { $this->value = $value; $this->confirmValue = $value; } } //looking up field by name is expensive, so lets check it needs to change if ($oldValue != $this->value) { $this->children->fieldByName($this->getName() . '[_Password]')->setValue($this->value); $this->children->fieldByName($this->getName() . '[_ConfirmPassword]')->setValue($this->confirmValue); } return $this; }
public function updateCMSFields(FieldList $fields) { // check if the insertbefore field is present (may be added later, in which case the above // fields never get added //$insertOnTab = $this->owner->getFilterableArchiveConfigValue('pagination_control_tab'); //$insertBefore = $this->owner->getFilterableArchiveConfigValue('pagination_insert_before'); $insertOnTab = Config::inst()->get($this->owner->className, 'pagination_control_tab'); $insertBefore = Config::inst()->get($this->owner->className, 'pagination_insert_before'); if (!$fields->fieldByName("{$insertOnTab}.{$insertBefore}")) { $insertBefore = null; } //if($this->owner->getFilterableArchiveConfigValue('datearchive_active')){ if (Config::inst()->get($this->owner->className, 'datearchive_active')) { //$fields->addFieldToTab($this->owner->getFilterableArchiveConfigValue('pagination_control_tab'), $fields->addFieldToTab(Config::inst()->get($this->owner->className, 'pagination_control_tab'), DropdownField::create('ArchiveUnit', _t('filterablearchive.ARCHIVEUNIT', 'Archive unit'), array('year' => _t('filterablearchive.YEAR', 'Year'), 'month' => _t('filterablearchive.MONTH', 'Month'), 'day' => _t('filterablearchive.DAY', 'Day'))), $insertBefore); } $pagerField = NumericField::create("ItemsPerPage", _t("filterablearchive.ItemsPerPage", "Pagination: items per page"))->setRightTitle(_t("filterablearchive.LeaveEmptyForNone", "Leave empty or '0' for no pagination")); $fields->addFieldToTab($insertOnTab, $pagerField, $insertBefore); // // Create categories and tag config // // $config = GridFieldConfig_RecordEditor::create(); // $config->removeComponentsByType("GridFieldAddNewButton"); // $config->addComponent(new GridFieldAddByDBField("buttons-before-left")); // Lets just use what others have made already... $config = GridFieldConfig::create()->addComponent(new GridFieldButtonRow('before'))->addComponent(new GridFieldToolbarHeader())->addComponent(new GridFieldTitleHeader())->addComponent(new GridFieldEditableColumns())->addComponent(new GridFieldDeleteAction())->addComponent(new GridFieldAddNewInlineButton('toolbar-header-right')); //if($this->owner->getFilterableArchiveConfigValue('categories_active')){ if (Config::inst()->get($this->owner->className, 'categories_active')) { $fields->addFieldToTab($insertOnTab, $categories = GridField::create("Categories", _t("FilterableArchive.Categories", "Categories"), $this->owner->Categories(), $config), $insertBefore); } //if($this->owner->getFilterableArchiveConfigValue('tags_active')){ if (Config::inst()->get($this->owner->className, 'tags_active')) { $fields->addFieldToTab($insertOnTab, $tags = GridField::create("Tags", _t("FilterableArchive.Tags", "Tags"), $this->owner->Tags(), $config), $insertBefore); } }
public function updateCMSFields(FieldList $fields) { $metaData = $fields->fieldByName('Root.Main.Metadata'); $metaFieldTitle = new TextareaField("MetaKeywords", $this->owner->fieldLabel('MetaKeywords')); $metaData->insertAfter($metaFieldTitle, 'MetaDescription'); return $fields; }
public function updateCMSFields(FieldList $fields) { // Add back metatitle $fields->fieldByName('Root.Main.Metadata')->insertBefore($metaTitle = new TextField('MetaTitle', 'Meta Title'), 'MetaDescription'); $metaTitle->setDescription('Browsers will display this in the title bar and search engines use this for displaying search results (although it may not influence their ranking).'); // Record current CMS page, quite useful for sorting etc self::$current_cms_page = $this->owner->ID; }
/** * @param FieldList $fields */ public function updateCMSFields(FieldList $fields) { if ($fields->fieldByName('Root.Content')) { $tab = 'Root.Content.' . _t('Profileable.PROFILE ', 'Profile'); } else { $tab = 'Root.' . _t('Profileable.PROFILE ', 'Profile'); } $fields->addFieldsToTab($tab, $this->getProfileFields()); }
public function updateCMSFields(FieldList $fields) { // The Extra.GraphiteServers $graphiteServerField = $fields->fieldByName('Root.Main.GraphiteServers'); $fields->removeByName('Root.Main.GraphiteServers'); $graphiteServerField->setDescription('Find the relevant graphite servers at ' . '<a href="http://graphite.silverstripe.com/" target="_blank">graphite.silverstripe.com</a>' . ' and enter them one per line, e.g. "server.wgtn.oscar"'); $fields->addFieldToTab('Root.Extra', $graphiteServerField); return $fields; }
/** * Return the form's fields - used by the templates * * @return FieldList The form fields */ public function Fields() { foreach ($this->getExtraFields() as $field) { if (!$this->fields->fieldByName($field->getName())) { $this->fields->push($field); } } return $this->fields; }
function updateCMSFields(FieldList $fields) { if ($tab = $fields->fieldByName("Root.Pricing")) { $fields = $tab->Fields(); } if ($this->owner->isInDB() && ($fields->fieldByName("BasePrice") || $fields->fieldByName("Price"))) { $fields->push(GridField::create("SpecificPrices", "Specific Prices", $this->owner->SpecificPrices(), GridFieldConfig_RecordEditor::create())); } }
public function updateCMSFields(FieldList $fields) { $gfc = $fields->fieldByName('Report')->getConfig(); $columns = $this->owner->columns(); $exportColumns = array(); foreach ($columns as $k => $v) { $exportColumns[$k] = $v['title']; } $gfc->getComponentByType('GridFieldExportButton')->setExportColumns($exportColumns); }
/** * @param FieldList $fields */ public function updateCMSFields(FieldList $fields) { if (!$fields->fieldByName('Root.Settings')) { $fields->addFieldToTab('Root', TabSet::create('Settings')); } /** ----------------------------------------- * Details * ----------------------------------------*/ $fields->findOrMakeTab('Root.Settings.TwitterCards'); $fields->addFieldsToTab('Root.Settings.TwitterCards', array(HeaderField::create('', 'Twitter Cards'), Textfield::create('DefaultTwitterHandle', 'Default Twitter Handle'), UploadField::create('DefaultTwitterImage', 'Default Twitter Card Image'))); }
/** * @param FieldList $fields */ public function updateCMSFields(FieldList $fields) { if (!$fields->fieldByName('Root.Settings')) { $fields->addFieldToTab('Root', TabSet::create('Settings')); } /** ----------------------------------------- * Details * ----------------------------------------*/ $fields->findOrMakeTab('Root.Settings.SEO'); $fields->addFieldsToTab('Root.Settings.SEO', array(HeaderField::create('', 'SEO Settings'), TextField::create('DefaultSEOMetaTitle', 'Default Meta Title Addition')->setRightTitle('This is additional copy that will be automatically added to all of your pages\' meta titles.'), OptionsetField::create('DefaultSEOMetaTitlePosition', 'Default Meta Title Position', array('before' => 'Prepend to the Meta Title', 'after' => 'Append to the Meta Title')))); }
public function updateCMSFields(FieldList $fields) { if ($themeField = $fields->fieldByName('Root.Main.Theme')) { $fields->removeFieldFromTab('Root.Main', 'Theme'); $fields->addFieldToTab('Root.Appearance.Main', $themeField); } $fields->addFieldsToTab('Root.Appearance.Main', array(UploadField::create('Logo', 'Logo')->setDescription('Upload the site logo'))); // Navigation $fields->addFieldsToTab('Root.Appearance.Navigation', array(DropdownField::create('NavgationLevel', 'Max navigation level', array(0 => 'Infinite', 1 => '1', 2 => '2', 3 => '3', 4 => '4', 5 => '5', 6 => '6', 7 => '7', 8 => '8', 9 => '9')))); return $fields; }
/** * @param FieldList $fields */ public function updateCMSFields(FieldList $fields) { if (!$fields->fieldByName('Root.Settings')) { $fields->addFieldToTab('Root', TabSet::create('Settings')); } /** ----------------------------------------- * Details * ----------------------------------------*/ $fields->findOrMakeTab('Root.Settings.OpenGraph'); $fields->addFieldsToTab('Root.Settings.OpenGraph', array(HeaderField::create('', 'OOpen Graph'), UploadField::create('DefaultOpenGraphImage', 'Default Facebook Share Image'))); }
public function ContactForm() { $fields = new FieldList(TextField::create('Name')->setValue('Name')->addExtraClass('full'), EmailField::create('Email')->setValue('Email')->addExtraClass('full'), TextareaField::create('Message')->setValue('Message'), TextField::create('Spam')->setTitle('Is fire hot or cold?')->setValue('Is fire hot or cold?')->addExtraClass('full')); $actions = new FieldList(new FormAction('SendContactForm', 'Send')); $requiredFields = array('Name', 'Spam', 'Email', 'Message'); $validator = new RequiredFields($requiredFields); foreach ($requiredFields as $fieldName) { $fields->fieldByName($fieldName)->addExtraClass("required"); } return new Form($this, 'ContactForm', $fields, $actions, $validator); }
public function updateFields(FieldList $fields) { /** @var CompositeField $shippingAddressFields */ if ($shippingAddressFields = $fields->fieldByName('ShippingAddress')) { /** @var DropdownField $countryCodeField */ if ($countryCodeField = $shippingAddressFields->fieldByName('ShippingCountryCode')) { $countryCodeField->setReadonly(true); $shippingAddressFields->insertBefore(DropdownField::create('ShippingRegionCode', _t('CheckoutPage.REGION', 'Region'), Region_Shipping::get()->map('Code', 'Title')->toArray())->setCustomValidationMessage(_t('CheckoutPage.PLEASE_ENTER_REGION', "Please enter a shipping region."))->addExtraClass('region-code'), 'ShippingCountryCode'); } } }
/** * Add the publish all button */ public function updateCMSActions(FieldList $actions) { if (Config::inst()->get('PageBlocks', 'allow_publish_all') == false) { return; } $button = FormAction::create('publishblocks', _t('PageBlocks.PUBLISH_ALL', 'Publish Page & Blocks', 'Button label to publish page and all blocks'))->setAttribute('data-icon', 'accept'); if ($majorActions = $actions->fieldByName('MajorActions')) { $majorActions->push($button); } else { $actions->push($button); } }
/** * @param FieldList $fields */ public function updateCMSFields(FieldList $fields) { if (!$fields->fieldByName('Root.Settings')) { $fields->addFieldToTab('Root', TabSet::create('Settings')); } $fields->findOrMakeTab('Root.Settings.Banner', 'Banner'); /** * @var UploadField $image * @var NumericField $defaultSliderHeight */ $fields->addFieldsToTab('Root.Settings.Banner', array(HeaderField::create('', 'Banner'), LiteralField::create('', '<p>Image to be displayed on all pages as a default banner. Can be overridden by a page\'s banner.</p>'), $image = UploadField::create('SliderImage', 'Image'), $defaultSliderHeight = NumericField::create('DefaultSliderHeight', 'Default Height'))); $image->setFolderName('Uploads/slider'); $defaultSliderHeight->setRightTitle('Height that will be set across the entire site, this can be overridden in individual pages'); }
public function updateCMSActions(FieldList $actions) { if (!$this->owner->Blocks()->count()) { return; } $actions->fieldByName('MajorActions')->push($publish = FormAction::create('publishPageAndBlocks', 'Published (+Blocks)')->setAttribute('data-icon', 'accept')->setAttribute('data-icon-alternate', 'disk')->setAttribute('data-text-alternate', 'Save & publish (+Blocks)')); // Set up the initial state of the button to reflect the state of the blocks foreach ($this->owner->Blocks() as $block) { if ($block->stagesDiffer('Stage', 'Live')) { $publish->addExtraClass('ss-ui-alternate'); break; } } }
/** * @param Validator $validator * * @return boolean */ public function validate($validator) { $name = $this->name; // if field isn't visible, don't validate if (!$this->isSaveable()) { return true; } $passwordField = $this->children->fieldByName($name . '[_Password]'); $passwordConfirmField = $this->children->fieldByName($name . '[_ConfirmPassword]'); $passwordField->setValue($_POST[$name]['_Password']); $passwordConfirmField->setValue($_POST[$name]['_ConfirmPassword']); $value = $passwordField->Value(); // both password-fields should be the same if ($value != $passwordConfirmField->Value()) { $validator->validationError($name, _t('Form.VALIDATIONPASSWORDSDONTMATCH', "Passwords don't match"), "validation", false); return false; } if (!$this->canBeEmpty) { // both password-fields shouldn't be empty if (!$value || !$passwordConfirmField->Value()) { $validator->validationError($name, _t('Form.VALIDATIONPASSWORDSNOTEMPTY', "Passwords can't be empty"), "validation", false); return false; } } // lengths if ($this->minLength || $this->maxLength) { if ($this->minLength && $this->maxLength) { $limit = "{{$this->minLength},{$this->maxLength}}"; $errorMsg = _t('ConfirmedPasswordField.BETWEEN', 'Passwords must be {min} to {max} characters long.', array('min' => $this->minLength, 'max' => $this->maxLength)); } elseif ($this->minLength) { $limit = "{{$this->minLength}}.*"; $errorMsg = _t('ConfirmedPasswordField.ATLEAST', 'Passwords must be at least {min} characters long.', array('min' => $this->minLength)); } elseif ($this->maxLength) { $limit = "{0,{$this->maxLength}}"; $errorMsg = _t('ConfirmedPasswordField.MAXIMUM', 'Passwords must be at most {max} characters long.', array('max' => $this->maxLength)); } $limitRegex = '/^.' . $limit . '$/'; if (!empty($value) && !preg_match($limitRegex, $value)) { $validator->validationError($name, $errorMsg, "validation", false); } } if ($this->requireStrongPassword) { if (!preg_match('/^(([a-zA-Z]+\\d+)|(\\d+[a-zA-Z]+))[a-zA-Z0-9]*$/', $value)) { $validator->validationError($name, _t('Form.VALIDATIONSTRONGPASSWORD', "Passwords must have at least one digit and one alphanumeric character"), "validation", false); return false; } } return true; }
public function afterUpdateCMSFields(FieldList $fields) { self::$runs++; /** @var ToggleCompositeField $metaDataChildren */ $metaDataChildren = $fields->fieldByName('Root.Main.Metadata'); $length = $this->owner->config()->MetaDescriptionLength ?: $this->MetaDescriptionLength; $metaDataChildren->fieldByName('MetaDescription')->setAttribute('maxlength', $length); $children = array_merge([$metaTitle = TextField::create('MetaTitle')], $metaDataChildren->getChildren()->toArray()); $fields->removeFieldFromTab('Root.Main', 'Metadata'); $fields->addFieldToTab('Root', Tab::create('Metadata'), 'Content'); //Add META Title tag to METADATA $fields->addFieldsToTab('Root.Metadata', $children); $metaTitle->setDescription('Displayed as the tab/window name; Also displayed in search engine result listings as the page title.<br /> Falls back to the Primary Heading field if not provided.'); }
/** * @param FieldList $fields */ public function updateCMSFields(FieldList $fields) { /** ----------------------------------------- * Settings -------------------------------------------*/ if (!$fields->fieldByName('Root.Settings')) { $fields->addFieldToTab('Root', TabSet::create('Settings')); } /** ----------------------------------------- * CMS -------------------------------------------*/ if (Permission::check('ADMIN')) { $fields->findOrMakeTab('Root.Settings.CMS', 'CMS'); $fields->addFieldsToTab('Root.Settings.CMS', array(HeaderField::create('', 'CMS Menu'), CheckboxField::create('ShowAssetAdmin'), CheckboxField::create('ShowBlogAdmin'), CheckboxField::create('ShowHelpLink'), CheckboxField::create('ShowMessagesAdmin'), CheckboxField::create('ShowPortfolioAdmin'), CheckboxField::create('ShowReportAdmin'), CheckboxField::create('ShowSecurityAdmin'))); } }
/** * * @param FieldList $fields * @param string $url * @param Image $file * @return void */ public function updateFieldsForImage(FieldList $fields, $url, $file) { if (is_a($file, "HtmlEditorField_Image")) { $image = $file->getFile(); if ($image && $image->exists() && $image->Secured) { $previewImage = $fields->fieldByName('FilePreview'); $previewData = $previewImage->fieldByName('FilePreviewData'); $previewData->insertAfter($whoCanView = ReadonlyField::create("WhoCanViewHTML", _t('SecuredAssetAdmin.WHOCANVIEW', 'Who can view?'), $image->WhoCanViewHTML), 'LastEdited'); $previewData->insertAfter($embargo = ReadonlyField::create("EmbargoHTML", _t('SecuredAssetAdmin.Embargoing', 'Embargoing'), $image->EmbargoHTML), 'WhoCanViewHTML'); $previewData->insertAfter($expire = ReadonlyField::create("ExpireHTML", _t('SecuredAssetAdmin.Expiring', 'Expiring'), $image->ExpireHTML), 'EmbargoHTML'); $whoCanView->dontEscape = true; $embargo->dontEscape = true; $expire->dontEscape = true; } } }
/** * @param FieldList $fields */ public function updateCMSFields(FieldList $fields) { /** ========================================= * @var UploadField $twitterImage ===========================================*/ if (!$fields->fieldByName('Root.Settings')) { $fields->addFieldToTab('Root', TabSet::create('Settings')); } /** ----------------------------------------- * Details * ----------------------------------------*/ $twitterImage = UploadField::create('DefaultTwitterImage', 'Default Twitter Card Image'); $twitterImage->setDescription('Ideal size 560px * 750px'); $fields->findOrMakeTab('Root.Settings.TwitterCards'); $fields->addFieldsToTab('Root.Settings.TwitterCards', array(HeaderField::create('', 'Twitter Cards'), Textfield::create('DefaultTwitterHandle', 'Default Twitter Handle'), $twitterImage)); }