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.

General Questions

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

Special URLs for Custom Pagination


Reply

3 Posts   1122 Views

Avatar
DeklinKelly

11 January 2011 at 2:13pm Community Member, 197 Posts

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

12 January 2011 at 4:58am Community Member, 102 Posts

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

12 January 2011 at 5:56am Community Member, 197 Posts

Thanks!