欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

drupal6 d6 hook_nodeapi 的使用 save delete modify edit ,,,, drupal7 d7 没有hook_nodeapi ,,,大用 有大大用

shiping1 的头像

drupal7 d7 看看   /node-admin/18791


//在插入前 和插入后执行的动作
function shipingzhongcustom_nodeapi(&$node, $op, $a3 = null , $a4 = null)
{   
    if ($op='presave')
    {
        if($node->type == 'jingjiazongbiaotype' || $node->type == 'kefuzongbiaotype' || $node->type == 'seozongbiaotype')
        {
            var_dump($node);exit;         
        }
    }
}

好像是 $_GET['q']=node/add/seozongbiaotype 时 就已执行 hook_nodeapi       ($op=='prepare'),  

在node/add/seozongbiaotype提交表单$_POST['q'] 进行保存前的时候 ($op=='prepare')  相继执行  

 hook_nodeapi        ($op=='validate') (验证时 应该是验证后吧 执行)                   hook_nodeapi        ($op=='presave') (插入前执行)

 hook_nodeapi        ($op=='insert') (插入后执行)   ($op=='update')(更新后执行)



编辑时 修改时

打开 $_GET['q']=node/nid/edit

 load  执行

 prepare  执行


提交  $_POST['q']=node/nid/edit 更新时

 load  执行

validate 执行

presave  执行

update  执行



创建时 增加时

打开  $_GET['q']=/node/add/kehugengzong

 load  执行 (应该load未执行)

 prepare 执行

提交  $_POST['q']=/node/add/kehugengzong 保存时

validate 执行

presave  执行

insert 执行



  • 实现hook_nodeapi()$op == 'delete'以捕获删除操作并停止(通过调用drupal_goto(),或调用drupal_access_denied()以强制执行用户错误。仅当引用者是上述删除确认表单时才捕获删除操作。或者,更安全,将您的 VBO 操作列入白名单并在所有其他 referer 上返回 false。通常可以通过读取传递给 的 $node 来找到 referer hook_nodeapi()

d6

https://api.drupal.org/api/drupal/developer!hooks!core.php/function/hook_nodeapi/6.x

普通分类: