- ### SITE CONFIG ###
- <?php
- class CustomSiteConfig extends DataObjectDecorator {
- function extraStatics() {
- return array(
- 'db' => array(
- 'Company' => 'Text',
- 'Address' => 'Text',
- 'Email' => 'Text',
- 'Telephone' => 'Text',
- 'Fax' => 'Text',
- 'KvK' => 'Text',
- 'Skype' => 'Text',
- 'Twitter' => 'Text',
- 'Facebook' => 'Text',
- 'LinkedIn' => 'Text',
- 'YouTube' => 'Text',
- ),
- 'has_one' => array(
- 'SiteLogo' => 'Image',
- ),
- 'has_many' => array(
- 'HeaderSlides' => 'HeaderSlide',
- )
- );
- }
- public function updateCMSFields(FieldSet &$fields) {
- $fields->insertBefore(new Tab('General', 'General'), 'Access');
- $fields->addFieldToTab("Root.General", new TextField("Company", "Bedrijfsnaam"));
- $fields->addFieldToTab("Root.General", new TextareaField("Address", "Adresgegevens"));
- $fields->addFieldToTab("Root.General", new TextField("Email", "Email adres"));
- $fields->addFieldToTab("Root.General", new TextField("Telephone", "Telefoonnummer"));
- $fields->addFieldToTab("Root.General", new TextField("Fax", "Fax nummer"));
- $fields->insertBefore(new Tab('Social', 'Social Media'), 'Access');
- $fields->addFieldToTab("Root.Social", new TextField("Twitter", "Twitter Link"));
- $fields->addFieldToTab("Root.Social", new TextField("Facebook", "Facebook Link"));
- $fields->addFieldToTab("Root.Social", new TextField("LinkedIn", "LinkedIn Link"));
- $fields->addFieldToTab("Root.Social", new TextField("YouTube", "YouTube Link"));
- $fields->removeByName("Tagline");
- $fields->insertBefore(new Tab('Header', 'Header'), 'Access');
- /* HEADER PHOTOS */
- $manager = new FileDataObjectManager(
- $this->owner,
- 'HeaderSlides', // relation name
- 'HeaderSlide', // class name of the DataObject
- 'Image', // name of the file relation in the DataObject
- array(
- 'Title' => 'Title',
- 'Date' => 'Date',
- 'Comment' => 'Comment',
- ), // headings
- 'getCMSFields_forPopup' // name of the function for the popup fields
- );
- $manager->setParentClass('SiteConfig');
- $manager->setAllowedFileTypes(array('JPG', 'jpg', 'PNG', 'png'));
- $manager->setUploadFolder('Uploads/header');
- /**/
- $fields->addFieldToTab('Root.Header', $manager);
- }
- }
- ### HEADER SLIDE ###
- <?php
- class HeaderSlide extends DataObject {
- static $db = array (
- 'Date' => 'Date',
- 'Title' => 'Text',
- );
- static $has_one = array (
- 'Image' => 'Image',
- 'SiteConfig' => 'SiteConfig',
- );
- public function getCMSFields_forPopup() {
- $fields = new FieldSet();
- $fields->push(new DatePickerField('Date'));
- $fields->push(new TextField('Title'));
- $fields->push(new FileUploadField('Image','Upload file'));
- return $fields;
- }
- public function onBeforeWrite() {
- parent::onBeforeWrite();
- $this->Date = $this->T()->Date;
- if(!$this->Comment) {
- $this->Comment = "";
- }
- }
- }