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

[Solved] How to hide subpages of type ArticlePage from Tutorial 2


Reply

5 Posts   460 Views

Avatar
Mike Waters

22 March 2012 at 3:41pm Community Member, 6 Posts

I have used the very good [url=http://doc.silverstripe.org/sapphire/en/tutorials/2-extending-a-basic-site]Tutorial 2 - extending a basic site [/url] to create a table of summaries of sub pages in the same way as the tutorial shows a list of articles. However I want to make the sub pages inaccessible to site visitors as all the information I want to show is in the table of summaries.

Is there a way of doing this? Unpublishing the sub-pages removes them from the table.

I hope this makes sense. Referring to the tutorial I want to hide all the pages of type ArticlePage and only show ArticleHolder.

thanks in advance!

Avatar
nimesodelta

23 March 2012 at 10:35am Community Member, 18 Posts

Does

// in ArticlePage
static $defaults = array(
'ShowInMenus' => 0
);

help?

Avatar
Mike Waters

23 March 2012 at 3:04pm Community Member, 6 Posts

Thanks for this nimesodelta - but I already have that in my code to prevent the subpages appearing in the menus.

What I am wanting is for the pages to be inaccessible - that is return a 404 page if access is attempted.

I want the content to appear in the parent page (ArticleHolder) only.

is this possible?

thanks

-Mike

Avatar
nimesodelta

23 March 2012 at 3:33pm Community Member, 18 Posts

How about...

function index(){
   $this->httpError(404);   
}

Avatar
Mike Waters

23 March 2012 at 4:28pm Community Member, 6 Posts

Thanks for the pointer - and the quick response!

The code you posted gave me function not found error, but the following worked for me

in ArticlePage.php:

function index(){
$errorPage = DataObject::get_one('ErrorPage');
Director::redirect($errorPage->Link(),404);
}