HDWiki4.0插件开发文档发表评论(1)编辑词条
什么是插件?编辑本段回目录
插件,是基于hdwiki系统之上,设计开发的一种小程序或小方案,用来实现对hdwiki现有功能扩展和改进。由于 hdwiki已具有相当完备的底层架构,因此插件并不需要具备很多深层的设计思想,也不需要很专业的开发人员,只
![]() |
| HDWiki 4.0插件开发文档 |
如何安装插件?编辑本段回目录
以管理员帐号登录HDWiki4.0系统后,进入系统设置(管理后台)。
1、通过URL方式安装
在HDWiki插件功能中,点击“安装插件”进入安装界面。在输入框内输入正确的插件的URL地址,再点击“下载”按钮。待系统提示“安装成功”后,该插件的安装即已完成。此时,打开插件管理功能,已经可以看到插件列表中已经有了您安装插件。
2、通过zip文件方式安装
从HDWiki官方站点,下载插件到本地,插件都是zip格式的文件。把这个zip文件通过ftp等工具上传到hdwiki的plugins目录里面,然后进入hdwiki管理后台,插件插件管理,点击安装此插件即可。
如果停用、卸载插件?编辑本段回目录
1)、停用插件:如果不想使用插件,在插件列表中找到该插件,并点击对应的“停用”即可停用该插件。
2)、卸载插件:请在插件列表中找到该插件,并点击“卸载”即可卸载掉此插件。
插件的类型编辑本段回目录
插件数据表编辑本段回目录
和插件相关的数据表一共有三个:
wiki_plugin(插件信息表)
wiki_pluginhook(插件钩子表)
wiki_pluginvar(插件变量表)
三个表的具体详细信息请参照:HDWiki4.0数据库表结构
一个简单插件的例子编辑本段回目录
下面我们举个输出"Hello world!"的例子:
第一步,我们先建立插件的文件目录,步骤如下:
1、首先在plugins目录下新建一目录,目录名为"helloworld",此目录名为唯一标识,在以下的步骤中,创建的目录文件名必须与此标识一致,一致的地方以下会用红色标出。
2、然后在新建的helloworld目录下新建三个目录,分别为control、model、view,这三个目录名为固定的。
3、在control目录下建两个PHP文件,分别是后台的admin_helloworld.php、前台的helloworld.php
4、在model目录下建一个PHP文件,名称为helloworld.class.php
5、view目录下的文件是前台和后台页面的模版文件,若需要则创建。hello world例子仅需要一个前台显示的模版文件,所以新建helloworld.htm。(如果您开发的插件需要有后台相关设置的页面,则可新建admin_helloworld.htm做为后台的模版,此例不需要,所以没有创建)。
到此为止,插件的目录文件我们都已创建好了,现在就开始往每个相应的文件里面添加代码来实现hello world这个插件的功能。
插件目录示意图如下:(注:最上层为一级目录,由上到下结构)
helloworld文件夹 | |||||
control文件夹 | model文件夹 | view文件夹 | |||
admin_helloworld.php | helloworld.php | helloworld.class.php | helloworld.htm | admin_helloworld.htm | |
第二步,我们在新建的插件目录里面增加相应代码(即“//代码开始”“//代码结束”之间的代码),代码里红字的字体是插件的唯一标识符。
1、安装与卸载
首先,我们要在model/helloworld.class.php里面编写插件的安装与卸载代码。
//代码1开始
<?php
!defined('IN_HDWIKI') && exit('Access Denied');
class helloworldmodel { //此处填写插件的唯一标识
var $db;
var $base;
function helloworldmodel(&$base) { //此处填写插件的唯一标识
$this->base = $base;
$this->db = $base->db;
}
/*插件必须具有的安装方法*/
function install(){
$plugin=array(
'name'=>'插件例子',
'identifier'=>'helloworld',
'description'=>'插件例子!',
'datatables'=>'',
'type'=>'1',
'copyright'=>'hudong.com',
'modules'=>'',
'vars'=>array(),
'hooks'=>array()
);
return $plugin;
}
/*插件必须具有的卸载方法*/
function uninstall(){
//若您开发的插件有数据库,则此处写删除数据表的相关代码,若没有则可以留空,HDWIKI中已经写了卸载插件的代码,此helloworld例子则可以留空
}
}
?>
//代码1结束
其中,红字的字体为您需要修改的部分,详细介绍如下:
'name'=>'插件例子', //插件名称
'identifier'=>'helloworld', //插件的唯一标识
'description'=>'插件例子!', //插件描述
'datatables'=>'', //若插件需数据表,则此处填数据表名
'type'=>'1', //类型,1:表示有前台显示页面,0表示没有前台显示页面
'copyright'=>'hudong.com', //版权信息
'modules'=>'', //插件详细信息
'vars'=>array(), //插件变量
'hooks'=>array() //插件钩子
2、前台相关PHP文件control/helloworld.php
//代码2开始
<?php
!defined('IN_HDWIKI') && exit('Access Denied');
class control extends base{
function control(& $get,& $post){
$this->base( & $get,& $post);
}
function dodefault() {
$this->view->assign('hello','Hello world!');
$this->view->display('file://plugins/helloworld/view/helloworld'); //此处显示view/helloworld.htm这个文件
}
}
?>
//代码2结束
前台显示插件的页面为plugins/helloworld/view/helloworld.htm文件。
3、后台相关PHP文件control/admin_helloworld.php
//代码3开始
<?php
!defined('IN_HDWIKI') && exit('Access Denied');
class control extends base{
function control(& $get,& $post){
$this->base( & $get,& $post);
$this->view->setlang('zh','back');
}
function dodefault() {
echo '暂无内容'; //后台输出“暂无内容”的信息
}
}
?>
//代码3结束
4、view/helloworld.htm
//代码4开始
{template header} //调用了HDWIKI头部页面
{$hello}
{template footer} //调用了HDWIKI底部页面
//代码4结束
到这里,hello world这个简单的插件就制作完成了,然后打包,按之前提到过的方法进行安装就可以使用了!
hello world插件安装成功后,在首页导航中会有“插件例子”导航,点开则显示“Hello world!”。
helloword插件源代码下载(UTF8版本)
插件的钩子编辑本段回目录
钩子的添加是在安装插件的时候,代码在model下面的helloworld.class.php里(以helloworld为例,上述制作插件中提到)。
$plugin=array(
'name'=>'插件例子',
'identifier'=>'helloworld',
'description'=>'插件例子!',
'datatables'=>'',
'type'=>'1',
'copyright'=>'hudong.com',
'modules'=>'',
'vars'=>array(),
'hooks'=>array(
array(
'available'=>"1", //钩子是否可用,1为可用,0为不可用。
'title'=>'include', //钩子标题
'description'=>'', //钩子描述
'code'=>'这里填写具体的钩子代码')
)
);
目前没有提供对钩子的添加、删除、修改的操作,若想修改钩子,只能是修改插件文件然后重新安装。
插件安装成功后,在后台的插件列表中点相应插件的“详情”,即可查看钩子信息。若要在页面代码中引用钩子,则将该钩子的调用代码放到页面中即可。例:eval($this->plugin['hdapi']['hooks']['uniontitle']);
插件钩子表为:wiki_pluginhook 参考:HDWiki 4.0数据库表结构
插件的变量编辑本段回目录
插件的变量包含了对该插件的一些相关设置,如百科联盟插件的“开启和互动主站互换内容
”、“usernick”、“sitenick”等。插件变量也是在安装的时候初始化的,代码在model下面的helloworld.class.php里(以helloworld为例,上述制作插件中提到)。
$plugin=array(
'name'=>'插件例子',
'identifier'=>'helloworld',
'description'=>'插件例子!',
'datatables'=>'',
'type'=>'1',
'copyright'=>'hudong.com',
'modules'=>'',
'vars'=>array(
array('displayorder'=>"0", //插件变量显示顺序
'title'=>'', //插件变量名称
'description'=>'', //插件变量描述
'variable'=>'ucopen', //插件变量名称
'type'=>'radio', //插件变量类型:数字(number) 、字串(text) 、开关(radio) 、文本(textarea) 、选择(select)、颜色(color)
'value'=>'0', //插件变量的值
'extra'=>'') //插件变量扩充设置
),
插件安装成功后,在后台的插件管理列表中,点击相应插件的“详细”,即可对插件的变量进行设置。
插件变量表为:wiki_pluginvar 参考:HDWiki 4.0数据库表结构
如何发布我的插件编辑本段回目录
相关内容编辑本段回目录
→如果您认为本词条还有待完善,请 编辑词条
标签: hdwiki4.0 插件 插件开发 hdwiki系统 帮助
同义词: 暂无同义词
关于本词条的评论 (共1条)查看评论>>
编辑实验
创建词条
