In meinen benutzerdefinierten Themen hook_preprocess_page()
und hook_preprocess_html()
Funktionen muss ich häufig dieselben Informationen identifizieren. Anstatt im Wesentlichen dasselbe auszuführen, wenn die Anweisung beide eingecheckt hat, um die gleichen Informationen zu identifizieren, wäre es viel sinnvoller, dies nur einmal in beiden zu tun und diese Informationen dann an die andere Vorverarbeitungsfunktion zu übergeben. Wie kann ich das machen? Ich habe Folgendes versucht, aber es hat nicht funktioniert:
function myTheme_preprocess_page(&$vars){
$vars['myValue'] = 7;
}
function myTheme_preprocess_html(&$vars){
//$vars['myValue'] should equal 7...
}
Ich habe es auch umgekehrt versucht (den Wert in der HTML-Vorverarbeitungsfunktion festlegen und dann in der Seitenvorverarbeitungsfunktion abrufen), aber das hat auch nicht funktioniert. Was eine verwandte Frage aufwirft: In welcher Reihenfolge werden diese Vorverarbeitungsfunktionen verarbeitet? Es scheint mir, dass die Seitenvorverarbeitungsfunktion vor der HTML-Funktion steht. Ist das richtig?
static
Verarbeitung wie der ersten Antwort lösen . Die Einstellungen für geringes Gewicht sind möglicherweise sogar schneller, da Sie nicht für jeden Variablensatz den Funktionsaufruf-Overhead haben, sondern nur beim ersten Aufruf der Hauptfunktion. Und natürlich werden die Hauptteile (Knoten & Seite) nur einmal gesetzt.