Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace SilverStripe\Masters;
- use Page;
- use SilverStripe\Assets\Image;
- use SilverStripe\AssetAdmin\Forms\UploadField;
- use SilverStripe\Forms\CheckboxSetField;
- use SilverStripe\Forms\DropdownField;
- use SilverStripe\Forms\HeaderField;
- use SilverStripe\Forms\TextareaField;
- use SilverStripe\Forms\TextField;
- class HeaderSection extends Page {
- private static $singular_name = 'Header Section';
- private static $plural_name = 'Headers Sections';
- private static $description = 'Headers section part to be used in upper part of page.';
- private static $icon = '';
- private static $db = [
- 'Maintitle' => 'Varchar(128)',
- 'Subtitle' => 'Varchar(128)',
- 'Kicker' => 'Varchar(128)',
- 'LeadContent' => 'HTMLText',
- 'Jumbotron' => "Enum('None,Graphical,BackgroundImage,Graphical-Full,BackgroundImage-Full','None')",
- 'Inverse' => 'Boolean',
- 'ElementClass' => 'Varchar(192)',
- 'SubElementClass' => 'Varchar(192)',
- 'RowExtraClass' => 'Varchar(192)',
- 'MainContentClass' => 'Varchar(192)',
- 'JumbotronClass' => 'Varchar(192)',
- 'ContainerFluid' => 'Boolean',
- 'TitleClass' => 'Varchar(192)',
- 'HideTitles' => 'Boolean',
- 'SubtitleClass' => 'Varchar(192)',
- 'KickerClass' => 'Varchar(192)',
- 'LeadContentClass' => 'Varchar(192)'
- ];
- private static $has_one = [
- 'MainImage' => Image::class,
- 'BackgroundImage' => Image::class
- ];
- private static $defaults = [
- 'MainContentClass' => 'col-md-12',
- 'ContainerFluid' => '0',
- 'JumbotronClass' => 'col-md-12',
- 'ElementClass' => '',
- 'LeadContentClass' => '',
- 'KickerClass' => '',
- 'TitleClass' => '',
- 'SubtitleClass' => ''
- ];
- private function getJumbotronStyle() {
- return array(
- 'None' => _t('Content.JUMBOTRONNONE', 'None'),
- 'Graphical' => _t('Content.JUMBOTRONGRAPHICAL', 'Graphical'),
- 'BackgroundImage' => _t('Content.JUMBOTRONBACKGROUNDIMAGE', 'Background image'),
- 'Graphical-Full' => _t('Content.JUMBOTRONGRAPHICALFULL', 'Full sized graphical element'),
- 'BackgroundImage-Full' => _t('Content.JUMBOTRONBACKGROUNDIMAGEFULL', 'Full sized background image')
- );
- }
- function getCMSFields() {
- // Settings for UploadFields : Main Image
- $UploadField = UploadField::create("MainImage", _t('Content.MAINIMAGE','Main image'));
- $UploadField
- ->setFolderName('Uploads/images/mainimages/')
- ->setDisplayFolderName('Uploads/images/mainimages/')
- ->getValidator()->setAllowedExtensions(array('jpg', 'gif', 'png'));
- $UploadField2 = UploadField::create("BackgroundImage", _t('Content.ELEMENTBACKGROUNDIMAGE','Element backgroundimage'));
- $UploadField2
- ->setFolderName('Uploads/images/backgrounds/')
- ->setDisplayFolderName('Uploads/images/backgrounds/')
- ->getValidator()->setAllowedExtensions(array('jpg', 'gif', 'png'));
- $fields = parent::getCMSFields();
- $fields->findOrMakeTab('Root.Main', _t('Content.TABHEADER','Header'));
- $fields->addFieldsToTab('Root.Main', [
- HeaderField::create(_t('Content.MASTERHEADING','Masterheading')),
- TextField::create("Kicker", _t('Content.KICKER','Kicker text before title'))
- ->setDescription(_t('Content.KICKERHELP','Small introduction text')),
- TextField::create("Maintitle", _t('Content.MAINTITLE','Main title'))
- ->setDescription(_t('Content.MAINTITLEHELP','If used, overrides page name.')),
- CheckboxField::create('HideTitles', _t('Content.HIDETITLES','Hide titles?'))
- ->setDescription(_t('Content.HIDETITLESHELP','Hide Maintitle and Master heading')),
- TextField::create("Subtitle", _t('Content.SUBTITLE','Subtitle under the title')),
- $leadContentField = HtmlEditorField::create('LeadContent', _t('Content.LEADCONTENT','Introduction content'))
- ->setDescription(_t('Content.LEADCONTENTHELP','Write short and effective lead text about the content. Change style, if needed.')),
- HeaderField::create(_t('Content.IMAGES','Images')),
- $UploadField->setDescription(_t('Content.MAINIMAGEHELP','Includes automatic scaling for image.')),
- $UploadField2->setDescription(_t('Content.ELEMENTBACKGROUNDIMAGEHELP','Use for big backgrounds in element.')),
- HeaderField::create(_t('Content.CONTENT','Main content in one column'))
- ], 'Content');
- $fields->findOrMakeTab('Root.Main', _t('Content.TABHEADER','Header'));
- $fields->addFieldsToTab('Root.Main', [
- TextField::create("MainContentClass", _t('Content.MAINCONTENTCLASS','Page content class'))
- ->setDescription(_t('Content.MAINCONTENTCLASSHELP','You can use Bootstrap grid classes. Default value: col-md-12 To center content: text-center'))
- ]);
- $fields->findOrMakeTab('Root.OPTIONS', _t('Content.TABOPTIONS','Options'));
- $fields->addFieldsToTab('Root.OPTIONS', [
- HeaderField::create(_t('Content.PAGESTYLING','Settings for page layout')),
- TextField::create("ElementClass", _t('Content.ELEMENTCLASS','Bootstrap class for element'))
- ->setDescription(_t('Content.ELEMENTCLASSHELP','Usage e.g. block-fill-height block-fill-height-half text-center etc.')),
- TextField::create("SubElementClass", _t('Content.SUBELEMENTCLASS','Bootstrap class for subelement'))
- ->setDescription(_t('Content.SUBELEMENTCLASSHELP','Next to Block-element. Usage e.g. block-xs-middle block-md-bottom etc.')),
- CheckboxField::create('ContainerFluid', _t('Content.CONTAINERFLUID','Fluid Container?'))
- ->setTitle (_t('Content.CONTAINERFLUIDTITLE','Fluid container?'))
- ->setName ('ContainerFluid')
- ->setDescription(_t('Content.CONTAINERFLUIDHELP','Makes element full width with Bootstrap container-fluid class.')),
- TextField::create("RowExtraClass", _t('Content.ROWEXTRACLASS','Extra row class'))
- ->setDescription(_t('Content.ROWEXTRACLASSHELP','Add extra class for Bootstrap row, like row-valign-middle')),
- HeaderField::create(_t('Content.MASTERHEADSTYLING','Masterheading styling options')),
- DropdownField::create('Jumbotron', _t('Content.JUMBOTRON', 'Jumbotron'), $this->getJumbotronStyle())
- ->setDescription(_t('Content.JUMBOTRONHELP','Specify, do you need jumbotron element and in what style.')),
- TextField::create("JumbotronClass", _t('Content.JUMBOTRONCLASS','Jumbotron css-class'))
- ->setDescription(_t('Content.JUMBOTRONCLASSHELP','Used for col-xx-x (default col-md-12)')),
- CheckboxField::create('Inverse', _t('Content.INVERSE','Inverse?'))
- ->setDescription(_t('Content.INVERSEHELP','Light text over dark background')),
- HeaderField::create(_t('Content.MASTERHEADTYPOGRAPHY','Masterhead typography styling options')),
- TextField::create("TitleClass", _t('Content.TITLECLASS','Title css-class'))
- ->setDescription(_t('Content.TITLECLASSHELP','Usage e.g. block-title text-muted text-uppercase')),
- TextField::create("KickerClass", _t('Content.KICKERCLASS','Kicker css-class'))
- ->setDescription(_t('Content.KICKERCLASSHELP','Usage e.g. text-muted text-uppercase')),
- TextField::create("SubtitleClass", _t('Content.SUBTITLECLASS','Subtitle css-class'))
- ->setDescription(_t('Content.SUBTITLECLASSHELP','Usage e.g. text-muted text-uppercase')),
- TextField::create("LeadContentClass", _t('Content.LEADCONTENTCLASS','Lead content css-class'))
- ->setDescription(_t('Content.LEADCONTENTCLASSHELP','Usage e.g. text-muted'))
- ]);
- $leadContentField->addExtraClass('stacked')->setRows(3);
- return $fields;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement