Same name and namespace in other branches
  1. 8.9.x core/modules/contextual/contextual.module \_contextual_id_to_links()
  2. 9 core/modules/contextual/contextual.module \_contextual_id_to_links()

Unserializes the result of _contextual_links_to_id().

Note that $id is user input. Before calling this method the ID should be checked against the token stored in the 'data-contextual-token' attribute which is passed via the 'tokens' request parameter to \Drupal\contextual\ContextualController::render().

Parameters

string $id: A serialized representation of a #contextual_links property value array.

Return value

array The value for a #contextual_links property.

See also

_contextual_links_to_id()

\Drupal\contextual\ContextualController::render()

2 calls to _contextual_id_to_links()
ContextualController::render in core/modules/contextual/src/ContextualController.php
Returns the requested rendered contextual links.
ContextualUnitTest::testContextualIdToLinks in core/modules/contextual/tests/src/Kernel/ContextualUnitTest.php
Tests the conversion from contextual ID to links.

File

core/modules/contextual/contextual.module, line 207
Adds contextual links to perform actions related to elements on a page.

Code

function _contextual_id_to_links($id) {
  $contextual_links = [];
  $contexts = explode('|', $id);
  foreach ($contexts as $context) {
    [
      $group,
      $route_parameters_raw,
      $metadata_raw,
    ] = explode(':', $context);
    parse_str($route_parameters_raw, $route_parameters);
    $metadata = [];
    parse_str($metadata_raw, $metadata);
    $contextual_links[$group] = [
      'route_parameters' => $route_parameters,
      'metadata' => $metadata,
    ];
  }
  return $contextual_links;
}