class TokenizeAreaPluginBase

Same name and namespace in other branches
  1. 11.x core/modules/views/src/Plugin/views/area/TokenizeAreaPluginBase.php \Drupal\views\Plugin\views\area\TokenizeAreaPluginBase

Tokenized base class for area handlers.

This class provides a method tokenizeValue() to tokenize a given value with the tokens of the first view result and additionally applies global token replacement to the passed value. The form elements to enable the replacement functionality is automatically added to the buildOptionsForm().

Hierarchy

Expanded class hierarchy of TokenizeAreaPluginBase

Related topics

File

core/modules/views/src/Plugin/views/area/TokenizeAreaPluginBase.php, line 18

Namespace

Drupal\views\Plugin\views\area
View source
abstract class TokenizeAreaPluginBase extends AreaPluginBase {
  
  /**
   * {@inheritdoc}
   */
  protected function defineOptions() {
    $options = parent::defineOptions();
    $options['tokenize'] = [
      'default' => FALSE,
    ];
    return $options;
  }
  
  /**
   * {@inheritdoc}
   */
  public function buildOptionsForm(&$form, FormStateInterface $form_state) {
    parent::buildOptionsForm($form, $form_state);
    // Add tokenization form elements.
    $this->tokenForm($form, $form_state);
  }
  
  /**
   * Adds tokenization form elements.
   */
  public function tokenForm(&$form, FormStateInterface $form_state) {
    $form['tokenize'] = [
      '#type' => 'checkbox',
      '#title' => $this->t('Use replacement tokens from the first row'),
      '#default_value' => $this->options['tokenize'],
    ];
    // Get a list of the available fields and arguments for token replacement.
    $options = [];
    $optgroup_arguments = (string) $this->t('Arguments');
    $optgroup_fields = (string) $this->t('Fields');
    foreach ($this->view->display_handler
      ->getHandlers('field') as $field => $handler) {
      $options[$optgroup_fields]["{{ {$field} }}"] = $handler->adminLabel();
    }
    foreach ($this->view->display_handler
      ->getHandlers('argument') as $arg => $handler) {
      $options[$optgroup_arguments]["{{ arguments.{$arg} }}"] = $this->t('@argument title', [
        '@argument' => $handler->adminLabel(),
      ]);
      $options[$optgroup_arguments]["{{ raw_arguments.{$arg} }}"] = $this->t('@argument input', [
        '@argument' => $handler->adminLabel(),
      ]);
    }
    if (!empty($options)) {
      $form['tokens'] = [
        '#type' => 'details',
        '#title' => $this->t('Replacement patterns'),
        '#open' => TRUE,
        '#id' => 'edit-options-token-help',
        '#states' => [
          'visible' => [
            ':input[name="options[tokenize]"]' => [
              'checked' => TRUE,
            ],
          ],
        ],
      ];
      $form['tokens']['help'] = [
        '#markup' => '<p>' . $this->t('The following tokens are available. You may use Twig syntax in this field.') . '</p>',
      ];
      foreach (array_keys($options) as $type) {
        if (!empty($options[$type])) {
          $items = [];
          foreach ($options[$type] as $key => $value) {
            $items[] = $key . ' == ' . $value;
          }
          $form['tokens'][$type]['tokens'] = [
            '#theme' => 'item_list',
            '#items' => $items,
          ];
        }
      }
      $form['tokens']['html_help'] = [
        '#markup' => '<p>' . $this->t('You may include the following allowed HTML tags with these "Replacement patterns": <code>@tags</code>', [
          '@tags' => '<' . implode('> <', Xss::getAdminTagList()) . '>',
        ]) . '</p>',
      ];
    }
    $this->globalTokenForm($form, $form_state);
  }
  
