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

FOST und Drupal KI-Initiative: Nächste Ära verantwortungsvoller KI

How FOST and Drupal AI Initiative Are Pushing the Boundaries of Responsible AI Together

Drei Jahre nach der Einführung generativer KI-Tools, die ein neues Zeitalter für künstliche Intelligenz einläuteten, gaben…

Drupal KI-Ökosystem Teil 5: KI-gestützte Inhaltsvorschläge in Drupal

Drupal AI Ecosystem Part 5 AI Content Suggestions OpenSense Labs

Drupal hat sich stetig von einem reinen Content-Management-System zu einer flexiblen Plattform entwickelt, die neue…

Drupal KI-Ökosystem Teil 4: Drupal KI-Suche mit PostgreSQL Vektordatenbank

Drupal AI Ecosystem Part 4 Drupal AI Search With PostgreSQL OpenSense Labs

Die Suche ist eine der wichtigsten Möglichkeiten, wie Menschen online Informationen finden. Ob es um die Suche nach einem…