ExpressionEngine is a solid application framework with a surprising weakness... it's a bit too flexible. Try and do the simple task of Content Management and you'll be left scratching your head with a series of questions boiling down to "what is the best approach?" Structure, built by Travis Schmeisser, has been a solid go-to module for years. Structure's interface for clients is great, but the tendency of Structure to take over the URL interpreter and the lackluster navigation support make full adoption challenging. The built-in Pages module is simplistic, but trying to manage multiple page types without a crazy number of channels and channel fields keep it from shining through as a true winner. I love NavEE, so if there's a way to get the Pages module and the NavEE module to work well together without having to create a bunch of new templates, that would be fantastic.
Enter "Better Pages", an under-appreciated field type. With Better Pages, the client selects the page template from their graphical icon representation. When the selection is made, only the fields associated with that template will be shown on the form...the others will either collapse or hide (depending on your configuration).
The new workflow:
- Use a single channel to cover all of your page types
- Assign each template in the "Better Pages" module
- Configure which fields apply to each template
With the NavEE field type installed, you can even create the navigation bar on the fly without jumping back and forth from the page management and the NavEE panel (although I personally prefer to build out the pages first, then go into the NavEE module and update the nav bars by dragging and dropping the links to match our sitemap plan).
There are other options out there to show and hide fields based on the Entry Type, but the inclusion of Better Page's thumbnails brings our client's experience up to the next level and is well worth the $15.