The Domain Access project is a suite of modules that provide tools for running a group of affiliated sites from one Drupal installation and a single shared database. The module allows you to share users, content, and configurations across a group of sites such as:

  • example.com
  • one.example.com
  • two.example.com
  • my.example.com
  • thisexample.com <-- can use any domain string
  • example.com:3000 <-- treats non-standard ports as unique

By default, these sites share all tables in your Drupal installation.

The module uses Drupal's node_access() system to determine what content is available on each site in the network. Unlike other multi-domain modules for Drupal, the Domain Access module determines user access based on the active domain that the user is viewing, rather than which group or site the user belongs to.

Use-Case

The module was initially developed for a web site that sold franchises of a monthly magazine. The publishing rules were as follows:

  • Content may belong to the national site, one or more affiliates, or to all affiliates.
  • National editors may select to promote affiliate content to other affiliates, the national site, or to all affiliates.
  • Local editors may only create and edit content for their own affiliate sites.

These rules are enforced programmatically by the Domain Access module. There was concern that, if given a choice to make, local editors would not assign the content correctly. Therefore, the module handles this automatically, and local editors have no control over which domains their content is published to.

This video from DrupalCon Paris explains the module in detail.

Examples

For the original example of the module in use, see http://skirt.com/.

For case-studies, see: