zoukankan      html  css  js  c++  java
  • phpcms v9 ecshop2.3.7 discuz x3.0整合

    第一步:完全安装Phpcms v9 和 Discuz! X3.0的最新版

      小编是将Phpcms v9安装在根目录,然后在根目录新建一个bbs目录安装Discuz! X2.5,本教程中的路径是以此安装目录为例的,站长们操作时应该以自己实际情况更改路径。另小编制作测试本教程时使用的是最新版的程序,所以不保证所有版本按照本教程都能整合成功,建议将程序升级到最新版。

    第二步:在 UCenter 中添加“phpsso 应用”

      登录Discuz! X3.0后台,进入“UCenter”,点击“应用管理”后点击“添加新应用”进入应用添加界面,设置如下:

      1、安装方式选择“自定义安装”

      2、应用类型选择“其他”

      3、应用名称填“phpsso”

      4、应用的主 URL, 即phpsso_server的路径,视实际情况而定,注意最后不要带斜杠。如本教程填写为http://127.0.0.1/phpsso_server

      5、通信密钥,任意填写64字节以内的英文字母及数字,不过要记住,因为phpcms 的通信密钥必须与此设置保持一致,否则 phpsso 将无法与 UCenter 正常通信。如本教程设置通信密钥为:chinaz

      6、应用IP、应用的物理路径、查看个人资料页面地址默认留空即可,而应用接口文件名称默认uc.php即可。

      7、标签单条显示模板、标签模板标记说明两项默认留空即可。

      8、是否开启同步登录:是。只有开启后,两款程序才能实现同步登录。

      9、完成后提交,将生成新的应用ID。(记住这个应用ID,在”第三步“中将用到它。)

      10、进入后台“站长”,“UCenter 设置”选项。"是否允许直接激活"一项,选择“是”。

      下面去Phpcms v9中配置phpsso。

    第三步:配置phpsso

      登录Phpcms v9后台,进入“phpsso”,点击“系统设置”,进入“UCenter配置”设置界面,设置如下:

      1、是否启用:是

      2、Ucenter api 地址,即uc_server的路径,根据你的安装情况而定,注意最后不要带斜杠。如本教程填写为:http://localhost/bbs/uc_server

      3、Ucenter 数据库信息:根据自己情况填写数据库的信息。其中数据库表前缀的格式为“`数据库名`.数据库前缀”,注意数据库名的不是单引号。

      4、应用id(APP ID),即第二步创建的 phpsso 应用时自动生成的应用ID。

      5、Ucenter 通信密钥,即第二步中设置的“通信密钥”,这两个值一定要确保一致,否则会导致无法通信。

      第四步:查看通信状态

      登录Discuz! X3.0后台,进入“UCenter”,点击“应用管理”查看第二步中创建的 phpsso 应用与 UCenter 通信是否成功。如果通信失败,请检查“第二步”与“第三步”中的各项参数配置是否正确。

      第五步:修改 Discuz!  X3.0会员登录相关。

      若不修改此处则在Phpcms v9登录后可以同步登录到Discuz!  X3.0,但是在Discuz!  X3.0登录却无法同步登录到Phpcms v9。修改步骤如下:

      1、找到discuz目录下 templatedefaultmemberlogin.htm,删除

    onsubmit="{if $this->setting['pwdsafety']}pwmd5('password3_$loginhash');{/if}pwdclear = 1;ajaxpost('loginform_$loginhash', 'returnmessage_$loginhash', 'returnmessage_$loginhash', 'onerror');return false;"

      2、找到discuz目录下 templatedefaultmemberlogin_s imple.htm ,删除

    onsubmit="{if $_G['setting']['pwdsafety']}pwmd5('ls_password');{/if}return lsSubmit();"

      3、找到discuz目录下 /source/function/function_message.php ,查找

    $param['header'] = true;

      替换为

    $param['header'] = false;



    第六步:安装ecshop 版本v2.7.3 release 20121106
    1.把discuz X3.0程序包里面的uc_client整个文件夹拷贝一份到ecshop根目录下面,不需要拷贝uc_server
    2.登录ec后台,点击会员管理栏目的会员整合,在显示的页面中点击ucenter后面的安装按钮
    3.在显示的窗口中输入ucenter的URL以及创始人密码(温馨提示:ucenter的URL就是dz程序包里面uc_server文件夹的绝对地址,ucenter创始人密码是安装dz过程中自己设置的)
    4.这也是最后一步,点击下一步选择强制转为同一用户;
    5.同时清除discuz、ucenter、ecshop、phpcms四个系统的缓存


    解决 Ecshop 2.7.3 与 Discuz! X3.0 的同步退出问题

    最近一个项目需要整合 Ecshop 和 Discuz。整合过程很简单,最新版的 Discuz! X2 已经自带了 uc_server 和 uc_client。由于主目录是 Ecshop,Discuz 放在 bbs 目录下,为了减少垃圾文件,我全局修改了 Ecshop 里关于 uc_client 的调用路径,改成了 discuz 里自带的,这样两个程序就共用一个 uc_client。

    全部设置成接口调用方式后测试发现,两边登陆都可以同步登陆到另一程序上,但退出则无法实现同步登陆。顺着 Ecshop 的退出流程,顺藤摸瓜找到了 lib_common.php 文件中的 uc_call 这个方法。这个方法的第二个参数 $params 的默认值是 null。而 Ecshop 注销时只传了调用 uc_client 中同步退出方法名做为一个参数的值,第二个参数使用的是默认值。而这个方法中通过 call_user_func_array($func, $params); 来调用对应的方法,问题就在这,第二个 $params 参数如果是 null 则 call_user_func_array 执行失败。解决办法很简单,修改 Ecshop 里 lib_common.php 中 function uc_call($func, $params=null) 这一行改成 function uc_call($func, $params=array()) 即可。

    整合完成
     
  • 相关阅读:
    ASP.NET Web API 控制器执行过程(一)
    ASP.NET Web API 控制器创建过程(二)
    ASP.NET Web API 控制器创建过程(一)
    ASP.NET Web API WebHost宿主环境中管道、路由
    ASP.NET Web API Selfhost宿主环境中管道、路由
    ASP.NET Web API 管道模型
    ASP.NET Web API 路由对象介绍
    ASP.NET Web API 开篇示例介绍
    ASP.NET MVC 视图(五)
    ASP.NET MVC 视图(四)
  • 原文地址:https://www.cnblogs.com/codelifewangwen/p/3161022.html
Copyright © 2011-2022 走看看