Contexts allow MODX configuration settings to be overridden, extended, isolated, or shared across domains, sub-domains, sub-sites, multi-sites, cultural-specific sections, specific web applications, and so on.
You can easily create a context from the Contexts menu under Tools. The context will then show up in your resource tree. Resources can easily be dragged between contexts to move them from one context to another.
Creating a Context
First, go to the Contexts page, via System -> Contexts. Then, click on "Create New" in the grid. This will prompt you for a key and description. From there, right-click on your newly-created context, and click "Update Context".
This will bring you to a screen displaying the Context, and an empty grid of settings. From here you can add Context-specific settings that will override any System Settings. Your new context will be completely empty, requiring you to include any and all settings you will be using.
Note that new contexts don't automatically get "load" permission for Anonymous users in 2.2+ - you'll need to add that in manually.
You can create settings for any defined context by clicking on System -> Contexts, then right-click any context and select "Update Context".
When creating a new context, make sure your desired user-groups have access to it:
Security/Permissions -> Edit desired User Group -> Permissions -> Context Access
Retrieving Context Settings
Retrieving a Context Setting is no different than retrieving any other System Setting -- in fact, you may not be aware that a given setting is being set at the System or Context (or at the User) level.
In a template or Chunk:
Programmatically in a Snippet:
$setting = $modx->getOption('my_context_setting');
- Creating a Subdomain from a Folder using Virtual Hosts
- Using One Gateway Plugin to Manage Multiple Domains