天空小小岛技术网站
标题:
Discuz!X1 嵌入点 及其插件的编写说明
[打印本页]
作者:
s.Bo
时间:
2010-7-15 13:45
标题:
Discuz!X1 嵌入点 及其插件的编写说明
首先插件的路径改变了
插件放置于 source/plugin/目录下
数据库读取的写法也发生了改变:
使用了类的静态方法好处显而易见不需要原来 $GLOBALS[‘db’] 直接在任何地点拿出来就能用
DB::table('forum_attachment'); //这里会返回 pre_ forum_attachment
DB::fetch_first($query) //这里对应原来DZ7的 $db-> fetch_first($query)
DB::query($query) //对应原来DZ7的 $db-> query ($query)
DB::fetch($query) //对应原来DZ7的 $db-> fetch_array ($query)
关于嵌入点:
Discuz!X1 由于有众多模块 .. 所以插件平台在原来DZ7.2 的基础上进行了升级
具体的写法:
class plugin_插件id_com {
function plugin_
插件id
_com(){
//这个写法会被插件执行函数runhooks() 运行时调用执行...
return 'this is globals plugin_
插件id
_com';
}
function global_footer(){
// 这个是全局嵌入点的...所有的页面包括首页论坛群组空间等等
return 'this is globals global_footer';
}
}
//下面这里就重要了..
// DISCUZ! X 的插件运行机制有些改动... 由于Dx 使用了模块化包含方式..
//所以就有必要强调嵌入点是哪个模块下的
//模块的定义在每个最外层文件的最上部如:forum.php
// define('CURSCRIPT', 'forum'); 定义了模块名称 forum
//另外原来DISCUZ 7.2 使用的执行脚本常量由原来的 CURSCRIPT 改为 CURMODULE
//所以大家在写 forum 嵌入点的时候判断模块下执行的脚本就要用 CURMODULE 来判断
//另外嵌入点的具体写法如下:
//只有用'plugin_'+
插件id
+_+模块的名称对原来的类进行继承扩展才能让模块内的嵌入点显示
class plugin_bigqi_com_forum extends plugin_
插件id
_com {
function index_top(){
return 'this is forum index_top';
}
}
// 另外 原来的 DZ7.2 使用的引用模板的写法不变只是插件的模板目录的名称改变了
由templates 改成了 template
例如:
source/plugin/bigqi_com_picrollshow/template/
插件模板引擎的写法 保持不变 我这里写个示例
// include template('bigqi_com:picrollshow');
// return $return;
欢迎光临 天空小小岛技术网站 (http://tkxxd.net/)
Powered by Discuz! X3.1