Category Menu - Advanced Feature Suggestion

7 posts by 2 authors in: Forums > CMS Builder
Last Post: July 3, 2014   (RSS)

By Steve99 - June 20, 2014

Hello,

I've become quite fond of using the Category Menu with the Permalinks plugin. It helps in building out websites efficiently and SEO friendly.

It would be a great help to have an Advanced config feature added that allows us to lock down a set quantity of top level parent categories. We utilize horizontal navigation systems a lot and if our clients don't listen to instruction/notes about not adding any new top level category pages, they end up with a broken/goofy looking navigation bar. This way we can set the framework with the parent categories, and they can add as many child pages/sections as they want - to the depth level we specify.

A part 2 for this Advanced config feature could be the ability for the master admin (us) to also be able to lock in the Title field contents (link label) for top level category pages so our clients can't change them to longer or shorter word(s) for styling purposes.

Best Regards,
Steve

By Dave - June 24, 2014

Hi Steve,

I actually just finished a new category menu code generator so hopefully that will help you creating future category viewers.  It will be in the next beta which we're hoping to have our shortly.

Everyone has different requirements for how they build sites and want things to work, and we want to avoid cluttering or confusing the interface with too many fields.  So we always try and think of the simplest way we can to solve problems such as this.  Sometimes by having a generic plugin.  

What if we made a plugin called "Admin Record Lock" that worked like this:

  • When a section had a checkbox field called 'adminRecordLock'...
  • Only an admin user could check that field and save the record, non-admins would get an error if they tried to check it.
  • Once checked, any non-admin users would get an error if they tried to save/update/erase the record, only admins could uncheck it.

That would let admin users lock specific record.

Would that work for what you need?

Dave Edis - Senior Developer
interactivetools.com

By Steve99 - June 25, 2014

Hi Dave,

Cool, I'll be looking forward to checking that out. Totally understood about everyone having different requirements. That's one of the many reasons I love CMSB because it's not bloatware like all the open source CMS's. Speaking generally, there's a fine line between giving clients website controls they want/need so they don't ruin their sites. Some recent experiences even have us debating trimming back on some of the WYSIWYG editor features we've been allowing by default.

I can see an "Admin Record Lock" being useful in other situations, but it's probably too restrictive for what we were thinking on this.

The main item we were thinking is if there was a checkbox toggle in the Advanced Settings to lock the ability for a non-admin to create any top level Parent Categories. That way the client can only create Child Categories under the Parent Categories we've established as the top of the website navigation hierarchy. Currently there is a checkbox toggle for "Disable Add", we were thinking a "Disable Add Parent". I think other developers may find this feature useful that wish to lock in the main website hierarchy.

Referencing interactivetools.com top navigation as an example, if it was a client site where the horizontal navigation was driven entirely by the Category Menu - you wouldn't want them to have the ability to add any more Parent Categories than the current "CMS Builder, Showcase, Add Ons, Forum, Hire Us, About" because it wouldn't fit and would screw up the site appearance.

To accomplish this, we've basically just been filtering out records/sections having a parent number of 0 that wasn't set in an array we've specified. It's basically a safeguard for a horizontal navigation menu visual appearance. We always inform the clients about this, but if they forget and create a Parent and call us - we just remind them. We can continue to do it this way, the checkbox toggle in advanced settings was just something we thought may be useful.

Thanks,
Steve

By Dave - June 26, 2014

Hi Steve, 

Ok, well maybe we can whip up a plugin for you as an example and post it here.

What about a plugin called "Root Category Lock" that when enabled did this:

  • Only admins can create or update root level categories (defined as having parentCategory of "0"), non-admins will get an error.

Or it could just be that when that plugin is enabled no-one can edit root categories (you'd just click "disable" on the plugin to edit root categories).

We could put it in the CMS, but it's much quicker to experiment and iterate with plugins.

Let me know if that would work for you and we'll post some sample code.

Dave Edis - Senior Developer
interactivetools.com

By Steve99 - June 26, 2014

Hi Dave,

That sounds pretty good, but with a slight alteration. The Editor (client) would still need the ability to at least edit the page text on Parent Categories - just not be able to create new Parent Categories.

The description of only admins being able to create root level categories sounds best. However, your reference of just having the plugin enabled/disabled would work, and would probably be easiest to code for experimenting purposes. Totally understood about experimenting with plugins versus adding into the program itself. Thank you for taking the time to discuss some possibilities with me.

Best Regards,
Steve

By Dave - July 2, 2014

Hi Steve, 

Try this and let me know how it goes (attached).

Dave Edis - Senior Developer
interactivetools.com
Attachments:

rootCategoryLock.php 2K

By Steve99 - July 3, 2014

Hi Dave,

Works great! Much appreciated! This will be very useful in developing dynamic websites with horizontal navigation bars.

Cheers,
Steve