In Drupal 7 habe ich ein Modul, das hook_node_load implementiert. Es wird eine Variable erstellt, die ich in meiner Datei page.tpl.php verwenden möchte. Stellen wir uns vor, es ist die Anzahl der Knoten, die vom gleichen Typ sind wie der aktuell geladene Knoten. Ab sofort mache ich die Variable nur so global:
global $node_count;
$node_count = db_query("SELECT count FROM {node} WHERE type = :type", array(":type" => $node->type"))->fetchAll()[0]->count;
Dann muss ich in meiner page.tpl.php-Datei Folgendes tun:
global $node_count;
echo "<p>$node_count</p>";
Ich weiß, dass es eine Möglichkeit gibt, meine $node_count
Variable im Umfang zu machen , genauso wie $node
oder $user
. Die Tutorials, die ich zu diesem Thema finde, scheinen das Umschreiben der gesamten Themenfunktion zu beinhalten - ich versuche nicht, etwas so Kompliziertes zu tun. Gibt es eine einfache Möglichkeit, diese Variable in meinen .tpl.php-Dateien in den Gültigkeitsbereich aufzunehmen? So etwas wie eine Funktion?
Variablen, auf die über eine Vorlagendatei zugegriffen werden kann, können in ihrer Vorverarbeitungsfunktion festgelegt werden, die auch in einem Modul implementiert werden kann.
In Ihrem Fall sollte Ihr Modul Code ähnlich dem folgenden implementieren (ersetzen Sie "mymodule" durch den Kurznamen Ihres Moduls):
Ich überprüfe, dass
$variables['node']
es nicht leer ist, da die Seitenvorlage auch für Seiten verwendet wird, die keinem Knoten zugeordnet sind.In page.tpl.php greifen Sie über die Vorverarbeitungsfunktion mit auf denselben Variablensatz zu
$node_count
.quelle