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.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

Data Model Questions /

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

Custom Controller limitations compared to ContentController?


Go to End


2 Posts   2704 Views

Avatar
zatic

Community Member, 3 Posts

21 December 2009 at 1:30am

Hi Community,

I have a few questions about custom controllers:

From the documentation I read here
http://doc.silverstripe.org/doku.php?id=recipes:controllers#simulate_pages_with_controllers

I figured I should use a customer controller for my data instead of content controllers as my model is not content / page oriented.

So I created a first prototype using a custom controller as shown here:
http://doc.silverstripe.org/doku.php?id=controller

and rendered it with $this->renderWith('MyTemplate') which all works fine so far.

However, I am missing some important functionality compared to using ContentController and SiteTree. Specifically:

- Can I use the template Hierarchy? renderWith() only seems to find templates in the root themes directory, but doesn't seem to be able to compose themes from templates and layouts. Is this strictly connected with the SiteTree model or can I enable the template/layout composing with custom controllers and renderWith as well?

- From the template, I can not access objects as I used to with ContentController, where I simply had a method MyObject() that would get called when I access $MyObject in the template. Again, is this functionality not possible with custom controllers, or what can I do to use this? Or, generally, how can I access my model from the template using my custom controller? I tried to use $this->customize() which appeared to be the answer, however this is also a ContentController method if I am not mistaken.

Avatar
DesignCollective

Community Member, 66 Posts

7 August 2012 at 2:20am

Has there ever been a solution to this? It seems that class methods are not executed from <% control %> loops and this is exactly the issue. It has come so far actually that even forTemplate() is proclaimed on the controller, preventing custom Class templates...

Any help/insight on this would be greatly appreciated!