crx349 发表于 2019-11-4 17:09:51

Discuz!X 插件嵌入点整理

1.showmessage 嵌入点:

路径:source\function\function_message.php
hookscript(CURMODULE, $_G['basescript'], 'messagefuncs', array('param' => $_G['messageparam']));

说明:对应的调用函数命名为 XXX_message(),可以接受一个传递参数。参数的值为showmessage函数的所有参数的集合的一个数组。该嵌入点可以用于输出成功提示之前执行操作。

例子:
function logging_message() {
                if('login' == $_GET['action']) {
                        $this->_logLogin();
                }
        }
备注:登录成功后执行函数


2.discuzcode 嵌入点

路径:source\function\function_discuzcode.php

hookscript('discuzcode', 'global', 'funcs', array('param' => $param, 'caller' => 'discuzcode'), 'discuzcode');

说明:对应的调用函数固定命名应为discuzcode(),与showmessage的嵌入点类似,接受一个参数,参数为discuzcode函数所有参数的集合的一个数组。该嵌入点通常用于处理discuzcode输出,可以定义插件专有的code替换代码。

3.deletethread和deletepost函数嵌入点
路径:source\function\function_delete.php
hookscript('deletepost', 'global', 'funcs', array('param' => $hookparam, 'step' => 'check'), 'deletepost');
hookscript('deletepost', 'global', 'funcs', array('param' => $hookparam, 'step' => 'delete'), 'deletepost');
hookscript('deletethread', 'global', 'funcs', array('param' => $hookparam, 'step' => 'check'), 'deletethread');
hookscript('deletethread', 'global', 'funcs', array('param' => $hookparam, 'step' => 'delete'), 'deletethread');

说明:该嵌入点分别在删除主题(帖子)操作的前后执行,区别在于'step'参数的值。对应的调用函数命名应为 deletethread()和deletepost(),接受一个参数以取得deletethread和deletepost函数所有参数。该嵌入点用于执行删除主题(帖子)时,嵌入插件操作

页: [1]
查看完整版本: Discuz!X 插件嵌入点整理