Препроцесс Vs. функции процесса в шаблоне Drupal
В чем разница между
function mythemes_preprocess_html(&$variables) { ... }
и
function mythemes_process_html(&$variables) { ... }
в drupal 7 template.php.
когда должны использовать функции препроцесса и когда должны использовать функции процесса.
спасибо.
Ответы
Ответ 1
Они фактически те же самые, которые называются в разных фазах. Функции предварительной обработки называются первыми и производятся изменения. Затем функции процесса вызывается на более поздней фазе и допускают внесение изменений для изменения любых модификаций, введенных во время фазы предварительного процесса.
Подробнее см. http://drupal.org/node/223430.
Ответ 2
Точнее, из документации API Drupal:
Если реализация является файлом шаблона, перед вызовом файла шаблона вызывается несколько функций, чтобы изменить массив $variables. Они попадают в фазу "предварительной обработки" и фазы "обработки" и выполняются (если они существуют) в следующем порядке (обратите внимание, что в следующем списке HOOK указывает имя крючка темы, MODULE указывает имя модуля, THEME указывает название темы, а ENGINE указывает название движка темы): (источник: http://api.drupal.org/api/drupal/includes!theme.inc/function/theme/7)
И если вы перейдете по ссылке выше, она будет перечислять, по порядку, целую тему(), от функций процесса до препроцессов для самого файла шаблона.
Ответ 3
На каком этапе процесса вы хотите повлиять, для этого есть два варианта:
- Функция предварительной обработки: сначала выполняется.
- Функция процесса: выполняется после того, как все функции препроцесса были
выполнить.