返回列表 回复 发帖

教你如何整合dedecms2007+discuz 6.0

  由于一直使用DZ,所以特别希望能将dede2007和DZ整合。并且整合后还能使用SS,个人认为SS的博客要好于LX的,圈子和相册也都不错,虽然被Zend了,但这几个功能二次开发的可能性比较小了吧?

  首先要说明一下,也许成功只是个例,不一定具有普遍性。我的测试环境:win 2003 , Apache 2.2.6 ,php 5.2.5,MySQL 5.0.45。

  本文所采用的都是官方提供的文件,未做程序增减,只做了几处修改,保证了程序的安全性。之前也看到有网友整合成功,但改动很多,一直未能去做,而官方迟迟未动,只好自己下手了。

  说了这么多废话,开始吧。

  步骤如下:

  1、备份你的数据。

  2、在dede2007后台,系统设置→通行证设置→启用,复制通行证密钥的内容备用,点击DISCUZ5.5,使用其自动填入的内容即可。

  3、DZ不用做任何改动。

  4、打开dede2007压缩包,EasyAPI\API\DZ5.5,编辑pp_remote_interface.php,设置$cfg_cookie_encode中填写第2步复制的内容。设置$DedeAPI_Url = "http://localhost/member/passport/pp_dederemote_new.php"; ,注意:本机测试不能省略http://localhost,否则会出现“远程通讯错误”,如果公网测试,请填写你的域名。

  5、参照EasyAPI\API\DZ5.5中的logging.php和register.php,修改你的DZ目录中的这两个文件。这里没有覆盖的原因,是因为DZ6的文件与DZ5.5有些差异,dede的文件中改动处都有注释。修改完成后,连同第4步中的文件及pub_httpdown.php一同放入DZ文件夹中。

  6、打开dede2007压缩包中的EasyAPI文件夹的Dedecms,用member文件夹覆盖原来dede的member。

  7、打开member/passport/pp_dederemote_new.php,找到
/*--------------------------------
会员注册
function __UserReg()
---------------------------------*/

把原来$inQuery字串替换面下面的:
    $inQuery = "INSERT INTO #@__member(userid,pwd,uname,sex,membertype,money,email, jointime,joinip,logintime,loginip,news) VALUES ('$ppuserid','$userpwd','$userid','','10','0',  '','$ntime','$loginip','$ntime','$loginip','');";

再找到
/*--------------------------------
会员登录
function __UserLogin()
---------------------------------*/

把$inQuery字串也替换掉,内容同上。

  说明:dede2007的member表结构与dede4的差很多,少了很多字段,这导致了DZ注册后不能在dede新增用户,所以就无法达到统一登录。

  经过以上很少的改动,基本上使用官方文件达到了dede2007整合DZ6,同时还可以使用SS,不错吧。

  最后,要说明的是:

  以上方法适用于dede整合到DZ,就是使用使用DZ的登录、注册系统(个人认为DZ的要好一些),DZ的原用户登录后会自动在dede2007中添加,原dede的用户你只好自己想办法了。

  新注册的用户,在dede中未显示登录?需要退出后重新登录一次就好了,可能是注册时未更新缓存吧,未仔细研究。

  首页登录不好用?是的,貌似官方也未整合好吧?程序中似乎只做了转向,并未传递参数。如果你实在想改,请参照DZ的登录页面自己改吧。

  修改后的程序文件放在附件中,对程序过敏的可以直接使用,前提是你相信我不会在程序中做手脚,建议你最好DIY,用着也放心。

  能否实现积分、用户组同步?很遗憾,不能。整合后仍然是两套系统,只不过利用cookie实现了同步登录。
附件: 您所在的用户组无法下载或查看附件
返回列表