Per Nergård (MVP)
Jun 30, 2014
  4993
(7 votes)

Limit block and page types to be created only once.

In the last couple of solutions I have been involved in we have had the need to create additional tools for specific business needs.

We have often chosen too create the tools as page types to make the tools blend in with the rest of the site and be able to set access rights.

One drawback is that the tool types clutter down the create new type list. Sure it’s easy to fix via disabling “available in edit mode” and what I did might be a solution to a very small problem but it seemed like a good idea at the time Ler.

I created an interface and an initializing module. Just implement the interface returning true and the module will set the “available in edit mode” to false as soon as an item of specified content is created. To be able to create a new one the content needs to be deleted and the waste basket emptied.

You can get the code over at GitHub.

Jun 30, 2014

Comments

Petter Klang
Petter Klang Jul 1, 2014 08:20 AM

Interesting concept. Haven't run across the need for it yet but will keep it in mind if it comes up!

Martin Pickering
Martin Pickering Jul 1, 2014 11:16 AM

Hey, I like this sideways glance at a interesting issue.
Thanks very much for taking the time to share it with us.
M

Jul 1, 2014 02:45 PM

I liked the idea. In many sites, there are pagetypes that should exist only once. The frontpage springs to mind, and often we have a separate globalsettings page (instead of letting all the settings live on the startpage). There are usually a number of other pagetypes with a "should-exist-only-once" situation as well. My normal way of doing this has of course been to set the "available in edit mode" to false once the pagetype has been created.

Roland Kierkels
Roland Kierkels Aug 12, 2014 04:28 PM

How can i use this? Any documentation available or examples?

Please login to comment.
Latest blogs
Searchable settings page

In my current project which has been actively developed for quite some time we have a big classic settings page. Unfortunately the placement and...

Per Nergård (MVP) | Apr 6, 2026

Using Azure Devops Pipelines in Optimizely SAAS (Configured) Commerce

Introduction When working with SAAS Commerce build service v2 your currently need to use a github repo with configured branches to start deployment...

Mark Hall | Apr 4, 2026 |

Forcing Lowercase URLs in Optimizely CMS During Auto-Translation

Learn how to fix uppercase and punctuation issues in Optimizely CMS 12 URL segments caused by LanguageManager auto-translation using a custom...

Stuart | Apr 2, 2026 |

Stott Robots Handler v7 for Optimizely CMS 13

Stott Robots Handler version 7 is now available for  Optimizely PaaS CMS 13 . This is includes updates to support the switch from a Site based...

Mark Stott | Apr 2, 2026

Optimizely CMS 13 First Impressions

Introduction This week Optimizely released the long awaited CMS 13. I upgraded my Optimizely extensions package to CMS 13 and found some interestin...

Mark Hall | Apr 2, 2026 |

Automating Block Translations in Optimizely

Stop manual block-by-block translations. Learn how to use the TranslateOrCopyContentAreaChildrenBlockForTypes config to automate Optimizely CMS...

Stuart | Apr 1, 2026 |