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?
This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.
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.
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?
/**
* If this is false, the class cannot be created in the CMS.
* @var boolean
*/
static $can_create = true;
Set it to false (:
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.
hmm, try defining canCreate() and return false.
ok, this worked...
static $can_create = MyPageType::canCreate;
function canCreate(){
return false;
}
But ... why?
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.
aha. I see. cheers.