You are here

drupal中的hook顺序问题

Drupal中的hook顺序问题,这是刚学Drupal开始时,经常遇到的一个问题,因为Drupal中的hook很多,有些hook,它的执行顺序,对后面的是有影响的。

比如hook_form_alter,如果一个多个模块,同时使用hook_form_alter修改同一个表单,这个时候,先后顺序不一样,效果可能也就不同。

在drupal7中,为了解决hook的顺序问题,我们可以调整模块的重量,比如我在Field

Validation模块中,就使用了下面的代码:

/**

 * Implements hook_install().

 */

function field_validation_install() {

  db_query("UPDATE {system} SET weight = 10 WHERE name = 'field_validation'");

}

通过将field_validation'模块的重量设置为10,从而让这个模块的钩子实现,放在靠后的位置执行。

Drupal版本: