123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- <?php
- /**
- * @file
- * Defines simple link field types.
- */
- use Drupal\Core\Routing\RouteMatchInterface;
- use Drupal\Core\Link;
- use Drupal\Core\Template\Attribute;
- /**
- * Implements hook_theme().
- */
- function vue_link_formatter_theme() {
- return [
- 'link_formatter_vue_link_formatter' => [
- 'variables' => [
- 'title' => NULL,
- 'url_title' => NULL,
- 'url' => NULL,
- 'methode' => NULL,
- 'event_modifiers' => NULL,
- ],
- ],
- ];
- }
- /**
- * Prepares variables for button link field templates.
- *
- * This template outputs a separate title and link.
- *
- * Default template: link-formatter-button-link.html.twig.
- *
- * @param array $variables
- * An associative array containing:
- * - title: (optional) A descriptive or alternate title for the link, which
- * may be different than the actual link text.
- * - url_title: The anchor text for the link.
- * - url: A \Drupal\Core\Url object.
- */
- function template_preprocess_link_formatter_vue_link_formatter(&$variables) {
- $url = $variables['url'];
- $attributes = $url->getOption('attributes');
- $attributes['class'][] = 'btn';
- $attributes['href'] = $url->toString();
- $modifiers = [];
- foreach ($variables['event_modifiers'] as $modifier => $value) {
- if ($value) {
- $modifiers[] = $modifier;
- }
- }
- $attributes['@click.' . implode('.', $modifiers)] = $variables['methode'];
- $url->setOption('attributes', $attributes);
- $variables['link'] = Link::fromTextAndUrl($variables['title'], $url )->toString();
- $variables['attributes'] = new Attribute($attributes);
- }
|