You are here

public function TokenSettingTypeBase::settingsPreprocess in UI Patterns Settings 8.2

Same name and namespace in other branches
  1. 8 src/Plugin/TokenSettingTypeBase.php \Drupal\ui_patterns_settings\Plugin\TokenSettingTypeBase::settingsPreprocess()

Preprocess setting variable.

Parameters

string $value: The stored value.

array $context: Context informations. Keys:

  • entity.

\Drupal\ui_patterns_settings\Definition\PatternDefinitionSetting $def: The pattern definition.

Return value

string The processed value.

Overrides PatternSettingTypeBase::settingsPreprocess

1 call to TokenSettingTypeBase::settingsPreprocess()
UrlSettingType::settingsPreprocess in src/Plugin/UiPatterns/SettingType/UrlSettingType.php
Preprocess setting variable.
1 method overrides TokenSettingTypeBase::settingsPreprocess()
UrlSettingType::settingsPreprocess in src/Plugin/UiPatterns/SettingType/UrlSettingType.php
Preprocess setting variable.

File

src/Plugin/TokenSettingTypeBase.php, line 59

Class

TokenSettingTypeBase
Base class for setting types with tokens.

Namespace

Drupal\ui_patterns_settings\Plugin

Code

public function settingsPreprocess($value, array $context, PatternDefinitionSetting $def) {
  $return_value = '';
  if (isset($value['input'])) {
    $value = $value['input'];
  }
  if (is_string($value)) {
    $token_data = [];

    /** @var \Drupal\Core\Entity\EntityInterface $entity */
    $entity = isset($context['entity']) ? $context['entity'] : NULL;
    if ($entity !== NULL) {
      $token_data[$entity
        ->getEntityTypeId()] = $entity;
    }
    try {
      $return_value = $this
        ->getTokenService()
        ->replace($value, $token_data, [
        'clear' => TRUE,
      ]);
    } catch (EntityMalformedException $e) {
      if (!ui_patterns_settings_is_layout_builder_route()) {
        throw $e;
      }

      // Do nothing inside layout builder.
    }
  }
  return $return_value;
}