В моей пользовательской теме hook_preprocess_page()
и hook_preprocess_html()
функциях мне часто нужно идентифицировать одну и ту же информацию. Вместо того, чтобы выполнять один и тот же if, если оператор проверяет оба идентификатора, идентифицируют одну и ту же информацию, было бы гораздо разумнее просто сделать это один раз для обоих, а затем передать эту информацию другой функции предварительной обработки. Как я могу это сделать? Я попробовал следующее, но это не сработало:
function myTheme_preprocess_page(&$vars){
$vars['myValue'] = 7;
}
function myTheme_preprocess_html(&$vars){
//$vars['myValue'] should equal 7...
}
Я также попробовал это наоборот (установил значение в функции предварительной обработки html, а затем извлек его в функции предварительной обработки страницы), но это тоже не сработало. В связи с этим возникает вопрос: в каком порядке обрабатываются эти функции предварительной обработки? Мне кажется, что функция предварительной обработки страницы предшествует HTML, это правильно?
static
обработки, такой как первый ответ. и легкие настройки могут на самом деле быть быстрее, так как у вас нет накладных расходов на вызов функции для каждого набора переменных, только при первом вызове из основной функции. И, очевидно, основные части (узел и страница) устанавливаются только один раз.