前几天对PHPCMS的短消息模块与Ucenter进行了整合,实现PHPCMS中发短消息时在论坛(discuz)和UCHOME都可以查看到,但后来发现几边同时收到短消息显得比较混乱,所以干脆弃用了PHPCMS的短消息,直接使用UCHOME的短消息来供大家交流了,即点发短消息时直接跳转到UCHOME来进行,但后来发现有个缺点就是如果用户只在PHPCMS中并没有进入UCHOME或者根本还不知道你网站有UCHOME时(虽然已经将PHPCMS与Ucenter进行了完全整全,注册和登陆都是同步的),那么其它用户给该用户发送短消息时,该用户可能无法查觉到,所以昨天花了点时间对PHPCMS这边感应Ucenter中短消息进行了下整合。
其实代码也很简单,基本直接调用UC API函数:
PHP代码
- if($PHPCMS['uc'])
- {
- define("UC_DBHOST", $PHPCMS['uc_dbhost']) ;
- define("UC_DBUSER", $PHPCMS['uc_dbuser']) ;
- define("UC_DBPW", $PHPCMS['uc_dbpwd']) ;
- define("UC_DBNAME", $PHPCMS['uc_dbname']) ;
- define("UC_DBPRE", $PHPCMS['uc_dbpre']) ;
- define("UC_KEY", $PHPCMS['uc_key']) ;
- define('UC_APPID', $PHPCMS['uc_appid']) ;
- define("UC_API", $PHPCMS['uc_api']) ;
- define("UC_IP", $PHPCMS['uc_ip']) ;
- define("UC_DBTABLEPRE", $PHPCMS['uc_dbpre']);
- define("UC_CONNECT", 'mysql');
- define('API_RETURN_SUCCEED', 1);
- define('UC_DBCHARSET', $PHPCMS['uc_charset']);
- define('API_UPDATECREDIT', 1); //更新用户积分 开关
- define('API_GETCREDITSETTINGS', 1); //向 UCenter 提供积分设置 开关
- define('API_UPDATECREDITSETTINGS', 1); //更新应用积分设置 开关
- }
- require_once(PHPCMS_ROOT.'member/api/client/client.php');
- if($_userid){
- $ucnewpm = uc_pm_checknew($_userid);
- }
也就是直接利用uc_pm_checknew函数了,只是在PHPCMS中作下登陆判断,然后放在合适的地方,如common.inc.php中全站使用,然后在模板头部menu下面加上HTML显示代码即可,如下:
XML/HTML代码
- {if $ucnewpm}<div id="newpm"><img src="images/notice.gif"/><bgsound src="images/message.wav" id="message_sound" > <a href="http://home.***.com/space-pm-filter-newpm.html" target="_blank" style="color:#FF0000;">您有新短消息,请点击查看</a></div>
- /if}