  /**
   * Replaces value with special views tokens and global tokens.
   *
   * @param string $value
   *   The value to eventually tokenize.
   *
   * @return string
   *   Tokenized value if tokenize option is enabled. In any case global tokens
   *   will be replaced.
   */
  public function tokenizeValue($value) {
    if ($this->options['tokenize']) {
      $value = $this->view
        ->getStyle()
        ->tokenizeValue($value, 0);
    }
    // As we add the globalTokenForm() we also should replace the token here.
    return $this->globalTokenReplace($value);
  }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
AreaPluginBase::$areaType public property The type of this area handler, i.e. &#039;header&#039;, &#039;footer&#039;, or &#039;empty&#039;.
AreaPluginBase::adminSummary public function
AreaPluginBase::init public function Overrides Drupal\views\Plugin\views\HandlerBase::init().
AreaPluginBase::isEmpty public function Does that area have nothing to show.
AreaPluginBase::preRender public function Performs any operations needed before full rendering.
AreaPluginBase::render abstract public function Render the area.
AreaPluginBase::usesGroupBy public function
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
DependencySerializationTrait::__wakeup public function #[\ReturnTypeWillChange]
HandlerBase::$field public property With field you can override the realField if the real field is not set.
HandlerBase::$moduleHandler protected property The module handler.
HandlerBase::$query public property Where the $query object will reside.
HandlerBase::$realField public property The real field.
HandlerBase::$relationship public property The relationship used for this field.
HandlerBase::$table public property The table this handler is attached to.
HandlerBase::$tableAlias public property The alias of the table of this handler which is used in the query.
HandlerBase::$viewsData protected property The views data service.
HandlerBase::acceptExposedInput public function Take input from exposed handlers and assign to this handler, if necessary.
HandlerBase::access public function 1
HandlerBase::access public function 1
HandlerBase::adminLabel public function
HandlerBase::breakString public static function
HandlerBase::broken public function
HandlerBase::buildExposedForm public function Render our chunk of the exposed handler form when selecting.
HandlerBase::buildExposeForm public function Form for exposed handler options.
HandlerBase::buildExtraOptionsForm public function Provide a form for setting options.
HandlerBase::buildGroupByForm public function Provide a form for aggregation settings.
HandlerBase::calculateDependencies public function
HandlerBase::canExpose public function Determine if a handler can be exposed.
HandlerBase::caseTransform protected function Transform a string by a certain method.
HandlerBase::defaultExposeOptions public function Set new exposed option defaults when exposed setting is flipped on.
HandlerBase::defineExtraOptions public function Provide defaults for the handler.
HandlerBase::displayExposedForm public function Displays the Expose form.
HandlerBase::ensureMyTable public function
HandlerBase::exposedInfo public function Get information about the exposed form for the form renderer.
HandlerBase::getDateField public function Creates cross-database SQL dates.
HandlerBase::getDateFormat public function Creates cross-database SQL date formatting.
HandlerBase::getEntityType public function
HandlerBase::getField public function
HandlerBase::getJoin public function
HandlerBase::getModuleHandler protected function Gets the module handler.
HandlerBase::getTableJoin public static function
HandlerBase::getViewsData protected function Gets views data service.
HandlerBase::hasExtraOptions public function Determines if the handler has extra options.
HandlerBase::isAGroup public function Returns TRUE if the exposed filter works like a grouped filter.
HandlerBase::isExposed public function Determine if this item is &#039;exposed&#039;.
HandlerBase::multipleExposedInput public function Define if the exposed input has to be submitted multiple times.
HandlerBase::placeholder protected function Provides a unique placeholders for handlers.
HandlerBase::postExecute public function
HandlerBase::preQuery public function
HandlerBase::query public function
HandlerBase::sanitizeValue public function
HandlerBase::setModuleHandler public function Sets the module handler.
HandlerBase::setRelationship public function
HandlerBase::setViewsData public function
HandlerBase::showExposeButton public function Shortcut to display the expose/hide button.
HandlerBase::showExposeForm public function Shortcut to display the exposed options form.
HandlerBase::storeExposedInput public function If set to remember exposed input in the session, store it there.
HandlerBase::submitExposed public function Submit the exposed handler form.
HandlerBase::submitExposeForm public function Perform any necessary changes to the form exposes prior to storage.
HandlerBase::submitExtraOptionsForm public function Perform any necessary changes to the form values prior to storage.
HandlerBase::submitFormCalculateOptions public function Calculates options stored on the handler.
HandlerBase::submitGroupByForm public function Perform any necessary changes to the form values prior to storage.
HandlerBase::submitTemporaryForm public function Submits a temporary form.
HandlerBase::validate public function
HandlerBase::validateExposed public function Validate the exposed handler form.
HandlerBase::validateExposeForm public function Validate the options form.
HandlerBase::validateExtraOptionsForm public function Validate the options form.
HandlerBase::__construct public function Constructs a Handler object. 2
HandlerBase::__construct public function Constructs a Handler object. 2
MessengerTrait::$messenger protected property The messenger. 7
MessengerTrait::$messenger protected property The messenger. 7
MessengerTrait::messenger public function Gets the messenger. 7
MessengerTrait::messenger public function Gets the messenger. 7
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$configuration protected property Configuration information passed into the plugin.
PluginBase::$definition public property Plugins&#039; definition.
PluginBase::$displayHandler public property The display object this plugin is for.
PluginBase::$options public property Options for this plugin will be held here.
PluginBase::$pluginDefinition protected property The plugin implementation definition.
PluginBase::$pluginId protected property The plugin_id.
PluginBase::$renderer protected property Stores the render API renderer.
PluginBase::$usesOptions protected property Denotes whether the plugin has an additional options form. 1
PluginBase::$usesOptions protected property Denotes whether the plugin has an additional options form. 1
PluginBase::$view public property The top object of a view.
PluginBase::create public static function 2
PluginBase::create public static function 2
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::destroy public function
PluginBase::doFilterByDefinedOptions protected function Do the work to filter out stored options depending on the defined options.
PluginBase::filterByDefinedOptions public function
PluginBase::getAvailableGlobalTokens public function
PluginBase::getBaseId public function
PluginBase::getDerivativeId public function
PluginBase::getPluginDefinition public function 1
PluginBase::getPluginDefinition public function 1
PluginBase::getPluginId public function
PluginBase::getProvider public function
PluginBase::getRenderer protected function Returns the render API renderer.
PluginBase::globalTokenForm public function
PluginBase::globalTokenReplace public function
PluginBase::INCLUDE_ENTITY constant Include entity row languages when listing languages.
PluginBase::INCLUDE_NEGOTIATED constant Include negotiated languages when listing languages.
PluginBase::isConfigurable public function Determines if the plugin is configurable.
PluginBase::listLanguages protected function Makes an array of languages, optionally including special languages.
PluginBase::pluginTitle public function
PluginBase::preRenderAddFieldsetMarkup public static function
PluginBase::preRenderFlattenData public static function
PluginBase::queryLanguageSubstitutions public static function Returns substitutions for Views queries for languages.
PluginBase::setOptionDefaults protected function Fills up the options of the plugin with defaults.
PluginBase::submitOptionsForm public function 1
PluginBase::submitOptionsForm public function 1
PluginBase::summaryTitle public function
PluginBase::themeFunctions public function
PluginBase::trustedCallbacks public static function
PluginBase::unpackOptions public function
PluginBase::usesOptions public function 1
PluginBase::usesOptions public function 1
PluginBase::validateOptionsForm public function 1
PluginBase::validateOptionsForm public function 1
PluginBase::viewsTokenReplace protected function Replaces Views&#039; tokens in a given string.
PluginBase::VIEWS_QUERY_LANGUAGE_SITE_DEFAULT constant Query string to indicate the site default language.
StringTranslationTrait::$stringTranslation protected property The string translation service.
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.
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.
TokenizeAreaPluginBase::buildOptionsForm public function Provide a form to edit options for this plugin. Overrides AreaPluginBase::buildOptionsForm
TokenizeAreaPluginBase::defineOptions protected function Information about options for all kinds of purposes will be held here. Overrides AreaPluginBase::defineOptions
TokenizeAreaPluginBase::tokenForm public function Adds tokenization form elements.
TokenizeAreaPluginBase::tokenizeValue public function Replaces value with special views tokens and global tokens.
TrustedCallbackInterface::THROW_EXCEPTION constant Untrusted callbacks throw exceptions.
TrustedCallbackInterface::TRIGGER_SILENCED_DEPRECATION constant Untrusted callbacks trigger silenced E_USER_DEPRECATION errors.
TrustedCallbackInterface::TRIGGER_WARNING constant Untrusted callbacks trigger E_USER_WARNING errors.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.