Препроцесс 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

На каком этапе процесса вы хотите повлиять, для этого есть два варианта:

  • Функция предварительной обработки: сначала выполняется.
  • Функция процесса: выполняется после того, как все функции препроцесса были выполнить.