class EntityFieldOperationCompareType in Entity Field Condition 2.0.x
Define the entity field operation compare type plugin.
Plugin annotation
@EntityFieldCompareType(
id = "entity_field_operation_compare",
label = @Translation("Operation")
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\entity_field_condition\Plugin\EntityFieldCondition\CompareType\EntityFieldCompareTypePluginBase implements EntityFieldCompareTypeInterface
- class \Drupal\entity_field_condition\Plugin\EntityFieldCondition\CompareType\EntityFieldOperationCompareType
- class \Drupal\entity_field_condition\Plugin\EntityFieldCondition\CompareType\EntityFieldCompareTypePluginBase implements EntityFieldCompareTypeInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of EntityFieldOperationCompareType
File
- src/
Plugin/ EntityFieldCondition/ CompareType/ EntityFieldOperationCompareType.php, line 18
Namespace
Drupal\entity_field_condition\Plugin\EntityFieldCondition\CompareTypeView source
class EntityFieldOperationCompareType extends EntityFieldCompareTypePluginBase {
/**
* {@inheritDoc}
*/
public function defaultConfiguration() : array {
return [
'value' => NULL,
'value_type' => NULL,
'value_operation' => NULL,
] + parent::defaultConfiguration();
}
/**
* {@inheritDoc}
*/
public function buildConfigurationForm(array $form, FormStateInterface $form_state) : array {
$form['value_type'] = [
'#type' => 'select',
'#title' => $this
->t('Value Type'),
'#required' => TRUE,
'#options' => [
'default' => $this
->t('Default'),
'string' => $this
->t('String'),
],
'#empty_option' => $this
->t('- Select -'),
'#default_value' => $this
->getValueType(),
];
$form['value_operation'] = [
'#type' => 'select',
'#title' => $this
->t('Value Operation'),
'#required' => TRUE,
'#options' => [
'==' => $this
->t('Equal'),
'===' => $this
->t('Identical'),
'<' => $this
->t('Less Than'),
'<=' => $this
->t('Less Than or Equal to'),
'>' => $this
->t('Greater Than'),
'>=' => $this
->t('Greater Than or Equal to'),
],
'#empty_option' => $this
->t('- Select -'),
'#default_value' => $this
->getValueOperation(),
];
$form['value'] = [
'#type' => 'textfield',
'#title' => $this
->t('Value'),
'#required' => TRUE,
'#default_value' => $this
->getValue(),
];
return $form;
}
/**
* {@inheritDoc}
*/
public function evaluate(ContentEntityInterface $entity, string $field_name) : bool {
if (!$entity
->hasField($field_name)) {
return FALSE;
}
return $this
->compareValue($this
->getEntityFieldValue($entity, $field_name));
}
/**
* Compare the field value based on operation.
*
* @param mixed $field_value
* The field value.
*
* @return bool
* Return TRUE if the value is comparable; otherwise FALSE.
*/
protected function compareValue($field_value) : bool {
$verdict = FALSE;
$value = $this
->getValue();
switch ($this
->getValueOperation()) {
case '==':
$verdict = $field_value == $value;
break;
case '===':
$verdict = $field_value === $value;
break;
case '<':
$verdict = $field_value < $value;
break;
case '<=':
$verdict = $field_value <= $value;
break;
case '>':
$verdict = $field_value > $value;
break;
case '>=':
$verdict = $field_value >= $value;
break;
}
return $verdict;
}
/**
* Get entity field value.
*
* @param \Drupal\Core\Entity\ContentEntityInterface $entity
* The content entity.
* @param string $field_name
* The entity field name.
*
* @return mixed|string
* The entity field value.
*/
protected function getEntityFieldValue(ContentEntityInterface $entity, string $field_name) {
$field = $entity
->get($field_name);
$value = $field->value;
if ($this
->getValueType() === 'string') {
$value = $field
->getString();
}
return $value;
}
/**
* Get the value.
*
* @return string
* The value type.
*/
protected function getValue() : ?string {
return $this
->getConfiguration()['value'] ?? NULL;
}
/**
* Get the value type.
*
* @return string
* The value type.
*/
protected function getValueType() : string {
return $this
->getConfiguration()['value_type'] ?? 'default';
}
/**
* Get the value operation.
*
* @return string|null
* The value operation.
*/
protected function getValueOperation() : ?string {
return $this
->getConfiguration()['value_operation'] ?? NULL;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | ||
DependencySerializationTrait:: |
protected | property | ||
DependencySerializationTrait:: |
public | function | 2 | |
DependencySerializationTrait:: |
public | function | 2 | |
EntityFieldCompareTypePluginBase:: |
protected | property | Entity field manager. | |
EntityFieldCompareTypePluginBase:: |
public static | function |
Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: |
|
EntityFieldCompareTypePluginBase:: |
public | function |
Gets this plugin's configuration. Overrides ConfigurableInterface:: |
|
EntityFieldCompareTypePluginBase:: |
public | function |
Sets the configuration for this plugin instance. Overrides ConfigurableInterface:: |
|
EntityFieldCompareTypePluginBase:: |
public | function |
Form submission handler. Overrides PluginFormInterface:: |
|
EntityFieldCompareTypePluginBase:: |
public | function |
Form validation handler. Overrides PluginFormInterface:: |
|
EntityFieldCompareTypePluginBase:: |
public | function |
The compare type plugin base constructor. Overrides PluginBase:: |
|
EntityFieldOperationCompareType:: |
public | function |
Form constructor. Overrides EntityFieldCompareTypePluginBase:: |
|
EntityFieldOperationCompareType:: |
protected | function | Compare the field value based on operation. | |
EntityFieldOperationCompareType:: |
public | function |
Gets default configuration for this plugin. Overrides EntityFieldCompareTypePluginBase:: |
|
EntityFieldOperationCompareType:: |
public | function |
Evaluate the entity field value. Overrides EntityFieldCompareTypeInterface:: |
|
EntityFieldOperationCompareType:: |
protected | function | Get entity field value. | |
EntityFieldOperationCompareType:: |
protected | function | Get the value. | |
EntityFieldOperationCompareType:: |
protected | function | Get the value operation. | |
EntityFieldOperationCompareType:: |
protected | function | Get the value type. | |
MessengerTrait:: |
protected | property | The messenger. | 27 |
MessengerTrait:: |
public | function | Gets the messenger. | 27 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
2 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 4 |
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. |