Jump to:

7935 Posts in 1536 Topics by 943 members

DataObjectManager Module

SilverStripe Forums » DataObjectManager Module » Gallery holder page to hold multiple galleries?

Discuss the DataObjectManager module, and the related ImageGallery module.

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

Page: 1
Go to End
Author Topic: 2161 Views
  • Salsy
    Avatar
    Community Member
    3 Posts

    Gallery holder page to hold multiple galleries? Link to this post

    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

  • ampedup
    Avatar
    Community Member
    133 Posts

    Re: Gallery holder page to hold multiple galleries? Link to this post

    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/

  • Salsy
    Avatar
    Community Member
    3 Posts

    Re: Gallery holder page to hold multiple galleries? Link to this post

    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 ...

  • ampedup
    Avatar
    Community Member
    133 Posts

    Re: Gallery holder page to hold multiple galleries? Link to this post

    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.

  • UncleCheese
    Avatar
    4085 Posts

    Re: Gallery holder page to hold multiple galleries? Link to this post

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

  • Saurayuit
    Avatar
    Community Member
    5 Posts

    Re: Gallery holder page to hold multiple galleries? Link to this post

    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.

  • Naren
    Avatar
    Community Member
    21 Posts

    Re: Gallery holder page to hold multiple galleries? Link to this post

    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

    2161 Views
Page: 1
Go to Top

Want to know more about the company that brought you SilverStripe? Then check out SilverStripe.com

Comments on this website? Please give feedback.