Если у меня есть два модуля, каждый реализовал свой хук preprocess_node. Тогда какой из них будет вызываться первым? Есть ли способ обеспечить порядок, в котором он будет вызываться?
module1_preprocess_node(&$vars){
$vars['submitted'] = "test1";
}
module2_preprocess_node(&$vars){
$vars['submitted'] = "test2";
}
Интересно, какой будет результат ... test1 или test2. Заранее спасибо
Все хуки в Drupal запускаются в порядке веса модуля. По умолчанию все модули имеют нулевой вес, поэтому, если вы хотите контролировать точный порядок, в котором они запускаются, вам нужно что-то изменить в базе данных.
Если вы посмотрите документацию API для module_list () , связи прерываются в алфавитном порядке имени файла .module.
Если модули не изменили свой вес в таблице system
, то результатом будет test2
.
Первый вызванный модуль имеет меньший вес; когда два модуля имеют одинаковый вес, они сортируются по алфавиту по возрастанию. Это допустимо для каждого вызванного хука.