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
- 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].
- 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.
- 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
Verwandte Blogs
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

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

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