abstract class BlockBase extends PluginBase implements BlockPluginInterface, PluginWithFormsInterface, PreviewFallbackInterface, ContextAwarePluginInterface (View source)

Defines a base block implementation that most blocks plugins will extend.

This abstract class provides the generic block configuration form, default block settings, and handling for general user-defined block visibility settings.

Traits

Provides the base implementation of a block plugin.

Provides a trait to add context-aware functionality to plugins.

Handles context assignments for context-aware plugins.

Wrapper methods for \Drupal\Core\StringTranslation\TranslationInterface.

Provides a trait for the messenger service.

Provides a trait with typical behavior for plugins which have forms.

Wrapper methods for \Drupal\Core\StringTranslation\TranslationInterface.

Provides dependency injection friendly methods for serialization.

Provides a trait for the messenger service.

Constants

DERIVATIVE_SEPARATOR

A string which is used to separate base plugin IDs from the derivative ID.

Properties

protected string $pluginId

The plugin_id.

from  PluginBase
protected array $pluginDefinition

The plugin implementation definition.

from  PluginBase
protected array $configuration

Configuration information passed into the plugin.

from  PluginBase
protected TranslationInterface $stringTranslation

The string translation service.

from  StringTranslationTrait
protected array $_serviceIds

An array of service IDs keyed by property name used for serialization.

from  DependencySerializationTrait
protected array $_entityStorages

An array of entity type IDs keyed by the property name of their storages.

from  DependencySerializationTrait
protected MessengerInterface $messenger

The messenger.

from  MessengerTrait
protected TransliterationInterface $transliteration

The transliteration service.

from  BlockPluginTrait
protected ContextInterface[] $context

The data objects representing the context of this plugin.

from  ContextAwarePluginTrait
protected bool internal $initializedContextConfig

Tracks whether the context has been initialized from configuration.

from  ContextAwarePluginTrait

Methods

__construct(array $configuration, $plugin_id, $plugin_definition)

{@inheritdoc}

string
getPluginId()

Gets the plugin_id of the plugin instance.

string
getBaseId()

Gets the base_plugin_id of the plugin instance.

string|null
getDerivativeId()

Gets the derivative_id of the plugin instance.

bool
isConfigurable()

Determines if the plugin is configurable.

t(string $string, array $args = [], array $options = [])

Translates a string to the current language or to a given language.

formatPlural($count, $singular, $plural, array $args = [], array $options = [])

Formats a string containing a count of items.

getNumberOfPlurals($langcode = NULL)

Returns the number of plurals supported by a given language.

getStringTranslation()

Gets the string translation service.

$this
setStringTranslation(TranslationInterface $translation)

Sets the string translation service to use.

__sleep()

{@inheritdoc}

__wakeup()

{@inheritdoc}

setMessenger(MessengerInterface $messenger)

Sets the messenger.

messenger()

Gets the messenger.

getFormClass($operation)

Implements \Drupal\Core\Plugin\PluginWithFormsInterface::getFormClass().

hasFormClass($operation)

Implements \Drupal\Core\Plugin\PluginWithFormsInterface::hasFormClass().

label()

{@inheritdoc}

getConfiguration()

{@inheritdoc}

setConfiguration(array $configuration)

{@inheritdoc}

array
baseConfigurationDefaults()

Returns generic default configuration for block plugins.

defaultConfiguration()

{@inheritdoc}

setConfigurationValue($key, $value)

{@inheritdoc}

access(AccountInterface $account, $return_as_object = FALSE)

{@inheritdoc}

blockAccess(AccountInterface $account)

Indicates whether the block should be shown.

array
buildConfigurationForm(array $form, FormStateInterface $form_state)

Form constructor.

blockForm($form, FormStateInterface $form_state)

{@inheritdoc}

validateConfigurationForm(array $form, FormStateInterface $form_state)

{@inheritdoc}

blockValidate($form, FormStateInterface $form_state)

{@inheritdoc}

submitConfigurationForm(array $form, FormStateInterface $form_state)

{@inheritdoc}

blockSubmit($form, FormStateInterface $form_state)

