I'm in the process of planning a Drupal 7 site-build that will make use of what we're calling 'sub-pages' or 'minisites.' Essentially, as you can see in the wireframe below, we'll have a page for each Doctor, and each doctor page will have a sub-nav.
Here are some requirements;
- This sub-nav will link to pages with the url structure 'doctors/[doctor-name]/[sub-page-title]'.
- Sub-pages like 'Biography' are populated via fields on the node.
- Sub-pages like 'News' and 'Case Studies' are populated via contextual Views (based on references from these content types).
- Sub-pages like 'Community' are completely custom and unique to each doctor. Another doctor may have a 'Family' sub-page instead.
- The header above the sub-page should stay the same on every sub-page.
- Content managers should be able to easily add additional custom sub-pages.
- The site is being built utilizing the Panels suite (Panels Everywhere included).
What's the best way to accomplish this? I've fielded suggestions like 'use the Book module', but I wanted to get some feedback from the larger community before I start down a path that leads to a "90% solution."
Update (Includes my solution)
I've decided to pursue the Organic Groups route, as OG and its suite of modules have value in other areas of the site's architecture. In order to meet my requirements I've had to introduce a few additional modules (benefits included);
- OG Menu
- Configured to automatically create a menu for each 'Doctor' (an organic group).
- OG Menu: Default Links (Submodule)
- Configured to provide default menu links to views standard for any Doctor. When a Doctor is created, they'll automatically have menu links like 'News' and 'Case Studies'.
- Rules
- When my content managers create a new Doctor Page (organic group content to the Doctor Group), I made a custom rule that adds a menu link entry to the referred group menu (provided by OG Menu).
- Sub-pathauto
- We want URLS that are aliased to match the pattern 'doctors/[doctor-name]/[doctor-page-title]'. This modules lets me do that easily (doctor/[node:og_group_ref]/[node:title]).
- OG Role Override
- I need all content managers to edit and assign content to all Doctor groups. This module lets me do that easily.
- Panels
- General layout, but also overriding layout for Doctor Pages and default links that direct to views.
All-in-all, I have exactly what I need and didn't write a line of code.
Update Nov 16
This feature was sent out to pasture. Sad Panda. :`(