1. ### SITE CONFIG ###
  2. <?php
  3. class CustomSiteConfig extends DataObjectDecorator {
  4. function extraStatics() {
  5. return array(
  6. 'db' => array(
  7. 'Company' => 'Text',
  8. 'Address' => 'Text',
  9. 'Email' => 'Text',
  10. 'Telephone' => 'Text',
  11. 'Fax' => 'Text',
  12. 'KvK' => 'Text',
  13. 'Skype' => 'Text',
  14. 'Twitter' => 'Text',
  15. 'Facebook' => 'Text',
  16. 'LinkedIn' => 'Text',
  17. 'YouTube' => 'Text',
  18. ),
  19. 'has_one' => array(
  20. 'SiteLogo' => 'Image',
  21. ),
  22. 'has_many' => array(
  23. 'HeaderSlides' => 'HeaderSlide',
  24. )
  25. );
  26. }
  27. public function updateCMSFields(FieldSet &$fields) {
  28. $fields->insertBefore(new Tab('General', 'General'), 'Access');
  29. $fields->addFieldToTab("Root.General", new TextField("Company", "Bedrijfsnaam"));
  30. $fields->addFieldToTab("Root.General", new TextareaField("Address", "Adresgegevens"));
  31. $fields->addFieldToTab("Root.General", new TextField("Email", "Email adres"));
  32. $fields->addFieldToTab("Root.General", new TextField("Telephone", "Telefoonnummer"));
  33. $fields->addFieldToTab("Root.General", new TextField("Fax", "Fax nummer"));
  34. $fields->insertBefore(new Tab('Social', 'Social Media'), 'Access');
  35. $fields->addFieldToTab("Root.Social", new TextField("Twitter", "Twitter Link"));
  36. $fields->addFieldToTab("Root.Social", new TextField("Facebook", "Facebook Link"));
  37. $fields->addFieldToTab("Root.Social", new TextField("LinkedIn", "LinkedIn Link"));
  38. $fields->addFieldToTab("Root.Social", new TextField("YouTube", "YouTube Link"));
  39. $fields->removeByName("Tagline");
  40. $fields->insertBefore(new Tab('Header', 'Header'), 'Access');
  41. /* HEADER PHOTOS */
  42. $manager = new FileDataObjectManager(
  43. $this->owner,
  44. 'HeaderSlides', // relation name
  45. 'HeaderSlide', // class name of the DataObject
  46. 'Image', // name of the file relation in the DataObject
  47. array(
  48. 'Title' => 'Title',
  49. 'Date' => 'Date',
  50. 'Comment' => 'Comment',
  51. ), // headings
  52. 'getCMSFields_forPopup' // name of the function for the popup fields
  53. );
  54. $manager->setParentClass('SiteConfig');
  55. $manager->setAllowedFileTypes(array('JPG', 'jpg', 'PNG', 'png'));
  56. $manager->setUploadFolder('Uploads/header');
  57. /**/
  58. $fields->addFieldToTab('Root.Header', $manager);
  59. }
  60. }
  61. ### HEADER SLIDE ###
  62. <?php
  63. class HeaderSlide extends DataObject {
  64. static $db = array (
  65. 'Date' => 'Date',
  66. 'Title' => 'Text',
  67. );
  68. static $has_one = array (
  69. 'Image' => 'Image',
  70. 'SiteConfig' => 'SiteConfig',
  71. );
  72. public function getCMSFields_forPopup() {
  73. $fields = new FieldSet();
  74. $fields->push(new DatePickerField('Date'));
  75. $fields->push(new TextField('Title'));
  76. $fields->push(new FileUploadField('Image','Upload file'));
  77. return $fields;
  78. }
  79. public function onBeforeWrite() {
  80. parent::onBeforeWrite();
  81. $this->Date = $this->T()->Date;
  82. if(!$this->Comment) {
  83. $this->Comment = "";
  84. }
  85. }
  86. }
Comments powered by Disqus