页面嵌入模块开发
出自Discuz! 技术文库
对
页面嵌入模块开发
的源代码
跳转到:
导航
,
搜索
根据以下的原因,您无权限进行编辑这个页面操作:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
==页面嵌入类型脚本格式== <pre> <?php //全局嵌入点类(必须存在) class plugin_identifier { function HookId_1() { ...... return ...; } function HookId_2() { ...... return ...; } ...... } //脚本嵌入点类 class plugin_identifier_CURSCRIPT extends plugin_identifier { function HookId_1() { ...... return ...; } function HookId_2() { ...... return ...; } ...... } ?> </pre> *plugin_ :普通版脚本中的类名以 plugin_ 开头。手机版脚本中的类名以 mobileplugin_ 开头。 *identifier :插件的唯一标识符,在插件设置中设置。 *CURSCRIPT :嵌入点位于的脚本名,如 forum.php 为 forum。 *HookId <br> {|border="0" cellspacing="0" cellspadding="3" |- |width="140" style="border-bottom: 1px solid gray"|'''函数名''' |width="230" style="border-bottom: 1px solid gray;padding-left:10px"|'''调用位置''' |width="130" style="border-bottom: 1px solid gray"|'''声明位置''' |style="border-bottom: 1px solid gray"|'''第一个参数含义''' |- |style="border-bottom: 1px solid gray"|''HookId''() |style="border-bottom: 1px solid gray"|所有模块执行前被调用 |style="border-bottom: 1px solid gray"|脚本嵌入点类 |style="border-bottom: 1px solid gray"| |- |style="border-bottom: 1px solid gray"|''HookId''_output() |style="border-bottom: 1px solid gray"|模块执行完毕,模板输出前被调用 |style="border-bottom: 1px solid gray"|脚本嵌入点类 |style="border-bottom: 1px solid gray"|array( :'template' => 当前要输出的模版, :'message' => showmessage 的信息内容, :'values' => showmessage 的信息变量, ) |- |style="border-bottom: 1px solid gray"|global_''HookId''() |style="border-bottom: 1px solid gray"|模块执行完毕,模板输出前被调用 |style="border-bottom: 1px solid gray"|全局嵌入点类 |style="border-bottom: 1px solid gray"| |- |style="border-bottom: 1px solid gray"|''HookId''_message() |style="border-bottom: 1px solid gray"|showmessage() 执行时调用 |style="border-bottom: 1px solid gray"|脚本嵌入点类 |style="border-bottom: 1px solid gray"|array( :'param' => showmessage() 函数的参数数组, ) |- |style="border-bottom: 1px solid gray"|ad_''adId''() |style="border-bottom: 1px solid gray"|相应的广告位中调用 函数名为广告位脚本 ID 如:ad_headerbanner() |style="border-bottom: 1px solid gray"|全局嵌入点类 脚本嵌入点类 |style="border-bottom: 1px solid gray"|array( :'params' => 广告位参数, :'content' => 当前广告位原本将要显示的内容, ) |- |style="border-bottom: 1px solid gray"|common() |style="border-bottom: 1px solid gray"|所有模块执行前被调用 |style="border-bottom: 1px solid gray"|全局嵌入点类 |style="border-bottom: 1px solid gray"| |- |style="border-bottom: 1px solid gray"|discuzcode() |style="border-bottom: 1px solid gray"|discuzcode() 函数执行时调用 用于在帖子内容解析时嵌入自己的功能,函数中 $_G['discuzcodemessage'] 变量为待解析的字串 |style="border-bottom: 1px solid gray"|全局嵌入点类 |style="border-bottom: 1px solid gray"|array( :'param' => caller 函数的参数数组, :'caller' => caller 函数,此嵌入点被哪个函数调用 ::::'discuzcode' 被 discuzcode() 调用 ::::'messagecutstr' 被 messagecutstr() 调用 ) |- |style="border-bottom: 1px solid gray"|deletethread() |style="border-bottom: 1px solid gray"|deletethread() 函数执行时调用 用于在主题删除前后嵌入自己的功能,此函数将在 deletethread() 中被调用 2 次,函数中 $_G['deletethreadtids'] 变量为待处理的 TID 数组 |style="border-bottom: 1px solid gray"|全局嵌入点类 |style="border-bottom: 1px solid gray"|array( :'param' => deletethread() 函数的参数数组, :'step' => 删除的步骤 ::::'check' 检测步骤 ::::'delete' 删除步骤 ) |- |style="border-bottom: 1px solid gray"|deletepost() |style="border-bottom: 1px solid gray"|deletepost() 函数执行时调用 用于在帖子删除前后嵌入自己的功能,此函数将在 deletepost() 中被调用 2 次,函数中 $_G['deletepostids'] 变量为待处理的 ID 数组 |style="border-bottom: 1px solid gray"|全局嵌入点类 |style="border-bottom: 1px solid gray"|array( :'param' => deletepost() 函数的参数数组, :'step' => 删除的步骤 ::::'check' 检测步骤 ::::'delete' 删除步骤 ) |- |style="border-bottom: 1px solid gray"|avatar() (X2.5 新增) |style="border-bottom: 1px solid gray"|avatar() 函数执行时调用 用于在头像调用时嵌入自己的功能,函数中 $_G['hookavatar'] 变量为新头像返回值 |style="border-bottom: 1px solid gray"|全局嵌入点类 |style="border-bottom: 1px solid gray"|array( :'param' => avatar() 函数的参数数组 : ) |} 要查看所有的预定义嵌入点,请打开 config/config_global.php 文件,将文件结尾添加的设计者模式值改成“2”,然后更新缓存即可。在页面源码中查找"<hook>"可搜索到嵌入点。(详细内容可参阅的《[[插件嵌入点列表]]》) <pre>$_config['plugindeveloper'] = 2;</pre> 预定义的嵌入点会在页面预置好的位置输出函数返回的内容。函数返回值类型如果是 array 且是空值的,必须输出一个空数组,如: <pre>return array();</pre> 函数名并不限于以上列表,您可以自定义,只要符合以下规则,函数就会在适当的地方被调用。 <pre>function CURMODULE_USERDEFINE[_output]()</pre> CURMODULE 指明了此函数在哪个模块执行,可通过常量 CURMODULE 得到当前页面的 CURMODULE 值。 USERDEFINE 可自定义,如果函数名以“_output”结尾则会在模板输出前调用,否则会在模块执行前调用。 如:attachment_test() 函数会在论坛的下载附件的时候执行。 “_output”结尾的函数的第一个参数为数组,含义为 array('template' => 要输出的模板名, 'message' => showmessage 的文字) 如:以下函数将在登录的时候输出调试文字 <pre>function logging_test_output($a) { print_r($a); print_r($_POST); }</pre> plugin_identifier 类中的其它函数为了便于阅读建议以“_”开头,如: <pre><?php class plugin_sample { function _updatecache() { ...... return ...; } } class plugin_sample_forum extends plugin_sample { function viewthread_posttop() { ...... return ...; } ...... } ?></pre> ==插件嵌入点列表== 附: [[插件嵌入点列表]]
返回到
页面嵌入模块开发
。
查看
页面
讨论
查看源代码
历史
个人工具
登录
导航
首页
社区入口
当前事件
最近更改
随机页面
帮助
搜索
工具箱
链入页面
链出更改
特殊页面