{@inheritdoc}

transliteration()

Wraps the transliteration service.

setTransliteration(TransliterationInterface $transliteration)

Sets the transliteration service.

getContexts()

{@inheritdoc}

setContext($name, ContextInterface $context)

{@inheritdoc}

getContextValue($name)

{@inheritdoc}

setContextValue($name, $value)

{@inheritdoc}

setContextMapping(array $context_mapping)

{@inheritdoc}

getCacheTags()

{@inheritdoc}

array
addContextAssignmentElement(ContextAwarePluginInterface $plugin, array $contexts)

Builds a form element for assigning a context to a given slot.

Details

__construct(array $configuration, $plugin_id, $plugin_definition)

{@inheritdoc}

Parameters

array $configuration
$plugin_id
$plugin_definition

string getPluginId()

Gets the plugin_id of the plugin instance.

Return Value

string

The plugin_id of the plugin instance.

string getBaseId()

Gets the base_plugin_id of the plugin instance.

Return Value

string

The base_plugin_id of the plugin instance.

string|null getDerivativeId()

Gets the derivative_id of the plugin instance.

Return Value

string|null

The derivative_id of the plugin instance NULL otherwise.

abstract protected getPluginDefinition()

{@inheritdoc}

bool isConfigurable()

Determines if the plugin is configurable.

Return Value

bool

A boolean indicating whether the plugin is configurable.

protected TranslatableMarkup t(string $string, array $args = [], array $options = [])

Translates a string to the current language or to a given language.

See \Drupal\Core\StringTranslation\TranslatableMarkup::__construct() for important security information and usage guidelines.

In order for strings to be localized, make them available in one of the ways supported by the

Parameters

string $string

A string containing the English text to translate.

array $args

(optional) An associative array of replacements to make after translation. Based on the first character of the key, the value is escaped and/or themed. See \Drupal\Component\Render\FormattableMarkup::placeholderFormat() for details.

array $options

(optional) An associative array of additional options, with the following elements:

  • 'langcode' (defaults to the current language): A language code, to translate to a language other than what is used to display the page.
  • 'context' (defaults to the empty context): The context the source string belongs to. See the @link i18n Internationalization topic @endlink for more information about string contexts.

Return Value

TranslatableMarkup

An object that, when cast to a string, returns the translated string.

See also

FormattableMarkup::placeholderFormat
TranslatableMarkup::__construct

protected formatPlural($count, $singular, $plural, array $args = [], array $options = [])

Formats a string containing a count of items.

Parameters

$count
$singular
$plural
array $args
array $options

See also

TranslationInterface::formatPlural

protected getNumberOfPlurals($langcode = NULL)

Returns the number of plurals supported by a given language.

Parameters

$langcode

See also

PluralFormulaInterface::getNumberOfPlurals

protected TranslationInterface getStringTranslation()

Gets the string translation service.

Return Value

TranslationInterface

The string translation service.

$this setStringTranslation(TranslationInterface $translation)

Sets the string translation service to use.

Parameters

TranslationInterface $translation

The string translation service.

Return Value

$this

__sleep()

{@inheritdoc}

__wakeup()

{@inheritdoc}

setMessenger(MessengerInterface $messenger)

Sets the messenger.

Parameters

MessengerInterface $messenger

The messenger.

MessengerInterface messenger()

Gets the messenger.

Return Value

MessengerInterface

The messenger.

getFormClass($operation)

Implements \Drupal\Core\Plugin\PluginWithFormsInterface::getFormClass().

Parameters

$operation

hasFormClass($operation)

Implements \Drupal\Core\Plugin\PluginWithFormsInterface::hasFormClass().

Parameters

$operation

label()

{@inheritdoc}

getConfiguration()

{@inheritdoc}

setConfiguration(array $configuration)

{@inheritdoc}

Parameters

array $configuration

protected array baseConfigurationDefaults()

Returns generic default configuration for block plugins.

Return Value

array

An associative array with the default configuration.

defaultConfiguration()

{@inheritdoc}

setConfigurationValue($key, $value)

{@inheritdoc}

Parameters

