You are here

class BlockStyle in Block Style Plugins 8

Same name in this branch
  1. 8 src/Annotation/BlockStyle.php \Drupal\block_style_plugins\Annotation\BlockStyle
  2. 8 src/Plugin/BlockStyle.php \Drupal\block_style_plugins\Plugin\BlockStyle
Same name and namespace in other branches
  1. 8.2 src/Plugin/BlockStyle.php \Drupal\block_style_plugins\Plugin\BlockStyle

Provides a default class for block styles declared by yaml.

Hierarchy

Expanded class hierarchy of BlockStyle

1 file declares its use of BlockStyle
BlockStyleTest.php in tests/src/Unit/Plugin/BlockStyleTest.php

File

src/Plugin/BlockStyle.php, line 10

Namespace

Drupal\block_style_plugins\Plugin
View source
class BlockStyle extends BlockStyleBase {

  /**
   * {@inheritdoc}
   */
  public function defaultConfiguration() {
    $defaults = [];
    if (isset($this->pluginDefinition['form'])) {
      foreach ($this->pluginDefinition['form'] as $field => $setting) {
        if (isset($setting['#default_value'])) {
          $defaults[$field] = $setting['#default_value'];
        }
      }
    }
    return $defaults;
  }

  /**
   * {@inheritdoc}
   */
  public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
    $elements = [];

    // Get form fields from Yaml.
    foreach ($this->pluginDefinition['form'] as $field => $setting) {
      $element = [];
      foreach ($setting as $property_key => $property) {
        $element[$property_key] = $property;
      }
      if (isset($this->configuration[$field])) {
        $element['#default_value'] = $this->configuration[$field];
      }
      $elements[$field] = $element;
    }
    return $elements;
  }

  /**
   * {@inheritdoc}
   */
  public function themeSuggestion(array $suggestions, array $variables) {

    // Ensure that a template is set in the info file.
    if (isset($this->pluginDefinition['template'])) {
      $template = $this->pluginDefinition['template'];
      $styles = $this
        ->getStylesFromVariables($variables);

      // Only set suggestions if styles have been set for the block.
      if ($styles) {
        foreach ($styles as $style) {
          if (!empty($style)) {
            $suggestions[] = $template;
            break;
          }
        }
      }
    }
    return $suggestions;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
BlockStyle::buildConfigurationForm public function Form constructor. Overrides BlockStyleBase::buildConfigurationForm
BlockStyle::defaultConfiguration public function Gets default configuration for this plugin. Overrides BlockStyleBase::defaultConfiguration
BlockStyle::themeSuggestion public function Add theme suggestions for the block. Overrides BlockStyleBase::themeSuggestion
BlockStyleBase::$blockContentBundle protected property Bundle type for 'Block Content' blocks.
BlockStyleBase::$blockPlugin protected property Plugin instance for the Block being configured.
BlockStyleBase::$entityRepository protected property Instance of the Entity Repository service.
BlockStyleBase::$entityTypeManager protected property Instance of the Entity Type Manager service.
BlockStyleBase::$pluginId protected property Plugin ID for the Block being configured. Overrides PluginBase::$pluginId
BlockStyleBase::$styles Deprecated protected property Style settings for the block styles.
BlockStyleBase::baseIdMatch protected function Determine if a plugin ID matches a Base ID in a list of include/exclude.
BlockStyleBase::build public function Builds and returns the renderable array for this block style plugin. Overrides BlockStyleInterface::build
BlockStyleBase::create public static function Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface::create
BlockStyleBase::defaultStyles Deprecated public function Gets default style configuration for this plugin.
BlockStyleBase::exclude public function Exclude styles from appearing on a block. Overrides BlockStyleInterface::exclude
BlockStyleBase::formAlter Deprecated public function Overrides BlockStyleInterface::formAlter
BlockStyleBase::formElements Deprecated public function Returns an array of field elements.
BlockStyleBase::getConfiguration public function Gets this plugin's configuration. Overrides ConfigurableInterface::getConfiguration
BlockStyleBase::getStyles Deprecated public function Gets this plugin's style configuration.
BlockStyleBase::getStylesFromVariables protected function Get styles for a block set in a preprocess $variables array.
BlockStyleBase::includeOnly public function Only show styles on specific blocks. Overrides BlockStyleInterface::includeOnly
BlockStyleBase::prepareForm public function Returns the configuration form elements specific to a block configuration. Overrides BlockStyleInterface::prepareForm
BlockStyleBase::setBlockContentBundle public function Set the block content bundle type.
BlockStyleBase::setConfiguration public function Sets the configuration for this plugin instance. Overrides ConfigurableInterface::setConfiguration
BlockStyleBase::setStyles Deprecated public function Sets the style configuration for this plugin instance.
BlockStyleBase::submitConfigurationForm public function Form submission handler. Overrides PluginFormInterface::submitConfigurationForm
BlockStyleBase::submitForm Deprecated public function Overrides BlockStyleInterface::submitForm
BlockStyleBase::validateConfigurationForm public function Form validation handler. Overrides PluginFormInterface::validateConfigurationForm
BlockStyleBase::validateForm Deprecated public function Adds block style specific validation handling for the block form.
BlockStyleBase::__construct public function Construct method for BlockStyleBase. Overrides PluginBase::__construct
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.