当前位置: 主页 > 日志 > PHP >

小议《帝国下载系统》的整合接口

// by redice 2009.12.18
// http://www.redicecn.cn
// redice@163.com


《帝国下载系统》是一款很出色的开源下载系统,它的会员积分机制很完善,支持在线充值功能(充值换积分)。最近某项目需要将其和Discuz(7.0,下简称DZ7)整合起来,实现用户的统一注册,登录,退出,下载点独立(与论坛积分独立)。帝国的官方已经提供了和DZ各个版本的整合接口,但是它的接口有点小小的问题。以下以帝国2.5和DZ7的整合为例介绍一下这个整合接口(帝国安装在根目录,DZ安装在/bbs目录)。

   先按照官方接口文档的说,将文件拷贝到位(包括万能会员接口和DZ7通行证接口文件,我的帝国就安装在DZ7的上级目录中,因此不需要修改通行证接口的$EdownInstallPath)。接下来开始安装万能会员接口(http://domain/update/)。

  (1)万能会员接口的说明文档过于简单。

   先说一下这两个系统的整合原理,明白这个原理后,就能清楚理解整合接口的各选项了。

   1)用户统一。
   要做到用户统一,最简单的方法就是整合用户表,通俗地将就是整合后两个系统要使用相同的用户表。帝国整合DZ后,将不再使用帝国原来的用户表(表前缀_downuser),而使用DZ7的(表前缀_members)。要做到用户表统一,就必须要保证整合后的用户表的字段要包含原表的字段(类型也有一致)。就本例而言,即要求整合后“表前缀_members”表中要包含“表前缀_downuser”表中的所有字段(否则帝国下载系统访问用户表的时候就会因为找不到字段而出错)。为了保证后面的注册同步、登录及退出同步这里还有保证,“表前缀_members”表中的用户名、密码字段要和“表前缀_downuser”表的一致(在下面的万能接口设置中有对应的项)。

   如果想统一帝国下载系统的下载点和论坛的积分,就可以通过设置下载点字段名为论坛积分字段来实现(在下面的万能接口设置中有对应的项)。
   
   2)注册同步。
   统一使用DZ7的注册页面。DZ7的注册页面路径为“/bbs/register.php”。

   3)登录及退出同步。
   统一使用DZ7的登录和退出。DZ7的登录路径为“/bbs/logging.php?action=login&loginsubmit=yes”,退出路径为“/bbs/logging.php?action=logout”(这两个路径填写错误了就不能在下载系统前台登录和退出了)。

   帝国万能会员接口的主要功能就是实现两个系统用户表的统一,DZ7通行证接口文件的功能就是实现注册、登录及退出的同步。

   下面我们再来看看万能接口的各个选项的含义(,如下图所示,已标注于图中):
   

   注:实际上帝国万能会员接口程序修改了/class/user.php文件的一些参数,以及DZ的会员表。如下图所示。
  

   

  (2)整合后有点小问题,无法通过帝国的前台直接登录(点击前台的登录,只是打开DZ的登录页面,不能接口登录)。
   这个问题可以通过修改/iframe/loginjs.php文件来实现(如下图所示):
  
   
 
   整合成功后的效果(如下图所示):
  

[日志信息]

该日志于 2009-12-20 12:28 由 redice 发表在 redice's Blog ,你除了可以发表评论外,还可以转载 “小议《帝国下载系统》的整合接口” 日志到你的网站或博客,但是请保留源地址及作者信息,谢谢!!    (尊重他人劳动,你我共同努力)
   
验证(必填):   点击我更换验证码

redice's Blog  is powered by DedeCms |  Theme by Monkeii.Lee |  网站地图 |  本服务器由西安鲲之鹏网络信息技术有限公司友情提供

返回顶部