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.

Template Questions /

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

url_handlers and action specific templates


Go to End


2 Posts   2611 Views

Avatar
neros3

Community Member, 51 Posts

9 July 2010 at 8:22pm

Hi

I'm using SS.2.4.

I want an action called new. But since that is a reservered word I can't make a function called new(). So I've made a url_handler to handle that

public static $url_handlers = array(
        'new' => 'customnew'
    );

My template is called: Mypage.ss - and in order to have a specific template for this action I have tried making Mypage_new.ss and Mypage_customnew.ss.
When accessing the url /Mypage/new none of the templates gets loaded. The only way I can load an action specific template is by calling /Mypage/customnew.

Anyone knows how to fix this? I suppose I could render the page with a specific template, but thats not preferable.

Thanks!

Avatar
Terrence Wood

Community Member, 1 Post

12 July 2010 at 4:30pm

Edited: 12/07/2010 4:30pm

To use a template that doesn't match your ClassName you will need to load your template:

class MyPage_controller extends Page_Controller {
    function customnew() {
        $data = DataObject::get('CustomNew'); 
        return $this->customise($data)->renderWith(array('customnew','Page'));
    }
}