Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

DataObjectManager Module

Discuss the DataObjectManager module, and the related ImageGallery module.

Moderators: martimiz, UncleCheese, Sean, biapar, Willr, Ingo, swaiba, simon_w

Gallery holder page to hold multiple galleries?


Reply

7 Posts   2252 Views

Avatar
Salsy

18 May 2010 at 9:26am Community Member, 3 Posts

Is there such thing as a gallery holder page? Our developer is away for 2 more days and I need an *easy* solution to create a holder page to nest multiple galleries under. This page would need to be very much like the image gallery page with a single image, title & desc. Is there a simple solution? I really should read the silverstipe book sitting on a desk nearby :)

Avatar
3dgoo

18 May 2010 at 12:40pm Community Member, 133 Posts

Yes, the image gallery module works like this. You can create an Image Gallery Page, and that page can have multiple Albums inside it, and you can add images to any of these albums.

Example:
http://dataobjectmanager.carlinowebdesign.com/image-gallery-test/

Module:
http://silverstripe.org/imagegallery-module/

Avatar
Salsy

18 May 2010 at 1:18pm Community Member, 3 Posts

Thanks amped up. Sorry, I dont think i explained myself that well. What I actually need is a holder page to hold multiple galleries which in turn hold mulitple albums. So say my top level page was My Photography Portfiolio, this holds multiple galleries ( image gallery pages), which in turn hold multiple Albums of images. Basically im pretty sure its not an automatic feature of the gallery. At this stage my image gallery pages are nested under a plain page type. This needs to read the Image Gallery Pages beneath it, and return a list of image galleries with image, title and description. I fear it may be complicated ...

Avatar
3dgoo

18 May 2010 at 2:04pm Community Member, 133 Posts

Ah sorry Salsy, I misread your original Post.

Yes, you would need to create a new page type like 'GalleryHolderPage' and then program it to retrieve one photo and one description from each gallery, and then display it in your template.

It'll be simple once you've done this stuff before.

Avatar
UncleCheese

18 May 2010 at 2:19pm 4085 Posts

See Tutorial #2 in the docs for extending basic page types. They explain this quite well using a "NewsHolder" example.

Avatar
Saurayuit

30 July 2012 at 8:59pm Community Member, 5 Posts

Dear UncleCheese,

Tutorial#2 is not the solution.
Cause the "ImageGallery" use one "ImageResource".
So if I separate the gallery in two or three pages,
all of those will display same set of images.

Any solution to make multiple image gallery page that will display different set of images.

Avatar
Naren

22 November 2013 at 1:39am Community Member, 21 Posts

Hi all,

I want to create multiple images galleries on a single page like

Gallery 1.

Gallery 2.

Gallery 3.

I Have created a gallery page but do not know to show multiple galleries in a single page

My GalleryPage.php is :

<?php

class GalleryPage extends Page {
   
public static $has_many = array(
   'GalleryImages' => 'GalleryImage'
);

public function getCMSFields() {
   
   $fields = parent::getCMSFields();
      
   $gridFieldConfig = GridFieldConfig_RecordEditor::create();
   $gridFieldConfig->addComponent(new GridFieldBulkEditingTools());
   $gridFieldConfig->addComponent(new GridFieldBulkImageUpload());
   $gridFieldConfig->addComponent(new GridFieldSortableRows('SortOrder'));
   
   $gridfield = new GridField("GalleryImages", "Gallery Images", $this->GalleryImages()->sort("SortOrder"), $gridFieldConfig);
            
   $fields->addFieldToTab('Root.GalleryImages', $gridfield);
      
   return $fields;      
}
}

class GalleryPage_Controller extends Page_Controller {
   
   public static $allowed_actions = array (
   );

   public function getGalleryImages() {
      return $this->GalleryImages()->sort("SortOrder");
   }
   public function init() {
      parent::init();
   }

}

And GalleryImage.php is :

<?php

class GalleryImage extends DataObject {

public static $db = array(   
    'SortOrder' => 'Int',
    'Title' => 'Varchar'
);

// One-to-one relationship with gallery page
public static $has_one = array(
'Image' => 'Image',
'GalleryPage' => 'GalleryPage'   
);

// tidy up the CMS by not showing these fields
public function getCMSFields() {
      $fields = parent::getCMSFields();
      $fields->removeFieldFromTab("Root.Main","GalleryPageID");
      $fields->removeFieldFromTab("Root.Main","SortOrder");
      return $fields;      
}

// Tell the datagrid what fields to show in the table
public static $summary_fields = array(
'ID' => 'ID',
    'Title' => 'Title',
    'Thumbnail' => 'Thumbnail'
    'Link' => 'Link'
   
);

// this function creates the thumnail for the summary fields to use
public function getThumbnail() {
return $this->Image()->CMSThumbnail();
}

}

Please guide me how can i show the multiple galleries in a single page.

Thanks

Naren