- <?php
- class GalleryHolder extends Page {
- }
- class GalleryHolder_Controller extends Page_Controller {
- }
- class GalleryAlbum extends Page {
- private static $db = array(
- 'Heading' => 'Varchar(100)',
- );
- private static $extensions = array(
- "GalleryImageExtension",
- );
- private static $many_many = array(
- 'Quotes' => 'Quotes',
- );
- private static $has_one = array(
- 'BackgroundImage' => 'Image'
- );
- private static $has_many = array(
- 'GalleryImage' => 'GalleryImage'
- );
- public function getThumbnail() {
- return $this->Images()->CMSThumbnail();
- }
- public function getCMSFields() {
- $fields=parent::getCMSFields();
- $config = GridFieldConfig_RelationEditor::create();
- // set up the relatino manager
- $config->addComponent(new GridFieldManyRelationHandler(), 'GridFieldPaginator');
- // add the imageupload field for main background
- $fields->addFieldToTab("Root.Main", new UploadField('BackgroundImage'));
- // add the page title field
- $fields->addFieldToTab("Root.Main", new TextField("Heading", "Page Title"));
- // make the tab for images
- $fields->addFieldToTab('Root', Tab::create('Quotes', 'Quotes'));
- $fields->addFieldToTab('Root.Quotes', GridField::create(
- 'Quotes',
- 'Quotes',
- $this->Quotes(),
- $config
- ));
- return $fields;
- }
- public function GetGallery(){
- // get the gallery for 'this' page
- $res=galleryalbum::get()->byID($this->ID)->GalleryImage();
- return($res);
- }
- public function GetQuotes(){
- // get the gallery for 'this' page
- $res=quotes::get();
- return($res);
- }
- }
- class GalleryAlbum_Controller extends Page_Controller {
- }
- class GalleryImageExtension extends DataExtension {
- private static $has_many = array(
- "GalleryImage" => "GalleryImage",
- );
- public function updateCMSFields(FieldList $fields) {
- $fields->addFieldToTab('Root', Tab::create('Images', 'Gallery Images'));
- $fields->addFieldToTab('Root.Images', GridField::create(
- 'GalleryImage',
- 'Gallery Images',
- $this->owner->GalleryImage(),
- GridFieldConfig_RelationEditor::create()
- ));
- }
- }
- class GalleryImage extends Dataobject {
- private static $db = array(
- 'Title' => 'Varchar(100)',
- 'Blurb' => 'Varchar(255)'
- );
- private static $has_one = array(
- 'Image' => 'Image',
- );
- private static $belongs_many_many = array(
- 'Albums' => 'GalleryAlbum',
- );
- public function getCMSFields() {
- $fields=parent::getCMSFields();
- // add the page title field
- $fields->addFieldToTab("Root.Main", new TextAreaField("Blurb", "Blurb"));
- return $fields;
- }
- }
- class Quotes extends Dataobject {
- private static $db = array(
- 'QuoteTextitle' => 'Varchar(255)',
- 'Author' => 'Varchar(100)',
- 'Link' => 'Varchar(1255)'
- );
- private static $has_one = array(
- );
- private static $belongs_many_many = array(
- );
- }
- ?>