hook_node_type()和hook_nodeapi()之间的区别

时间:2010-08-12 09:45:25

标签: php drupal drupal-6

我正在尝试理解 hook_node_type hook_nodeapi

之间的区别

我尝试将hook_node_typestory节点和简单dsm一起使用,但什么都没有。

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

2 个答案:

答案 0 :(得分:5)

当更改节点类型时,

hook_node_type将挂钩。如果你想允许对节点类型故事等进行评论,请使用Fx。

hook_nodeapi用于挂钩可能发生在实际节点上的不同进程,例如节点被保存时,被查看时等等。

特定节点没有钩子,但你通常会做这样的事情。

function module_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) {
  if ($node->type == 'story') {
    switch ($op) {
      case 'load':
      ...
    }
  }
}

答案 1 :(得分:3)

每次删除或重命名内容类型时,都会调用

hook_node_type()。钩子的目的是重命名用于内容类型的Drupal变量(对于内容类型编辑表单中包含的任何表单字段自动完成,来自node_type_form_submit()),或者删除包含值的Drupal变量已删除的内容类型。

当从数据库加载每个节点时,将调用

hook_nodeapi(),显示节点编辑表单,显示节点,从搜索模块索引节点时,RSS源,或者节点已保存。模块应实现hook_nodeapi()以更改其他模块实现的内容类型的节点。