天空小小岛技术网站

标题: 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