abstract class NotConditionPluginBase in Block Visibility Conditions 8
Provides a 'Not {ContentEntityType}'-base condition.
The block will still be shown on all other pages. This differs from the negated condition, which will only be evaluated on entity type pages, which means the block won't be shown on other pages like views.
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Component\Plugin\ContextAwarePluginBase implements ContextAwarePluginInterface
- class \Drupal\Core\Plugin\ContextAwarePluginBase implements CacheableDependencyInterface, ContextAwarePluginInterface uses DependencySerializationTrait, StringTranslationTrait, TypedDataTrait
- class \Drupal\Core\Executable\ExecutablePluginBase implements ExecutableInterface
- class \Drupal\Core\Condition\ConditionPluginBase implements ConditionInterface uses ContextAwarePluginAssignmentTrait
- class \Drupal\block_visibility_conditions\Plugin\Condition\NotConditionPluginBase implements ContainerFactoryPluginInterface
- class \Drupal\Core\Condition\ConditionPluginBase implements ConditionInterface uses ContextAwarePluginAssignmentTrait
- class \Drupal\Core\Executable\ExecutablePluginBase implements ExecutableInterface
- class \Drupal\Core\Plugin\ContextAwarePluginBase implements CacheableDependencyInterface, ContextAwarePluginInterface uses DependencySerializationTrait, StringTranslationTrait, TypedDataTrait
- class \Drupal\Component\Plugin\ContextAwarePluginBase implements ContextAwarePluginInterface
Expanded class hierarchy of NotConditionPluginBase
1 file declares its use of NotConditionPluginBase
- NotProductType.php in modules/
block_visibility_conditions_commerce/ src/ Plugin/ Condition/ NotProductType.php
File
- src/
Plugin/ Condition/ NotConditionPluginBase.php, line 19
Namespace
Drupal\block_visibility_conditions\Plugin\ConditionView source
abstract class NotConditionPluginBase extends ConditionPluginBase implements ContainerFactoryPluginInterface {
protected const CONTENT_ENTITY_TYPE = '';
/**
* The EntityTypeManager object.
*
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
*/
protected $entityTypeManager;
/**
* The CurrentRouteMatch object.
*
* @var CurrentRouteMatch
*/
protected $routeMatch;
/**
* The content entity type.
*
* @var \Drupal\Core\Config\Entity\ConfigEntityType
*/
protected $contentEntityType;
/**
* The bundle.
*
* @var \Drupal\Core\Config\Entity\ConfigEntityType
*/
protected $bundle;
/**
* Creates a new NotNodeType instance.
*
* @param array $configuration
* The plugin configuration, i.e. an array with configuration values keyed
* by configuration option name. The special key 'context' may be used to
* initialize the defined contexts by setting it to an array of context
* values keyed by context names.
* @param string $plugin_id
* The plugin_id for the plugin instance.
* @param mixed $plugin_definition
* The plugin implementation definition.
* @param EntityTypeManagerInterface $entity_type_manager
* The entity type manager.
* @param CurrentRouteMatch $route_match
* The route match.
*
* @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException
*/
public function __construct(array $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager, CurrentRouteMatch $route_match) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->entityTypeManager = $entity_type_manager;
$this->routeMatch = $route_match;
/** @var \Drupal\Core\Config\Entity\ConfigEntityType $contentEntityType */
$this->contentEntityType = $this->entityTypeManager
->getDefinition(static::CONTENT_ENTITY_TYPE);
$this->bundle = $this->entityTypeManager
->getDefinition($this->contentEntityType
->getBundleOf());
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
return new static($configuration, $plugin_id, $plugin_definition, $container
->get('entity_type.manager'), $container
->get('current_route_match'));
}
/**
* {@inheritdoc}
*/
public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
$form = parent::buildConfigurationForm($form, $form_state);
// Disallow negation of this condition.
unset($form['negate']);
// Create list of content types.
$options = [];
$node_types = $this->entityTypeManager
->getStorage(static::CONTENT_ENTITY_TYPE)
->loadMultiple();
foreach ($node_types as $type) {
$options[$type
->id()] = $type
->label();
}
$form['bundles'] = [
'#title' => $this->contentEntityType
->getLabel(),
'#description' => $this
->t('The %content_entity_type_label(s) to hide the block on. The block will still be shown on all other pages, including non-%bundle_label pages.<br>This differs from the negated condition "%content_entity_type_label", which will only be evaluated on %bundle_label pages, which means the block won\'t be shown on other pages like views.', [
'%content_entity_type_label' => $this->contentEntityType
->getLabel(),
'%bundle_label' => $this->bundle
->getLabel(),
]),
'#type' => 'checkboxes',
'#options' => $options,
'#default_value' => $this->configuration['bundles'],
];
return $form;
}
/**
* {@inheritdoc}
*/
public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
$this->configuration['bundles'] = array_filter($form_state
->getValue('bundles'));
parent::submitConfigurationForm($form, $form_state);
}
/**
* {@inheritdoc}
*/
public function summary() {
if (count($this->configuration['bundles']) > 1) {
$bundles = $this->configuration['bundles'];
$last = array_pop($bundles);
$bundles = implode(', ', $bundles);
return $this
->t('The %content_entity_type_label is %bundles or %last.', [
'%content_entity_type_label' => $this->contentEntityType
->getLabel(),
'%bundles' => $bundles,
'%last' => $last,
]);
}
$bundle = reset($this->configuration['bundles']);
return $this
->t('The %content_entity_type_label is %bundle', [
'%content_entity_type_label' => $this->contentEntityType
->getLabel(),
'%bundle' => $bundle,
]);
}
/**
* {@inheritdoc}
*/
public function evaluate() {
// Check if a setting has been set.
if (empty($this->configuration['bundles'])) {
return TRUE;
}
// Check if we are dealing with a node.
$entity = $this->routeMatch
->getParameter($this->contentEntityType
->getBundleOf());
if (is_scalar($entity)) {
$entity_storage = $this->entityTypeManager
->getStorage($this->contentEntityType
->getBundleOf());
$entity = $entity_storage
->load($entity);
}
if (empty($entity)) {
return TRUE;
}
return empty($this->configuration['bundles'][$entity
->bundle()]);
}
/**
* {@inheritdoc}
*/
public function defaultConfiguration() {
return [
'bundles' => [],
] + parent::defaultConfiguration();
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ConditionPluginBase:: |
protected | property | The condition manager to proxy execute calls through. | |
ConditionPluginBase:: |
public | function |
Calculates dependencies for the configured plugin. Overrides DependentPluginInterface:: |
|
ConditionPluginBase:: |
public | function |
Executes the plugin. Overrides ExecutableInterface:: |
|
ConditionPluginBase:: |
public | function |
Gets this plugin's configuration. Overrides ConfigurableInterface:: |
|
ConditionPluginBase:: |
public | function |
Determines whether condition result will be negated. Overrides ConditionInterface:: |
|
ConditionPluginBase:: |
public | function |
Sets the configuration for this plugin instance. Overrides ConfigurableInterface:: |
|
ConditionPluginBase:: |
public | function |
Sets the executable manager class. Overrides ConditionInterface:: |
|
ConditionPluginBase:: |
public | function |
Form validation handler. Overrides PluginFormInterface:: |
|
ContextAwarePluginAssignmentTrait:: |
protected | function | Builds a form element for assigning a context to a given slot. | |
ContextAwarePluginAssignmentTrait:: |
protected | function | Wraps the context handler. | |
ContextAwarePluginAssignmentTrait:: |
abstract protected | function | Ensures the t() method is available. | |
ContextAwarePluginBase:: |
protected | property | The data objects representing the context of this plugin. | |
ContextAwarePluginBase:: |
private | property | Data objects representing the contexts passed in the plugin configuration. | |
ContextAwarePluginBase:: |
protected | function |
Overrides ContextAwarePluginBase:: |
|
ContextAwarePluginBase:: |
public | function |
The cache contexts associated with this object. Overrides CacheableDependencyInterface:: |
9 |
ContextAwarePluginBase:: |
public | function |
The maximum age for which this object may be cached. Overrides CacheableDependencyInterface:: |
7 |
ContextAwarePluginBase:: |
public | function |
The cache tags associated with this object. Overrides CacheableDependencyInterface:: |
4 |
ContextAwarePluginBase:: |
public | function |
This code is identical to the Component in order to pick up a different
Context class. Overrides ContextAwarePluginBase:: |
|
ContextAwarePluginBase:: |
public | function |
Overrides ContextAwarePluginBase:: |
|
ContextAwarePluginBase:: |
public | function |
Overrides ContextAwarePluginBase:: |
|
ContextAwarePluginBase:: |
public | function |
Gets a mapping of the expected assignment names to their context names. Overrides ContextAwarePluginInterface:: |
|
ContextAwarePluginBase:: |
public | function |
Gets the defined contexts. Overrides ContextAwarePluginInterface:: |
|
ContextAwarePluginBase:: |
public | function |
Gets the value for a defined context. Overrides ContextAwarePluginInterface:: |
|
ContextAwarePluginBase:: |
public | function |
Gets the values for all defined contexts. Overrides ContextAwarePluginInterface:: |
|
ContextAwarePluginBase:: |
public | function |
Set a context on this plugin. Overrides ContextAwarePluginBase:: |
|
ContextAwarePluginBase:: |
public | function |
Sets a mapping of the expected assignment names to their context names. Overrides ContextAwarePluginInterface:: |
|
ContextAwarePluginBase:: |
public | function |
Sets the value for a defined context. Overrides ContextAwarePluginBase:: |
|
ContextAwarePluginBase:: |
public | function |
Validates the set values for the defined contexts. Overrides ContextAwarePluginInterface:: |
|
ContextAwarePluginBase:: |
public | function | Implements magic __get() method. | |
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
ExecutablePluginBase:: |
public | function | Gets all configuration values. | |
ExecutablePluginBase:: |
public | function | Gets the definition of a configuration option. | |
ExecutablePluginBase:: |
public | function | Gets an array of definitions of available configuration options. | |
ExecutablePluginBase:: |
public | function | Sets the value of a particular configuration option. | |
NotConditionPluginBase:: |
protected | property | The bundle. | |
NotConditionPluginBase:: |
protected | property | The content entity type. | |
NotConditionPluginBase:: |
protected | property | The EntityTypeManager object. | |
NotConditionPluginBase:: |
protected | property | The CurrentRouteMatch object. | |
NotConditionPluginBase:: |
public | function |
Form constructor. Overrides ConditionPluginBase:: |
|
NotConditionPluginBase:: |
protected | constant | 3 | |
NotConditionPluginBase:: |
public static | function |
Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: |
|
NotConditionPluginBase:: |
public | function |
Gets default configuration for this plugin. Overrides ConditionPluginBase:: |
|
NotConditionPluginBase:: |
public | function |
Evaluates the condition and returns TRUE or FALSE accordingly. Overrides ConditionInterface:: |
|
NotConditionPluginBase:: |
public | function |
Form submission handler. Overrides ConditionPluginBase:: |
|
NotConditionPluginBase:: |
public | function |
Provides a human readable summary of the condition's configuration. Overrides ConditionInterface:: |
|
NotConditionPluginBase:: |
public | function |
Creates a new NotNodeType instance. Overrides ConditionPluginBase:: |
|
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:: |
3 |
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. | 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 |
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 |