public function SavedSearchType::getNotificationPluginFieldDefinitions in Search API Saved Searches 8
Retrieves all field definitions defined by notification plugins.
Return value
\Drupal\Core\Field\FieldDefinitionInterface[] All field definitions defined by notification plugins for this type, keyed by field name.
Overrides SavedSearchTypeInterface::getNotificationPluginFieldDefinitions
File
- src/
Entity/ SavedSearchType.php, line 399
Class
- SavedSearchType
- Provides an entity type for configuring how searches can be saved.
Namespace
Drupal\search_api_saved_searches\EntityCode
public function getNotificationPluginFieldDefinitions() {
$fields = [];
// Collect field definitions from our plugins.
foreach ($this
->getNotificationPlugins() as $plugin_id => $plugin) {
$plugin_fields = $plugin
->getFieldDefinitions();
// Determine the plugin's provider.
$definition = $plugin
->getPluginDefinition();
$provider = NULL;
if ($definition instanceof PluginDefinitionInterface) {
$provider = $definition
->getProvider();
}
elseif (is_array($definition)) {
$provider = $definition['provider'];
}
// Set some common settings on the field definitions.
foreach ($plugin_fields as $field_name => $field) {
$field
->setName($field_name);
$field
->setTargetEntityTypeId('search_api_saved_search');
$field
->setProvider($provider);
$field
->setSetting('notification_plugin', $plugin_id);
}
$fields += $plugin_fields;
}
return $fields;
}