1.整合 UCenter 后,Discuz! 注册会员在 phpcms 中为什么不显示昵称?
答:这是因为 Discuz! 只有“用户名”,没有“昵称”的概念。要解决这个问题,可以把 Discuz! 的“用户名”做为 phpcms 的“昵称”来使用。
打开 api/phpsso.php ,在第 41 行(代码为:$userinfo[‘password’] = isset($arr[‘password’]) ? $arr[‘password’] : exit(’0′);)的下面添加如下语句:
$userinfo[‘nickname’] = isset($arr[‘username’]) ? $arr[‘username’] : exit(’0′);
这样修改以后,在 Discuz! 新注册的会员,在 phpcms 中就可以显示昵
2.phpcms登录失败?
把phpsso_server/api/uc_client/model/base.php
74行改成
$this->db->connect(UC_DBHOST, UC_DBUSER, UC_DBPW, UC_DBNAME, UC_DBCHARSET, UC_DBCONNECT, UC_DBTABLEPRE);
原来是
$this->db->connect(UC_DBHOST, UC_DBUSER, UC_DBPW, ”, UC_DBCHARSET, UC_DBCONNECT, UC_DBTABLEPRE);
phpsso_server\caches\configs\system.php
‘uc_dbtablepre’=>’`phpcmsv9`.pre_ucenter_’,//Ucenter 数据库表前缀
然后更新缓存
3.同步登录?
修改BBS 程序相关文件, 使正常同步
1、修改 template\default\member\login.htm 第36行,删除
ajaxpost(‘loginform_$loginhash’,’returnmessage_$loginhash’,’returnmessage_$loginhash’, ‘onerror’);return false;
2、修改 template\default\member\login_simple.htm 第 2 行,删除
onsubmit=”return lsSubmit()”
3、修改 /source/function/function_message.php 第 78 行,查找
$param[‘header’] = true;
替换为:
$param[‘header’] = false;
如果你是dzx1.5 则应该修改 /source/function/function_core.php 第 1458 行,查找
$param[‘header’] = true;
替换为:
$param[‘header’] = false;
4.调用当前uc头像?
将以下代码拷贝到:\phpcms\libs\functions\extention.func.php
function uc_uid(){
$db_sso = pc_base::load_model(‘sso_members_model’);
$_userid = param::get_cookie(‘_userid’);
$ssoinfo = $db_sso->get_one(array(‘uid’=>$_userid),’ucuserid’);
return $ssoinfo[‘ucuserid’];
}
然后在模版中{uc_uid()} 就可以调用当前登录用户的discuz的用户id 知道discuz的用户id之后可以做很多事了
调用头像,调用用户的帖子 等等
<img src=”http://www.xmspace.net/uc_server/avatar.php?uid={uc_uid()}&size=small”>
5.帖子内容调用uc用户头像?
{pc:get sql="SELECT uid FROM ucenter_members WHERE username=’$username‘" return="data"} {loop $data $val} {/loop} {/pc}