W moim niestandardowym motywie hook_preprocess_page()
i hook_preprocess_html()
funkcjach często muszę identyfikować te same informacje. Zamiast zasadniczo uruchamiać to samo, jeśli instrukcja sprawdza zarówno identyfikację tych samych informacji, o wiele bardziej sensowne byłoby po prostu zrobienie tego raz w obu z nich, a następnie przekazanie tych informacji do innej funkcji wstępnego przetwarzania. W jaki sposób mogę to zrobić? Próbowałem następujące, ale to nie działało:
function myTheme_preprocess_page(&$vars){
$vars['myValue'] = 7;
}
function myTheme_preprocess_html(&$vars){
//$vars['myValue'] should equal 7...
}
Próbowałem też na odwrót (ustawienie wartości w funkcji HTML preprocessu, a następnie pobranie jej w funkcji preprocesu strony), ale to też nie działało. Które rodzi powiązane pytanie: w jakiej kolejności są przetwarzane te funkcje preprocesowania? Wydaje mi się, że funkcja wstępnego przetwarzania strony jest dostępna przed HTML, prawda?
static
przetwarzania takiego jak pierwsza odpowiedź. i lekkie ustawienia mogą być w rzeczywistości szybsze, ponieważ nie masz narzutu wywołania funkcji dla każdego zestawu zmiennych, tylko za pierwszym razem podczas wywoływania z funkcji głównej. I oczywiście główne części (węzeł i strona) są ustawiane tylko raz.