Skip to main content

Affiliated Site Guide (Drupal 10 Build Notes)

This guide outlines general approaches for constructing Drupal based "content networks" of affiliated websites. 
 
Our design uses a single database to provide 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. 

Affiliate Site Examples:

Image
Site Taxonomy

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

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

Single Top Level Org Domain
[Single_ORG_Domain]/{site_qualifier}/Programs 
[Single_ORG_Domain]/{site_qualifier}/Calendar 
[Single_ORG_Domain]/{site_qualifier}/People 

 

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 a 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)
Holds the high level information for a site.
Full Name, Short Name, Domain Name, Landing URL, Mailing Address, Email Contact, Mailing List, Hours, Calendar Link ... 

Affiliated Access (affiliated_access)
A special taxonomy used to assign access to Content.  Used to contain content access to User account of an affiliated site. 


Metadata Module:
Terms Condition Module: module provides a simple Condition plugin for taxonomy terms.  
- Menus / Footers   
- Theme Elements (Favcons and Logos) 

Content Types:   

"Affiliated Link" (affiliated _link)  
Holds a Site Title and URL. Used for building flexible footer 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 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