public function updateCMSFields(FieldList $fields) { $fields->removeByName('Theme'); if (Config::inst()->get('SiteConfig', 'can_select_theme')) { $themeDropdownField = new DropdownField("Theme", _t('SiteConfig.THEME', 'Theme'), $this->getAvailableThemesExtended()); $themeDropdownField->setEmptyString(_t('SiteConfig.DEFAULTTHEME', '(Use default theme)')); $fields->addFieldToTab('Root.Theme', $themeDropdownField); } // Colors $fields->addFieldToTab('Root.Theme', new HeaderField('ColorH', _t('ThemeSiteConfigExtension.ColorH', 'Colors'))); $fields->addFieldToTab('Root.Theme', $BaseColor = new MiniColorsField('BaseColor', _t('ThemeSiteConfigExtension.BaseColor', 'Base Color'))); $BaseColor->setDescription(_t('ThemeSiteConfigExtension.BaseColorDesc', "The background color of your website")); $fields->addFieldToTab('Root.Theme', new MiniColorsField('PrimaryColor', _t('ThemeSiteConfigExtension.PrimaryColor', 'Primary Color'))); $fields->addFieldToTab('Root.Theme', new MiniColorsField('HoverColor', _t('ThemeSiteConfigExtension.HoverColor', 'Hover Color'))); $fields->addFieldToTab('Root.Theme', new MiniColorsField('SecondaryColor', _t('ThemeSiteConfigExtension.SecondaryColor', 'Secondary Color'))); $fields->addFieldToTab('Root.Theme', new MiniColorsField('CtaColor', _t('ThemeSiteConfigExtension.CtaColor', 'Call To Action Color'))); // Fonts $fields->addFieldToTab('Root.Theme', new HeaderField('FontsH', _t('ThemeSiteConfigExtension.FontsH', 'Fonts'))); $fields->addFieldToTab('Root.Theme', $hf = new TextField('HeaderFont', _t('ThemeSiteConfigExtension.HeaderFont', 'Header Font'))); $fields->addFieldToTab('Root.Theme', $hfw = new TextField('HeaderFontWeight', _t('ThemeSiteConfigExtension.HeaderFontWeight', 'Header Font Weight'))); $fields->addFieldToTab('Root.Theme', $bf = new TextField('BodyFont', _t('ThemeSiteConfigExtension.BodyFont', 'Body Font'))); $fields->addFieldToTab('Root.Theme', $bfw = new TextField('BodyFontWeight', _t('ThemeSiteConfigExtension.BodyFontWeight', 'Body Font Weight'))); $fields->addFieldToTab('Root.Theme', $gf = new TextField('GoogleFonts', _t('ThemeSiteConfigExtension.GoogleFonts', 'Google Fonts'))); $hf->setAttribute('placeholder', 'Arial, Helvetica, sans-serif'); $bf->setAttribute('placeholder', 'Arial, Helvetica, sans-serif'); $gf->setDescription('family=Open+Sans:400italic,400,600&subset=latin,latin-ext'); // Images $fields->addFieldToTab('Root.Theme', new HeaderField('ImagesH', _t('ThemeSiteConfigExtension.ImagesH', 'Images'))); $fields->addFieldToTab('Root.Theme', ImageUploadField::createForClass($this, 'Logo', _t('ThemeSiteConfigExtension.Logo', 'Logo'))); $fields->addFieldToTab('Root.Theme', $icon = ImageUploadField::createForClass($this, 'Icon', _t('ThemeSiteConfigExtension.Icon', 'Icon'))); $fields->addFieldToTab('Root.Theme', ImageUploadField::createForClass($this, 'FooterImage', _t('ThemeSiteConfigExtension.FooterImage', 'Footer Image'))); if (is_file(Director::baseFolder() . $this->FaviconPath())) { $icon->setDescription(_t('ThemeSiteConfigExtension.FaviconPreview', 'Favicon preview') . ' <img src="' . $this->FaviconPath() . '" alt="Favicon" />'); } else { $icon->setDescription(_t('ThemeSiteConfigExtension.NoFavicon', 'No favicon created for this site')); } $fields->addFieldToTab('Root.Theme', ImageUploadField::createForClass($this, 'BackgroundImages', _t('ThemeSiteConfigExtension.BackgroundImages', 'Background Images'))); $fields->addFieldToTab('Root.Theme', new DropdownField('BackgroundRepeat', _t('ThemeSiteConfigExtension.BackgroundRepeat', 'Background Repeat'), array(self::BACKGROUND_NO_REPEAT => 'no repeat', self::BACKGROUND_REPEAT => 'repeat', self::BACKGROUND_REPEAT_X => 'repeat x', self::BACKGROUND_REPEAT_Y => 'repeat y'))); if (Director::isDev() || Permission::check('ADMIN')) { $fields->addFieldToTab('Root.Theme', new HeaderField('ThemeDevHeader', 'Dev tools')); $fields->addFieldToTab('Root.Theme', new CheckboxField('RefreshTheme')); $fields->addFieldToTab('Root.Theme', new CheckboxField('RefreshIcon')); } // Simple Google Analytics helper, disable if other extension are found if (!$this->owner->hasExtension('GoogleConfig') && !$this->owner->hasExtension('ZenGoogleAnalytics')) { $fields->addFieldToTab('Root.Main', $ga = new TextField('GoogleAnalyticsCode')); $ga->setAttribute('placeholder', 'UA-0000000-00'); } return $fields; }