silverstripe / silverstripe-forager-subsites
Add support for Silverstripe Subsites to silverstripe/silverstripe-forager
Installs: 14
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Type:silverstripe-vendormodule
pkg:composer/silverstripe/silverstripe-forager-subsites
Requires
- php: ^8.3
- silverstripe/recipe-cms: ^6
- silverstripe/silverstripe-forager: ^2
- silverstripe/subsites: ^4
Requires (Dev)
- phpunit/phpunit: ^11.3
- silverstripe/recipe-testing: ^4
- slevomat/coding-standard: ^8.8
This package is auto-updated.
Last update: 2025-11-12 07:51:19 UTC
README
By default, all subsites content will be indexed together. In some cases you may want to split each subsite's content into a separate engine or only want to index a single subsite.
Configuration
Basic Usage
To split each subsite into its own index, use the following configuration:
SilverStripe\Forager\Service\IndexConfiguration: indexes: content-subsite0: subsite_id: 0 context: subsite includeClasses: Page: &page_defaults fields: title: true content: true summary: true My\Other\Class: &other_class_defaults fields: title: property: Title summary: property: Summary content-subsite4: subsite_id: 4 # or you can use an environment variable such as 'NAME_OF_ENVIRONMENT_VARIABLE' context: subsite includeClasses: Page: <<: *page_defaults My\Other\Class: <<: *other_class_defaults
Note: The YAML anchor syntax (&page_defaults and <<: *page_defaults) reduces the need for copy-paste when you want to duplicate the same configuration across multiple indexes.
Additional note:
In the sample above, if the data object (My\Other\Class) does not have a subsite ID, then it will be included in the indexing as it is explicitly defined in the index configuration
Configuration Options
Subsite ID
The subsite_id key specifies which subsite's content to index.
subsite_id: allIndexes content from all subsites.subsite_id: <number>Indexes content only for the specified subsite (e.g.subsite_id: 0for the main site,subsite_id: 4for subsite with ID 4).
For some jobs we require the context to be set to subsite in order for it to correctly filter.
Context
The context key controls how the IndexDataContextProvider sets the state during indexing operations.
Setting the context to subsite will set the subsite state during indexing to the what is specified within the index data.