You are here

class Contextual in Custom Formatters 8.3

Contextual links optional integration plugin.

Plugin annotation


@FormatterExtras(
  id = "contextual",
  label = "Contextual links",
  description = "Behaviour for Contextual links integration.",
  dependencies = {
    "module" = {
      "contextual"
    }
  }
)

Hierarchy

Expanded class hierarchy of Contextual

File

src/Plugin/CustomFormatters/FormatterExtras/Contextual.php, line 25

Namespace

Drupal\custom_formatters\Plugin\CustomFormatters\FormatterExtras
View source
class Contextual extends FormatterExtrasBase {

  /**
   * {@inheritdoc}
   */
  public function settingsForm() {
    $form = [];
    $form['mode'] = [
      '#type' => 'radios',
      '#title' => $this
        ->t('Mode'),
      '#options' => [
        CUSTOM_FORMATTERS_EXTRAS_CONTEXTUAL_DISABLED => $this
          ->t('Disabled'),
        CUSTOM_FORMATTERS_EXTRAS_CONTEXTUAL_ENABLED => $this
          ->t('Enabled'),
      ],
      '#default_value' => $this->entity
        ->getThirdPartySetting('contextual', 'mode', CUSTOM_FORMATTERS_EXTRAS_CONTEXTUAL_ENABLED),
    ];
    return $form;
  }

  /**
   * {@inheritdoc}
   */
  public function settingsSave(array $form, FormStateInterface $form_state) {
    $this->entity
      ->setThirdPartySetting('contextual', 'mode', $form_state
      ->getValues()['extras']['contextual']['mode']);
  }

  /**
   * {@inheritdoc}
   */
  public function formatterViewElementsAlter(array &$element) {
    if ($this->entity
      ->getThirdPartySetting('contextual', 'mode', CUSTOM_FORMATTERS_EXTRAS_CONTEXTUAL_ENABLED) == CUSTOM_FORMATTERS_EXTRAS_CONTEXTUAL_ENABLED) {
      $element[0] = [
        'markup' => $element[0],
      ];
      $element[0]['contextual_links'] = [
        '#type' => 'contextual_links_placeholder',
        '#id' => _contextual_links_to_id([
          'custom_formatters' => [
            'route_parameters' => [
              'formatter' => $this->entity
                ->id(),
            ],
          ],
        ]),
      ];
      $element['#attributes']['class'][] = 'contextual-region';
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
Contextual::formatterViewElementsAlter public function
Contextual::settingsForm public function Settings form callback. Overrides FormatterExtrasBase::settingsForm
Contextual::settingsSave public function Save callback for settings form. Overrides FormatterExtrasBase::settingsSave
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
FormatterExtrasBase::$entity protected property The Formatter entity.
FormatterExtrasBase::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase::__construct
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::$pluginId protected property The plugin_id.
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.