Direkt zum Inhalt
Bild
Material-Design-Dark-Best-Wallpaper-23171.png

Wie erstellt man einen benutzerdefinierten Token in Drupal 8?

AI-Translated
article publisher

pritish.k

Drupal

Token sind Platzhalter, die als Ersatz für programmgesteuert abgeleitete Werte dienen. Drupal bietet viele Standard-Token, aber es kann vorkommen, dass wir je nach Bedarf unsere eigenen benutzerdefinierten Token schreiben müssen.

In einem anderen Fall möchten wir vielleicht auch einen Token für einen Wert bereitstellen, den unser Modul generiert. 

Das Erstellen eines benutzerdefinierten Tokens umfasst zwei wichtige Teile:
Deklarieren von Token ( mit hook_token_info() )
Bereitstellen von Werten für den deklarierten Token. ( mit hook_tokens() )

Lernen wir zuerst, einen Token zu deklarieren.

Die hook_token_info() gibt hauptsächlich ein assoziatives Array mit zwei Komponenten zurück: "types" und "tokens". Das folgende Snippet deklariert einen Token. 

/**
 * Implements hook_token_info().
 */
function my_module_token_token_info() {
  $info = [];
  $info['types']['my_token_group'] = ['name' => t('Custom Group'), 'description' => t('Custom Group')];
  $info['tokens']['my_token_group’][‘my_token’][] = 'A token to extract desired characters from Node body to be used in meta descriptions';
  return $info;
}

Hier ist "my_token_group" der Maschinenname für den Token-Typ, während "my_token" der Maschinenname des Tokens innerhalb dieser Gruppe ist.
 
Dann stellen wir die Werte für den deklarierten Token bereit. Im Gegensatz zu Drupal 7 akzeptiert die hook_tokens() ein zusätzliches $bubble_metadata als Parameter. Dies sammelt Metadaten für alle Datenobjekte in $data.

/**
 * Implements hook_tokens().
 */
function  my_module_token_tokens($type, $tokens, array $data, array $options, \Drupal\Core\Render\BubbleableMetadata $bubbleable_metadata) {
  $replacements = [];
  if ($type == 'my_token_group') {

    foreach ($tokens as $name => $original) {
      // Find the desired token by name.
      switch ($name) {
        case ‘my_token’:
          $replacements[$original] = my_token_value();
          break;
      }
    }
  }
  return $replacements;
}

Die Funktion my_token_value() gibt den Ersetzungswert für den deklarierten Token zurück. Der Rückgabewert muss entweder Klartext oder ein HTML-Markup sein, das MarkupInterface implementiert.
Der Token [my_token:my_token_value] kann an jeder gewünschten Stelle in der Drupal-Site verwendet werden.


Verwenden von Token in Modulen von Drittanbietern

  1. Path Auto
    Das Pathauto-Modul generiert automatische Pfad-Alias für verschiedene Arten von Inhalten. Die Token liefern den Wert für das Ersetzungsmuster. Z.B. [node:content-type]/[node:title].
     
  2. Metatag
    Das Metatag-Modul verwendet die Token, um automatische Metadaten über eine Site bereitzustellen. Token stellen automatisch Werte für Meta-Beschreibungen, Schlüsselwörter, Seitentitel usw. basierend auf dem Inhalt des Knotens bereit.

    Der Benutzer hat die Flexibilität, alle Feldinformationen und deren Länge beim Erstellen benutzerdefinierter Token zu verwenden.
     
  3. Flag
    Das Flag-Modul bietet ein effizientes Kennzeichnungssystem, das Funktionen wie das Folgen eines Benutzers, das Abonnieren eines Themas usw. bietet.

    Dieses Modul verwendet Token, um die Werte automatisch auszufüllen, z. B. [node:flag-vote-count] (Bereitstellung der Anzahl der Stimmen). Dies trägt dazu bei, dem Benutzer eine bessere Benutzererfahrung zu bieten.

Abonnieren

Ready to start your digital transformation journey with us?

Loading form...

Verwandte Blogs

Drupal AI 1.4.0 Veröffentlichung: Wichtige Updates für Unternehmen

Drupal AI 1 4 0 Release Key Updates for Enterprise OpenSense Labs

In der Drupal AI 1.4.0-Version sagte Marcus Johansson, der das Modul pflegt, dass das Projekt einen Reifegrad erreicht hat,…

Bester Enterprise CMS Vergleich 2026: Drupal, Contentful und Sitecore im Vergleich

Best Enterprise CMS Comparison 2026 Drupal Contentful and Sitecore Compared OpenSense Labs

Entscheidungen über Enterprise-CMS werden in Monaten getroffen, wirken sich aber über Jahre aus. Drupal, Contentful und…

Einblicke in den Drupal AI Summit: Themen, Sprecher und was Sie erwartet

All You Need to Know About Drupal AI Summit

„ Das Web verändert sich schnell, und KI schreibt die Regeln neu. Sie erstellt Inhalte, baut Seiten und beantwortet Fragen…