Разница между hook_node_type () и hook_nodeapi () - PullRequest
1 голос
/ 12 августа 2010

Я пытаюсь понять разницу между hook_node_type и hook_nodeapi

Я пытался использовать hook_node_type с узлом story и простым dsm, но ничего не получил.

function mymod_node_story($op, $info){
   dsm($info);
}

Ответы [ 2 ]

5 голосов
/ 12 августа 2010

hook_node_type предназначен для подключения при изменении типа узла. Fx, если вы хотите разрешить комментарии к истории типа узла и т. Д.

hook_nodeapi используется, чтобы иметь возможность подключаться к различным процессам, которые могут происходить с реальным узлом, например, когда узел сохраняется, когда он просматривается и т. Д.

Для определенных узлов нет ловушки, но вместо этого вы обычно делаете что-то подобное.

function module_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) {
  if ($node->type == 'story') {
    switch ($op) {
      case 'load':
      ...
    }
  }
}
3 голосов
/ 12 августа 2010

hook_node_type() вызывается каждый раз, когда тип содержимого удаляется или переименовывается. Цель ловушки - переименовать переменные Drupal, используемые для типа контента (что автоматически делается для любого поля формы, включенного в форму редактирования типа контента, из node_type_form_submit()), или удалить Drupal переменные, содержащие значения для типа контента, который был удален.

hook_nodeapi() вызывается для каждого узла, когда он загружается из базы данных, отображается форма редактирования узла, узел визуализируется, когда узел индексируется из модуля поиска, когда канал RSS или узел сохранены. Модуль должен реализовать hook_nodeapi() для изменения узлов для типов контента, реализованных другими модулями.

...