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?

Verwandte Blogs

Zurück von der DrupalCon Atlanta 2025: Ein Meilenstein für OpenSense Labs

Zurück von der DrupalCon Atlanta 2025: Ein Meilenstein für OpenSense Labs

„Fit. Schnell. Für die Ewigkeit gebaut.“ Das war nicht nur ein Slogan, sondern die Denkweise, mit der wir zur DrupalCon…

Erklärbare KI-Tools: SHAPs Stärke in der KI

Explainable AI tools Explainable AI And SHAP OpenSense Labs

Wissen Sie, was erklärbare KI-Tools sind? Erklärbare KI-Tools sind Programme, die zeigen, wie eine KI ihre Entscheidungen…

KI-Chatbots: Präzision und Persönlichkeit in Perfektion

Creating AI Chatbot OpenSense Labs

In der Welt der künstlichen Intelligenz ist die Entwicklung eines KI-Chatbots, der nicht nur akkurate Informationen liefert…