class RenderedItemProperty in Search API 8
Defines a "rendered item" property.
Hierarchy
- class \Drupal\Core\TypedData\DataDefinition implements \Drupal\Core\TypedData\ArrayAccess, DataDefinitionInterface uses TypedDataTrait
- class \Drupal\search_api\Processor\ProcessorProperty implements ProcessorPropertyInterface
- class \Drupal\search_api\Processor\ConfigurablePropertyBase implements ConfigurablePropertyInterface
- class \Drupal\search_api\Plugin\search_api\processor\Property\RenderedItemProperty uses StringTranslationTrait
- class \Drupal\search_api\Processor\ConfigurablePropertyBase implements ConfigurablePropertyInterface
- class \Drupal\search_api\Processor\ProcessorProperty implements ProcessorPropertyInterface
Expanded class hierarchy of RenderedItemProperty
See also
\Drupal\search_api\Plugin\search_api\processor\RenderedItem
1 file declares its use of RenderedItemProperty
- RenderedItem.php in src/
Plugin/ search_api/ processor/ RenderedItem.php
File
- src/
Plugin/ search_api/ processor/ Property/ RenderedItemProperty.php, line 16
Namespace
Drupal\search_api\Plugin\search_api\processor\PropertyView source
class RenderedItemProperty extends ConfigurablePropertyBase {
use StringTranslationTrait;
/**
* {@inheritdoc}
*/
public function defaultConfiguration() {
return [
'roles' => [
AccountInterface::ANONYMOUS_ROLE,
],
'view_mode' => [],
];
}
/**
* {@inheritdoc}
*/
public function buildConfigurationForm(FieldInterface $field, array $form, FormStateInterface $form_state) {
$configuration = $field
->getConfiguration();
$index = $field
->getIndex();
$form['#tree'] = TRUE;
$roles = user_role_names();
$form['roles'] = [
'#type' => 'select',
'#title' => $this
->t('User roles'),
'#description' => $this
->t('Your item will be rendered as seen by a user with the selected roles. We recommend to just use "@anonymous" here to prevent data leaking out to unauthorized roles.', [
'@anonymous' => $roles[AccountInterface::ANONYMOUS_ROLE],
]),
'#options' => $roles,
'#multiple' => TRUE,
'#default_value' => $configuration['roles'],
'#required' => TRUE,
];
$form['view_mode'] = [
'#type' => 'item',
'#description' => $this
->t('You can choose the view modes to use for rendering the items of different datasources and bundles. We recommend using a dedicated view mode (for example, the "Search index" view mode available by default for content) to make sure that only relevant data (especially no field labels) will be included in the index.'),
];
$options_present = FALSE;
foreach ($index
->getDatasources() as $datasource_id => $datasource) {
$bundles = $datasource
->getBundles();
foreach ($bundles as $bundle_id => $bundle_label) {
$view_modes = $datasource
->getViewModes($bundle_id);
$view_modes[''] = $this
->t("Don't include the rendered item.");
if (count($view_modes) > 1) {
$form['view_mode'][$datasource_id][$bundle_id] = [
'#type' => 'select',
'#title' => $this
->t('View mode for %datasource » %bundle', [
'%datasource' => $datasource
->label(),
'%bundle' => $bundle_label,
]),
'#options' => $view_modes,
];
if (isset($configuration['view_mode'][$datasource_id][$bundle_id])) {
$form['view_mode'][$datasource_id][$bundle_id]['#default_value'] = $configuration['view_mode'][$datasource_id][$bundle_id];
}
$options_present = TRUE;
}
else {
$form['view_mode'][$datasource_id][$bundle_id] = [
'#type' => 'value',
'#value' => $view_modes ? key($view_modes) : FALSE,
];
}
}
}
// If there are no datasources/bundles with more than one view mode, don't
// display the description either.
if (!$options_present) {
unset($form['view_mode']['#type']);
unset($form['view_mode']['#description']);
}
return $form;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ConfigurablePropertyBase:: |
public | function |
Retrieves the description for a field based on this property. Overrides ConfigurablePropertyInterface:: |
1 |
ConfigurablePropertyBase:: |
public | function |
Submits a configuration form for a field based on this property. Overrides ConfigurablePropertyInterface:: |
1 |
ConfigurablePropertyBase:: |
public | function |
Validates a configuration form for a field based on this property. Overrides ConfigurablePropertyInterface:: |
|
DataDefinition:: |
protected | property | The array holding values for all definition keys. | |
DataDefinition:: |
public | function |
Adds a validation constraint. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public static | function | Creates a new data definition. | 5 |
DataDefinition:: |
public static | function |
Creates a new data definition object. Overrides DataDefinitionInterface:: |
5 |
DataDefinition:: |
public | function |
Returns the class used for creating the typed data object. Overrides DataDefinitionInterface:: |
1 |
DataDefinition:: |
public | function |
Returns a validation constraint. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Returns an array of validation constraints. Overrides DataDefinitionInterface:: |
1 |
DataDefinition:: |
public | function |
Returns the data type of the data. Overrides DataDefinitionInterface:: |
2 |
DataDefinition:: |
public | function |
Returns a human readable description. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Returns a human readable label. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Returns the value of a given setting. Overrides DataDefinitionInterface:: |
2 |
DataDefinition:: |
public | function |
Returns the array of settings, as required by the used class. Overrides DataDefinitionInterface:: |
2 |
DataDefinition:: |
public | function |
Determines whether the data value is computed. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Determines whether the data value is internal. Overrides DataDefinitionInterface:: |
1 |
DataDefinition:: |
public | function |
Determines whether the data is read-only. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Determines whether a data value is required. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function | This is for BC support only. @todo: Remove in https://www.drupal.org/node/1928868. | |
DataDefinition:: |
public | function | This is for BC support only. @todo: Remove in https://www.drupal.org/node/1928868. | |
DataDefinition:: |
public | function | This is for BC support only. @todo: Remove in https://www.drupal.org/node/1928868. | |
DataDefinition:: |
public | function | This is for BC support only. @todo: Remove in https://www.drupal.org/node/1928868. | |
DataDefinition:: |
public | function | Sets the class used for creating the typed data object. | |
DataDefinition:: |
public | function | Sets whether the data is computed. | |
DataDefinition:: |
public | function | Sets an array of validation constraints. | |
DataDefinition:: |
public | function | Sets the data type. | 1 |
DataDefinition:: |
public | function | Sets the human-readable description. | |
DataDefinition:: |
public | function | Sets the whether the data value should be internal. | |
DataDefinition:: |
public | function | Sets the human-readable label. | |
DataDefinition:: |
public | function | Sets whether the data is read-only. | |
DataDefinition:: |
public | function | Sets whether the data is required. | |
DataDefinition:: |
public | function | Sets a definition setting. | 2 |
DataDefinition:: |
public | function | Sets the array of settings, as required by the used class. | 2 |
DataDefinition:: |
public | function | Returns all definition values as array. | |
DataDefinition:: |
public | function | Constructs a new data definition object. | 1 |
DataDefinition:: |
public | function | 2 | |
ProcessorProperty:: |
public | function |
Retrieves the ID of the processor which defines this property. Overrides ProcessorPropertyInterface:: |
|
ProcessorProperty:: |
public | function |
Determines whether this property should be hidden from the UI. Overrides ProcessorPropertyInterface:: |
|
ProcessorProperty:: |
public | function |
Returns whether the data is multi-valued, i.e. a list of data items. Overrides DataDefinition:: |
|
RenderedItemProperty:: |
public | function |
Constructs a configuration form for a field based on this property. Overrides ConfigurablePropertyInterface:: |
|
RenderedItemProperty:: |
public | function |
Gets the default configuration for this property. Overrides ConfigurablePropertyBase:: |
|
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
TypedDataTrait:: |
protected | property | The typed data manager used for creating the data types. | |
TypedDataTrait:: |
public | function | Gets the typed data manager. | 2 |
TypedDataTrait:: |
public | function | Sets the typed data manager. | 2 |