$key
$value

calculateDependencies()

{@inheritdoc}

access(AccountInterface $account, $return_as_object = FALSE)

{@inheritdoc}

Parameters

AccountInterface $account
$return_as_object

protected AccessResult blockAccess(AccountInterface $account)

Indicates whether the block should be shown.

Blocks with specific access checking should override this method rather than access(), in order to avoid repeating the handling of the $return_as_object argument.

Parameters

AccountInterface $account

The user session for which to check access.

Return Value

AccessResult

The access result.

See also

\Drupal\Core\Block\self::access()

array buildConfigurationForm(array $form, FormStateInterface $form_state)

Form constructor.

Plugin forms are embedded in other forms. In order to know where the plugin form is located in the parent form, #parents and #array_parents must be known, but these are not available during the initial build phase. In order to have these properties available when building the plugin form's elements, let this method return a form element that has a #process callback and build the rest of the form in the callback. By the time the callback is executed, the element's #parents and #array_parents properties will have been set by the form API. For more documentation on #parents and

array_parents, see \Drupal\Core\Render\Element\FormElement.

Parameters

array $form

An associative array containing the initial structure of the plugin form.

FormStateInterface $form_state

The current state of the form. Calling code should pass on a subform state created through \Drupal\Core\Form\SubformState::createForSubform().

Return Value

array

The form structure.

blockForm($form, FormStateInterface $form_state)

{@inheritdoc}

Parameters

$form
FormStateInterface $form_state

validateConfigurationForm(array $form, FormStateInterface $form_state)

{@inheritdoc}

Most block plugins should not override this method. To add validation for a specific block type, override BlockBase::blockValidate().

Parameters

array $form
FormStateInterface $form_state

See also

\Drupal\Core\Block\BlockBase::blockValidate()

blockValidate($form, FormStateInterface $form_state)

{@inheritdoc}

Parameters

$form
FormStateInterface $form_state

submitConfigurationForm(array $form, FormStateInterface $form_state)

{@inheritdoc}

Most block plugins should not override this method. To add submission handling for a specific block type, override BlockBase::blockSubmit().

Parameters

array $form
FormStateInterface $form_state

See also

\Drupal\Core\Block\BlockBase::blockSubmit()

blockSubmit($form, FormStateInterface $form_state)

{@inheritdoc}

Parameters

$form
FormStateInterface $form_state

getMachineNameSuggestion()

{@inheritdoc}

getPreviewFallbackString()

{@inheritdoc}

protected TransliterationInterface transliteration()

Wraps the transliteration service.

setTransliteration(TransliterationInterface $transliteration)

Sets the transliteration service.

Parameters

TransliterationInterface $transliteration

The transliteration service.

getContexts()

{@inheritdoc}

ContextInterface getContext($name)

{@inheritdoc}

Parameters

$name

Return Value

ContextInterface

The context object.

setContext($name, ContextInterface $context)

{@inheritdoc}

Parameters

$name
ContextInterface $context

getContextValues()

{@inheritdoc}

getContextValue($name)

{@inheritdoc}

Parameters

$name

setContextValue($name, $value)

{@inheritdoc}

Parameters

$name
$value

getContextMapping()

{@inheritdoc}

setContextMapping(array $context_mapping)

{@inheritdoc}

Parameters

array $context_mapping

ContextDefinitionInterface[] getContextDefinitions()

{@inheritdoc}

ContextDefinitionInterface getContextDefinition($name)

{@inheritdoc}

Parameters

$name

Return Value

ContextDefinitionInterface

validateContexts()

{@inheritdoc}

getCacheContexts()

{@inheritdoc}

getCacheTags()

{@inheritdoc}

getCacheMaxAge()

{@inheritdoc}

protected ContextHandlerInterface contextHandler()

Wraps the context handler.

protected array addContextAssignmentElement(ContextAwarePluginInterface $plugin, array $contexts)

Builds a form element for assigning a context to a given slot.

Parameters

ContextAwarePluginInterface $plugin

The context-aware plugin.

array $contexts

An array of contexts.

Return Value

array

A form element for assigning context.