| 收藏本站 | 关于我们
首页 免费模板 收费模板 部分案例 分类模板 地方门户 二次修改 服务定制 酷站欣赏 设计学院 特效代码 字体下载
当前位置:首页 >> 二次修改
关于制作系统插件
发布时间:2011-07-16 12:20:17
标签Tags:插件
编辑发布:飞将军

222.jpg

第一:先在整站hack目录下新建一个插件目录,这里举例为hack_folder:

第二:在 hack_folder 目录下建立相关的文件:  
data.sql就是写入到插件数据表的数据文件,同时也是系统自动识别和自动安装的钩子;
install.php来编写安装插件后相关的初始设置;
fix.php来编写插件的初始设置:(0=可选安装,1=默认安装,2=强制安装)

如果需要在前台导航菜单里自动显示,请用这样的代码来实现:
if(!$db->get_one("SELECT * FROM `{$pre}menu` WHERE linkurl='do/hack.php?hack=你的插件目录名'") )  //添加前台头部导航菜单
{
        $db->query("
        INSERT INTO `{$pre}menu` (
`id` ,
`fid` ,
`name` ,
`linkurl` ,
`color` ,
`target` ,
`moduleid` ,
`type` ,
`hide` ,
`list`
)
VALUES (
NULL , '0', '插件名称', 'do/hack.php?hack=你的插件目录名'', '', '0', '0', '0', '0', '0'
)
        ");
}
menu_cache();


function menu_cache(){
    global $db,$pre;
    $query = $db->query("SELECT * FROM {$pre}menu WHERE moduleid=0 AND AND hide=0 AND fid=0 ORDER BY list DESC");
    while($rs = $db->fetch_array($query)){
        $array[]="$rs[name]|$rs[linkurl]|$rs[target]|$rs[color]|$rs[id]";
        $query2 = $db->query("SELECT * FROM {$pre}menu WHERE moduleid=0 AND AND hide=0 AND fid='$rs[id]' ORDER BY list DESC");
        while($rs2 = $db->fetch_array($query2)){
            $show.="\r\n\$MenuArray[$rs[id]][]='".addslashes("$rs2[name]|$rs2[linkurl]|$rs2[target]|$rs2[color]|$rs2[id]")."';";
        }
    }
    $webdbs[guide_word]=implode("\r\n",$array);
    write_config_cache($webdbs);   
}

admin.php来编写后台对这插件的管理操作;
member.php来编写会员中心对这插件的管理操作;
member_menu.php来编写会员中心对这插件管理连接;相关写法可如下:
        return array(
            'name'=>'插件名称',
            'url'=>'hack.php?hack=hack_folder&job=list'
         );
index.php来编写前台对这插件的显示;
文件夹template是存放插件需要的模板文件,这里又再分前台,后台和会员中心:
template/ 是存放后台管理需要的模板文件;
template/index 是存放前台需要的模板文件;
template/member 是存放会员中心需要的模板文件;
文件夹images是存放插件需要的图片文件,这里又再分前台,后台和会员中心:
images/ 是存放后台管理需要的图片文件;
images/index 是存放前台需要的图片文件;
images/member 是存放会员中心需要的图片文件;

有关插件模板名的定义,官方推荐用以下定义来编写:
list.htm (列表)
set.htm  (设置)
mod.htm  (修改)
add.htm  (添加)
menu.htm  (菜单)

在调用这些模板文件,可用模板识别函数:hack_admin_tpl(模板名):
示范:hack_admin_tpl('list');

图中我用黄色水印表示这插件的管理地址:index.php?lfj=hack_folder&job=list
开头的 index.php  是表示后台管理插件路径的统一方式;
后面的 lfj=hack_folder 就表示你当前插件目录名,这里已用下划蓝色做了区别;
最后的 job=list 就是当前对插件的管理操作,也就是后台点击插件管理时候的第一界面,其变量取决该插件的构造而定,一般默认都为list,这里已用下划红色做了区别;

而有关job变量的定义,官方推荐用以下定义来编写:
$job=="list"   (列表)  list一般都为插件管理路径的默认值,也有部分插件会是set,情况因插件不同构造而定,list就是表示查看完整的数据列表
$job=="set"   (设置)  一般在设置后都会跟上一个$action=="set"  前者是开始提取数据,后者是结束写入数据
$job=="mod"   (修改) 一般在修改后都会跟上一个$action=="mod"  前者是开始提取数据,后者是结束写入数据
$job=="add"   (添加)  一般在添加后都会跟上一个$action=="add"  前者是开始提取数据,后者是结束写入数据
还有一个变量就是删除,由于删除是属于结束写入数据的那种,所以直接定义为$action=="delete"

最后是插件操作的权限配置,也就是这里用黑色圈出的插件关键字,这也是插件唯一认证的地方,所以不同的插件都会用到不同的关键字,这是为了起到最大的安全效率;
插件操作也就是说在每次操作后都要加上这个关键字变量,也就是$Apower[hack_keywords]
举例:$job=="list"&&$Apower[hack_keywords]
                $job=="set"&&$Apower[hack_keywords]
               $action=="delete"&&$Apower[hack_keywords]

第三:把插件相关的应用连接写入到插件管理数据表中(data.sql),如:

#
# 转存表中的数据 `qb_hack
#

INSERT INTO `qb_hack` (
`keywords` ,
`name` ,
`isclose` ,
`author` ,
`config` ,
`htmlcode` ,
`hackfile` ,
`hacksqltable` ,
`adminurl` ,
`about` ,
`class1` ,
`class2` ,
`list` ,
`linkname` ,
`isbiz`
)
VALUES (
'hack_keywords',
'测试测试',
'0',
'lisheng51',
'', '', '', '',
'index.php?lfj=hack_folder&job=list',
'test for a hack',
'other',
'其它功能',
'0',
'',
'0'
);

第四:以上操作完毕,保存后新插件就会出现在自动安装界面下。

 

点击率:2474
相关文章
网页特效代码
 服务流程 | 积分说明 | 使用说明 | 粤ICP备17004399号 电视直播 | QQ头像获取