/** * @param string $name * @param string $label * @param string $mode * * @return CodeEditorField */ protected function getCodeEditorField($name, $label, $mode) { $field = new CodeEditorField($name, $label); $field->setMode($mode); $field->setTemplate("ReflowCodeEditorField"); $field->setFieldHolderTemplate("ReflowCodeEditorFieldHolder"); return $field; }
public function updateCMSFields(FieldList $fields) { if (permission::check('ADMIN')) { $fields->addFieldToTab('Root.AdditionalCode', $codeField = new CodeEditorField('AdditionalCode', 'Additional HTML/JS/CSS Code', 50)); $codeField->addExtraClass('stacked'); $codeField->setRows(45); $codeField->setMode('html'); } if ($this->owner->ClassName == "Page") { $fields->addFieldToTab("Root.Columns", new HTMLEditorField("LeftColumn", "Left Column Content")); $fields->addFieldToTab("Root.Columns", new HTMLEditorField("CenterColumn", "Center Column Content")); $fields->addFieldToTab("Root.Columns", new HTMLEditorField("RightColumn", "Right Column Content")); $fields->addFieldToTab("Root.Sidebar", new HTMLEditorField("SidebarContent", "Sidebar Content")); } return $fields; }
public function getCMSFields() { $fields = parent::getCMSFields(); $config = EmailTemplate::config(); if (!$this->Theme) { $this->Theme = MandrillEmail::config()->default_theme; } if (!$this->Template) { $this->Template = MandrillEmail::config()->default_template; } if ($config->allow_configure_template || Permission::check('ADMIN')) { $templates = MandrillEmail::getAvailablesTemplates(); $fields->replaceField('Template', $templateDropdown = new DropdownField('Template', 'Template', $templates)); } else { $fields->removeByName('Template'); } if ($config->allow_configure_theme || Permission::check('ADMIN')) { $themes = MandrillEmail::getAvailableThemes(); $fields->replaceField('Theme', $themeDropdown = new DropdownField('Theme', 'Theme', array_combine($themes, $themes))); } else { $fields->removeByName('Theme'); } $objectsSource = array(); $dataobjects = ClassInfo::subclassesFor('DataObject'); foreach ($dataobjects as $dataobject) { if ($dataobject == 'DataObject') { continue; } $objectsSource[$dataobject] = $dataobject; } asort($objectsSource); // form-extras integration if (class_exists('TableField')) { $fields->replaceField('ExtraModels', $extraModels = new TableField('ExtraModels', 'Extra Models')); $extraModels->addColumn('Name'); $extraModels->addColumn('Model', null, TableField::TYPE_SELECT, null, array('ctrlOptions' => $objectsSource)); } else { if (class_exists('CodeEditorField')) { $fields->replaceField('ExtraModels', $extraModelsCode = new CodeEditorField('ExtraModels', 'Extra Models')); $extraModelsCode->setMode('json'); } } // form-extras integration if (class_exists('ComboField')) { $categories = EmailTemplate::get()->column('Category'); $fields->replaceField('Category', new ComboField('Category', 'Category', array_combine($categories, $categories))); } $fields->dataFieldByName('Callout')->setRows(5); $codeField = $fields->dataFieldByName('Code'); $codeField->setAttribute('placeholder', _t('EmailTemplate.CODEPLACEHOLDER', 'A unique code that will be used in code to retrieve the template, e.g.: my-email')); if ($this->Code) { $codeField->setReadonly(true); } // Merge fields helper $fields->addFieldToTab('Root.Main', new HeaderField('MergeFieldsHelperTitle', _t('EmailTemplate.AVAILABLEMERGEFIELDSTITLE', 'Available merge fields'))); $content = ''; $baseFields = array('To', 'Cc', 'Bcc', 'From', 'Subject', 'Body', 'BaseURL', 'Controller'); foreach ($baseFields as $baseField) { $content .= $baseField . ', '; } $content = trim($content, ', ') . '<br/><br/>'; $models = $this->getAvailableModels(); $modelsByClass = array(); $classes = array(); foreach ($models as $name => $model) { $classes[] = $model; if (!isset($modelsByClass[$model])) { $modelsByClass[$model] = array(); } $modelsByClass[$model][] = $name; } $classes = array_unique($classes); foreach ($classes as $model) { if (!class_exists($model)) { continue; } $props = Config::inst()->get($model, 'db'); $o = singleton($model); $methods = array_diff($o->allMethodNames(true), $o->allMethodNames()); $content .= '<strong>' . $model . ' (' . implode(',', $modelsByClass[$model]) . ') :</strong><br/>'; foreach ($props as $fieldName => $fieldType) { $content .= $fieldName . ', '; } foreach ($methods as $method) { if (strpos($method, 'get') === 0) { $content .= $method . ', '; } } $content = trim($content, ', ') . '<br/>'; } $content .= "<div class='message info'>" . _t('EmailTemplate.ENCLOSEFIELD', 'To escape a field from surrounding text, you can enclose it between brackets, eg: {$CurrentMember.FirstName}.') . '</div>'; $fields->addFieldToTab('Root.Main', new LiteralField('MergeFieldsHelper', $content)); if ($this->ID) { $fields->addFieldToTab('Root.Preview', $this->previewTab()); } return $fields; }