Jump to:

3439 Posts in 1028 Topics by 869 members

Template Questions

SilverStripe Forums » Template Questions » render dataobjects with Page?

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

Page: 1
Go to End
Author Topic: 1871 Views
  • Bambii7
    Avatar
    Community Member
    254 Posts

    render dataobjects with Page? Link to this post

    hey all,
    I'm still coming to terms with the contoller class. Don't understand yet how to customise URL variables. But have managed to work with default Action and ID which is about all I need (for now).

    I have a page type "rental cars" which has many "car objects" attached. Rather than using child pages. To view a car object I've added this function to the rental cars page.

       function Show() {
          $URLParams = Director::urlParams();
          $CarPage = DataObject::get_by_id('RentalCarObject', $URLParams['OtherID']);
          return $this->customise(array("Car" => $CarPage))->renderWith("CarPage");
       }

    That's working for me when I enter mysite.com/rentalcarpage/show/1

    The question is how to get this rendering as a Layout, so it's wrapped by the default Page?

    I was about to copy paste all my styles and wrapper divs into "CarPage.ss", but this doesn't seem very intelligent. I've been meaning to suss this out for a while to handle large a number of DataOjects outside of the page tree.

    Again help is much appreciated
    Lex

  • Willr
    Avatar
    Forum Moderator
    5497 Posts

    Re: render dataobjects with Page? Link to this post

    I think if you pass an array of values (one being page) to the render with it should include the Page.ss and the CarPage.ss from layout

    renderWith(array("CarPage", "Page"));

  • Bambii7
    Avatar
    Community Member
    254 Posts

    Re: render dataobjects with Page? Link to this post

    HOT DANG! you're right.
    Thank heaps for your help willr.
    I checked it out on the API and you can pass a String or an Array http://api.silverstripe.org/2.4/sapphire/view/ViewableData.html#methodrenderWith

    I've looked at it before but didn't make sense to me until you pointed it out.

    Again many thanks.

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