kanopi / saplings-domain
Base Domain Access configuration for modern Drupal.
Installs: 9
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 7
Forks: 1
Open Issues: 0
Type:drupal-recipe
Requires
- drupal/domain: *
- drupal/domain_access_logo: *
- drupal/domain_entity: *
- drupal/domain_login_restrict: *
- drupal/domain_menu_links: *
- drupal/domain_menus: *
- drupal/domain_path: *
Suggests
- kanopi/gin-admin-experience: A simple Drupal Recipe for installing and configuring the Gin admin theme and supporting base modules.
- kanopi/saplings-editorial: Configures a rich editing experience for modern Drupal.
- kanopi/saplings-launch: Configures best practices for launching modern Drupal.
- kanopi/saplings-media: Configures media defaults for modern Drupal.
README
Overview
This recipe installs base Domain Access modules.
Features
- Requires and enables commonly used Domain modules:
- domain
- domain_access
- domain_access_logo
- domain_alias
- domain_config
- domain_config_ui
- domain_content
- domain_entity
- domain_login_restrict
- domain_menus
- domain_path
Getting Started
To start using Saplings Theme, follow these steps:
- In your project:
fin composer require kanopi/saplings-domain
- Configuring Drupal to Apply Recipes
- Apply the recipe
- Validate the recipe on your project
- Unpack the recipe (to move its composer requirements into your project's composer.json file)
- Complete domain configuration - see Configuration section below
- In your project:
fin composer remove kanopi/saplings-domain
fin drush cex -y
git checkout -b [mybranch]
git add .
git commit -m "applies saplings-domain recipe
git push
- Create and submit PR
Patches
Once you have applied and unpacked this recipe, add the following patches to your project's main composer.json file and then run fin composer install
:
"patches": {
"drupal/domain": {
"Use core route provider with addExtraCacheKeyPart for route caching?": "https://www.drupal.org/files/issues/2023-05-09/domain-route-provider-addextracachekeypart-3359253-02.patch",
"Domain Entity module compatibility issue causes hasDomainPermissions() to return nothing": "https://www.drupal.org/files/issues/2024-03-06/domain-3426236-2.patch"
},
"drupal/domain_menus": {
"Errors on Group menus": "https://www.drupal.org/files/issues/2024-01-31/domain_menus-3418527-1.patch"
}
}
Notes
This recipe does not install the Domain Language module.
If your project is enabling Drupal translation, you should require it and enable it manually and add the following patch to your project's composer.json:
"patches": {
"drupal/domain_language": {
"DomainLanguageOverrider service arguments": "https://www.drupal.org/files/issues/2023-09-26/domain_language-3388388-7.patch"
}
}
Without this patch, you won't be able to configure different language preferences per domain without getting a fatal error. If all your domains have the same languages and the same default language, you don't need this patch.
Configuration
- Go to admin/config/domain
- Create your default domain and any additional domains you need
- Go back to admin/config/domain
- Select Aliases from the option list for your default domain
- Create local, testing (multidev), dev, and staging (test) aliases for each domain
- Go to /admin/config/domain/entities/node and enable domain access for each of your project's content types
- Go to /admin/config/domain/menu/access/settings - if you want separate menus per domain, and you want them to be auto-configured when you add future domains enable them here. You can also just assign menus to certain domains, so this is optional.
- Go to /admin/config/domain/domain_menus - set options here as needed for your project
- Later, after all this config is deployed to your canonical site, go to /admin/config/domain/domain_access_logo if you want different logos per domain (because you have to upload files for this, you should do this config on your canonical site and then synch the database down to your local so you can export the config there)
- Go to /admin/config/domain/entities - we have pre-enabled common entity types like users, nodes and terms, but you may want to enable it for entities for your project, e.g, Sitewide Alerts
- Set Domain module permissions for your site's roles/needs
Resources
See this cacher on working with Domains and Domain aliases (for local, multidevs, dev, test and live). It is Pantheon-centric, but the information about configuring domain aliases is relevant despite hosting platform.