Skip to main content

Affiliated Site Guide: Build Notes for Drupal CMS Websites

The purpose of this guide is to describe methods for managing Web data in a decentralized organization, or where an organization needs to manage multiple unrelated Domains.

Design Goals:

  • Centralized User and Data Compliance Management.
  • Decentralized Content Management by Organizational Web Teams.
  • Organized content and display within "affiliated"  site sections.

This Affiliated Site Guide was created to help explain and complement concepts in our Open Source project, RSVP System.
RSVP System is a "Recipe Cookbook" for quickly building advanced reservation, loan, and calendar systems. 

This guide heavily leverages two key features of "Core" Drupal to provide a robust foundation; Taxonomy and Entity Reference Fields. 

Taxonomy: Used to store site vocabularies like Department, Program Type, and Domain. Provides a "filter" for displaying and reporting on content.

Entity Reference Fields: Links content with vocabulary terms or other content.
An example would be the reference link between an RSVP Resource and an RSVP Location.

Other Options:
While our initial plan was to use Taxonomy for content separation within site sections, others have suggested Group to help achieve the project goals.  There are many ways to do things in Drupal, these are notes for choosing an Access Control Strategy.
 

Image
Workbench




Todo: (Media + Groups) versus (Media + Taxonomy)?
Need to confirm that the Groups module is supported well alongside things like Media Library, Facets,
project/groupmedia

And now for a brief interruption ....
The Workbench project has entered the chat. 
Content Moderation, Publishing Workflows, and Revisions.
 

Image
Department Taxonomy


 

Image
Media with Taxonomy

 

 



A single database provides a wheel-and-spoke architecture

Content Access is managed centrally, while Content Management happens within each affiliated sites.  Centrally managed User Roles and Content administration makes sharing content between affiliated sites easy. Data retention and compliance policies are simplified too.  

Each website operates independently, under a central top-level organizational umbrella. Independent "affiliate" sites maintain their own theme assets, user groups, content, and search results as needed. 

Real-World Affiliate Site Examples:
Three completely different websites served from a single Drupal installation and database. 

Image
Site Taxonomy


Role-Based Content Fences 
Key features of Drupal are its Taxonomy and Role systems. Attaching Role permissions to Taxonomy Terms (Affiliated Sites) results in a flexible security fence placed around site content. By using Roles, Content Editors are restricted to managing only content within their assigned Affiliated Sites (Department). 

Role subscriptions set on the User Profile define access for an Affiliated Site.   

Project Design Requirements:  
- A singe database for Users, Roles and Content.
- Shared common Org level assets like fonts, favicons, GA tags, 403/404 pages, Site Terms & Legal.
- Independent sub-site visual themes for an Organization's (affiliate) departments.  
- Content Blocks and Drupal Views bases on requested URL Patterns, Domain Name or Drupal Context.  
- Independent data access for Site Search and SEO.   SOLR
- Flexible URL and Content Schema. Support common URL paths among any sub-site. (/people,/calendar,/about, etc.)  

Example Site Layout:  
gluebox.com - Organization Top Level  
radio.gluebox.com - Affilate Site 1  
design.gluebox.com - Affiliate Site 2  
some-other-random-domain.com - Affiliate Site 3  

Example Common Content Paths:  
This are "dynamic" pages that share a common Drupal display View.  Drupal Views uses a  Domain based filter to determine which content to display.  Two approaches could be taken for laying out a common schema for common URLs.

Multiple Domains
{domain_qualifier}/Programs
{domain_qualifier}/Calendar 
{domain_qualifier}/People
{domain_qualifier}/Files

Single Top Level Org Domain
[Single_ORG_Domain]/programs/{site_department}/
[Single_ORG_Domain]/calendar /{site_department}/
[Single_ORG_Domain]/people/{site_department}/
[Single_ORG_Domain]/files/{site_department}/

A workflow for setting URL naming patterns based on Taxonomy:

Image
ECA Workflow for building Affiliated Site URLs


{site_qualifier}/Reservations | /Schedules 
{site_qualifier}/About 
{site_qualifier}/Policies 

A "Site Content Qualifier" can be used to prevent collisions on common URL paths (Contact, About, Policies, Etc.) 
Site Qualifiers should be described in the the Site Vocabulary documentation and implemented in the Taxonomy Term for the Affiliated Site.

As example, we use an ECA workflow to set the following "Site Qualifiers" for Article content. 
GlueBox.com: design/
DangerCactus.com: spine/
Snowmaid.com:  camp/

 

Image
Domain URL Path Example



 Additional design notes for Apache based hosting services  
 


Drupal Modules:  
Context Module: Sets up site sections   
Taxonomy Terms  (Affiliated Sites)   

Content Access Module: Sets up "per-node" content settings. 
Used to limit available RSVP Locations to specific Roles. 

Permissions by Term Module: 
"Collecting content together in a taxonomy term allows you to manage that content as a sub-site and assign its own administrator. This is useful where you might need someone to produce lots of different types of content but only want them to be able to add it to a specific area of the website." 
 
Taxonomy Vocabularies:
Affiliated Site (affiliated_site)
Department (department)

Holds the high-level information for a site.
Full Name, Short Name, Domain Name, Landing URL, Address, Geolocation, Email Contact, Mailing List, Hours, Calendar Link ... 

Affiliated Access (affiliated_access)
A special taxonomy for assigning Roles to Entities. 
Separates content within affiliated sites. 

// SEE: Metadata Module
// SEE: Terms Condition Module, simple Condition plugin for taxonomy terms
- Dynamic Menus / Footers   
- Dynamic Theme Elements (Favcons and Logos) 

Content Types:   

"Affiliated Link" (affiliated _link)  
"Partner Link" (partner_link)
Hold URLs for building block menus  
Used to present an affiliated site menu. A basic content type that holds a Display Title and URL link. Since these links can be internal or external, affiliated/partner sites can live anywhere.   Affiliated sites can be easily added or adjusted, making things more flexible for site migrations and edge case needs.   
 

Metadata Context Setups

1.) Front Page - Domain Env set through Apache Virtual Host, passed into site's settings.php.  
2.) Affiliated Site Taxonomy Terms, sets Logo/Menus block display, Site Front / Home link.  
3.) Confirm Google Analytics or other SEO needs. 

Canonical URL  
A link to the preferred page location or URL of the content of this page, to help eliminate duplicate content penalties from search engines.  

 

Attribution