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.

Archive

Our old forums are still available as a read-only archive.

Moderators: martimiz, Sean, biapar, Willr, Ingo, simon_w

Remove page type from Create dropdown in CMS


Reply

8 Posts   4748 Views

Avatar
noizy

2 April 2008 at 4:48pm Community Member, 25 Posts

I've got a page type that I don't want users to be able to add any more instances of to the site.

How can I restrict it, or (ideally) remove it from the Create dropdown in the CMS?

Avatar
simon_w

2 April 2008 at 4:50pm Forum Moderator, 474 Posts

   /**
    * If this is false, the class cannot be created in the CMS.
    * @var boolean
   */
   static $can_create = true;

Set it to false (:

Avatar
noizy

2 April 2008 at 5:01pm (Last edited: 2 April 2008 5:08pm), Community Member, 25 Posts

thanks Simon.

Tried it, doesn't work for me. I can still quite happily add pages to the site.

Interestingly, it *does* make it impossible to delete those pages via the CMS (the check option is greyed out when I choose 'Delete the selected page').

I also added...

static $can_be_root = false;

to my class, and that doesn't seem to have any effect either.

Avatar
simon_w

2 April 2008 at 5:05pm Forum Moderator, 474 Posts

hmm, try defining canCreate() and return false.

Avatar
noizy

2 April 2008 at 5:09pm (Last edited: 2 April 2008 5:12pm), Community Member, 25 Posts

ok, this worked...

static $can_create = MyPageType::canCreate;
function canCreate(){
return false;
}

Avatar
noizy

2 April 2008 at 5:12pm Community Member, 25 Posts

But ... why?

Avatar
simon_w

2 April 2008 at 5:14pm Forum Moderator, 474 Posts

Because you're an admin.

By default, setting $can_create to false only stops those that aren't full admins from creating the page.

As you overwrote canCreate() to always return false, no one can create it.

Avatar
noizy

2 April 2008 at 5:15pm Community Member, 25 Posts

aha. I see. cheers.