编辑实验 创建词条
HDWiki官方

HDWiki4.0插件开发文档发表评论(1)编辑词条

目录

[显示全部]

什么是插件?编辑本段回目录

插件,是基于hdwiki系统之上,设计开发的一种小程序或小方案,用来实现对hdwiki现有功能扩展和改进。由于 hdwiki已具有相当完备的底层架构,因此插件并不需要具备很多深层的设计思想,也不需要很专业的开发人员,只

HDWiki 4.0插件开发文档
要把想实现的功能与hdwiki的基本体系挂接起来,hdwiki就能拥有更加个性化的功能。插件与界面风格都是实现hdwiki个性化的有效方式,前者多用于hdwiki功能和特性的扩充,后者则用来满足访问者多样化的审美取向。

如何安装插件?编辑本段回目录

以管理员帐号登录HDWiki4.0系统后,进入系统设置(管理后台)。
1、通过URL方式安装
在HDWiki插件功能中,点击“安装插件”进入安装界面。在输入框内输入正确的插件的URL地址,再点击“下载”按钮。待系统提示“安装成功”后,该插件的安装即已完成。此时,打开插件管理功能,已经可以看到插件列表中已经有了您安装插件。
2、通过zip文件方式安装
从HDWiki官方站点,下载插件到本地,插件都是zip格式的文件。把这个zip文件通过ftp等工具上传到hdwiki的plugins目录里面,然后进入hdwiki管理后台,插件插件管理,点击安装此插件即可。

 

如果停用、卸载插件?编辑本段回目录

1)、停用插件:如果不想使用插件,在插件列表中找到该插件,并点击对应的“停用”即可停用该插件。

2)、卸载插件:请在插件列表中找到该插件,并点击“卸载”即可卸载掉此插件。

插件的类型编辑本段回目录

目前,插件可按是否在前台显示来分。

百科联盟插件属于前台不显示的插件。
UCenter插件属于前台不显示的插件。
互动摸摸插件属于前台显示的插件。

插件数据表编辑本段回目录

和插件相关的数据表一共有三个:
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数据库表结构

如何发布我的插件编辑本段回目录

将您的插件打包成zip文件,然后上传到服务器上,有个可访问此压缩文件的URL,然后将此URL发布即可。

相关内容编辑本段回目录

→如果您认为本词条还有待完善,请 编辑词条

标签: hdwiki4.0 插件 插件开发 hdwiki系统 帮助

收藏到: Favorites  

同义词: 暂无同义词

关于本词条的评论 (共1条)查看评论>>