你现在的位置:首页 > PHP网站建设知识库 > Joomla > 正文

基于Joomla系统的Ucenter应用开发与用户整合开发文档

背景:
    基于Joomla系统开发Ucenter应用,完成Joomla系统与整套DISCUZ平台的整合。
--------------------------------------------------------------------------------------

Step-1: 准备文件
        复制discuz系统目录下api和uc_client到相应的系统目录下

Step-2: 在Ucenter中添加应用(开发开始)
        在Joomla系统下添加install.php文件,开始进行Ucenter通信测试。
        在Ucenter中添加应用(新应用安装模式),路经如下www.gloolsosw.lo/install.php
        初步测试返回信息如下:
        array(4) {
          ["appurl"]=>string(35) "http://www.gloolsosw.lo/install.php"
          ["ucapi"]=>string(21) "http://www.ucenter.lo"
          ["ucfounderpw"]=>string(32) "aeff4fd0562f5e9d27d794daefc3fd30"
          ["installsubmit"]=>string(9) " 安 装 "
        }
        DISCUZ install/index.php 程序UC request分析
        Request-1:
            $ucinfo = dfopen($ucapi.'/index.php?m=app&a=ucinfo&release='.UC_CLIENT_RELEASE, 500, '', '', 1, $ucip);
            注:向UC发起请求,获取UC information, 返回信息列表如下:
            list($status, $ucversion, $ucrelease, $uccharset, $ucdbcharset, $apptypes) = explode('|', $ucinfo);
        Request-2:
            $postdata = "m=app&a=add&ucfounder=&ucfounderpw=".urlencode($ucpw)."&apptype=".urlencode($app_type)."&appname=".urlencode($app_name)."&appurl=".urlencode($app_url)."&appip=&appcharset=".CHARSET.'&appdbcharset='.DBCHARSET.'&'.$app_tagtemplates.'&release='.UC_CLIENT_RELEASE;
            $ucconfig = dfopen($ucapi.'/index.php', 500, $postdata, '', 1, $ucip);
            注:发送POST数据,并返回ucconfig信息。通过save_uc_config($ucconfig."|$ucapi|$ucip", CONFIG)保存ucconfig后,于UC部分交互信息完成。
            $postData所包含信息的字段列表如下:
            $ucfounderpw = getgpc('ucfounderpw', 'P');
            $apptype = getgpc('apptype', 'P');
            $apptype = getgpc('apptype', 'P');
            $appname = getgpc('appname', 'P');
            $appurl = getgpc('appurl', 'P');
            $appip = getgpc('appip', 'P');
            $viewprourl = getgpc('viewprourl', 'P');
            $appcharset = getgpc('appcharset', 'P');
            $appdbcharset = getgpc('appdbcharset', 'P');
            $apptagtemplates = getgpc('apptagtemplates', 'P');
            以上代码片断来源于UCENTER appController::onadd method.
            在执行add 行为后,UCENTER需要进行客户端应用API通信测试,也就是说在执行这一步之前,需要首先完成当前应用 /api/uc.php 部分程序工作,
            该部分调试可以参考DISCUZ程序。
            如果以上步骤都成功,那么应用添加成功,同时用户整合部分也完成。
        
        备注:在以上分析中,省略了很多中间判断和数据处理步骤,这些原程序都在DISCUZ /install/index.php 中。
        
Step-3:根据以上步骤的测试,首先完成api/uc.php部分程序
        这个是Joomla和Ucenter整合的关键部分,uc_client文档是一个支持API/uc.php程序正常运行的library包。
        另外,正式的调试api/uc.php 就必须先完成install.php 部分的程序,因此在我们粗略完成api/uc.php 程序的时候,继续回到install.php 程序部分。
        其次api/uc.php 调试的时候有一点小困难,所有的调试信息需要写到文档中,然后打开文档看调试信息,因为这个程序是服务器调用
        没有任何数据可以显示在当前页面,即使程序错误。

Step-4: 继续完成install.php部分程序