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.

General Questions /

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

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

Special URLs for Custom Pagination


Go to End


3 Posts   1577 Views

Avatar
DeklinKelly

Community Member, 197 Posts

11 January 2011 at 2:13pm

I now use this URL pattern for my custom pagination:
http://example.com/sub/dir/xyz/?page=5

I would rather use this:
http://example.com/sub/dir/xyz/page5/

However that URL gives a 404 Not Found error.

How can I get a page ending in /page5/ to be controlled by the appropriate controller?

Avatar
inCharge

Community Member, 102 Posts

12 January 2011 at 4:58am

First, you need to tell the controller class for your page that it is allowed to take parameters.

e.g. add this to the contrioller section:

static $allowed_actions = array(
'page'
);

...then you can access the parameters like this...

$action = Director::URLParam('action');
$page = Director::URLParam('ID');
$recsperpage = Director::URLParam('OtherID');

e.g. if you browse to...

http://example.com/sub/dir/xyz/page/5/50

...then using the above assignment code

$action is 'page'
$page is 5
$recsperpage is 50

See http://doc.silverstripe.org/security#limiting_url-access_to_controller_methods

Alternatively, use url handlers: http://doc.silverstripe.org/controller#url_handling

All this is ripe for a tutorial. I wonder if one exists.

Avatar
DeklinKelly

Community Member, 197 Posts

12 January 2011 at 5:56am

Thanks!