2012-05-13 2 views

ответ

0

Если у вас есть крюк, который передает параметр по ссылке , и вы не можете использовать drupal_alter (например, препозитивный крючок, который содержит более одного аргумента), вы можете использовать module_implements.

Таким образом, модуль может реализовать его как modulename_foo_presave вместо modulename_presave_alter. Это хорошо, когда вы хотите, чтобы модули изменяли что-то в нескольких точках жизненного цикла.

Для примера в контроле ядра drupal введите код для node_validate (drupal 7).

foreach (module_implements('node_validate') as $module) { 
    $function = $module . '_node_validate'; 
    $function($node, $form, $form_state); 
} 

из http://api.drupal.org/api/drupal/modules%21node%21node.module/function/node_validate/7

Тот же подход работает в Drupal 6, если вы хотите создать крюк, который может быть реализован таким образом.

Смежные вопросы