Jump to:

22992 Posts in 11842 Topics by 2828 members

General Questions

SilverStripe Forums » General Questions » A simple Question? Started a New Post !!

General questions about getting started with SilverStripe that don't fit in any of the categories above.

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

Page: 1
Go to End
Author Topic: 674 Views
  • Stefdv
    Avatar
    Community Member
    110 Posts

    A simple Question? Started a New Post !! Link to this post

    Okay, so i already have a SS site up and running. It's ideal for a rather basic website but...

    Now i want to take it to the next step and i'm totally lost. I've been playing with Tutorial 5 and it works great but it's to complex for what i want and i don't know how to 'rip' it. I've been playing with ModelAdmin as well but i guess i could use some more documentation on that.

    Here's what i want. A TVserie database.

    - A serie has Several seasons (1-to many ?)
    - A Season has several episodes (1 - to many ?)
    - An episode has 1 serie and 1 season ( or is this not nessasary?)

    So i want to select a serie -> go to the seriepage -> choose the season -> get a list of episodes

    I did make the seriepage ,seasonpage and episodepage resulting in 3 tables

    class SerieAdmin extends ModelAdmin {   

    public static $managed_models = array(
       'Serie',
       'Season',
          'Episode',
    );

    static $url_segment = 'series';
    static $menu_title = 'My Serie Admin';

    }
    class Serie extends DataObject {   
    static $db = array(
       'Title' => 'Varchar'    
       );
       
        static $has_many = array(      
          'Seasons' => 'Season',
          );

    }

    class Season extends DataObject {   

       static $has_one = array(
       'Serie' => 'Serie'          
       );
       static $has_many = array(
          'Episodes' => 'Episode'
       );

       static $db = array(
       'Name' => 'Varchar',
       );

    }

    class Episode extends DataObject {

    static $has_one = array(
       'Season' => 'Season'
        );

       static $db = array(
       'Name' => 'Varchar'
    );
       
    }
    -----------

    But now i'm totally lost, where to go now to display it all the way i want.???

  • Stefdv
    Avatar
    Community Member
    110 Posts

    Re: A simple Question? Started a New Post !! Link to this post

    Okay, in fact it kinda works...
    I have my 3 Tabs Serie,Season and Episode
    I create a Serie - no problem
    i create a Season ; i can choose the serie i want to create it for, no problem
    i create an episode; i choose the serie it's for and then i choose the season.....ahhhh

    The problem now is that every serie has several seasons, but they are all called Season 01, Season 02 etc.
    So when i create an Episode and want to choose the Season i get a list of all seasons ( meaning, several seasons 01, several seasons 02 etc) So i'll never know if i choose the right season.

    <Update>

    I've taken a slightly different approach...

    I removed the 'Season' DataObject and made it a 'Enum' value in the 'Episode' DataObject since the values are the same for every 'Serie'. So the 'Season' table is gone, and now i have a Season dropdownfield in the Episode Tab.

    <end of Update>

    Then there is the display issue...
    I did use the genericview module but it just gives me a list of the series (that's what i chose in the collectors tab), it doesn't link to a page with the seasons/episodes.

    I made a seperate page where i used return DataObject::get('serie'), but that also just gives me a webpage with a list of all my series. Still not linking to a page with the corresponding seasons...

    Can somebody please help me out here?

  • Stefdv
    Avatar
    Community Member
    110 Posts

    Re: A simple Question? Started a New Post !! Link to this post

    I made a TVSerieHolder, and ChildrenPages 'TVSerie'.
    So now when i create a TVSerie page for every Serie i can actually navigate to the corresponding Seriepage (well after all that's the whole point of having a CMS, right?).

    But how do i tell this page to only show the corresponding Episodes? Because now it shows all Episodes
    ( function EpisodeList(){return DataObject::get('Episode'); } ) How do i use some kind of filtering?

    This is what i want;

    eg;
    X-Files ---go to the X-Files Pages (Works)
    IF (X-Files has more than one Season)
    Show Seasons (Then let me choose which season i want to see the episodes for)
    ELSE (show all Season 01 Episodes)

    I think i need to use something with $this but i can't figure it out.

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