前幾天對PHPCMS的短消息模塊與Ucenter進行了整合,實現PHPCMS中發短消息時在論壇(discuz)和UCHOME都可以查看到,但後來發現幾邊同時收到短消息顯得比較混亂,所以乾脆棄用了PHPCMS的短消息,直接使用UCHOME的短消息來供大家交流了,即點發短消息時直接跳轉到UCHOME來進行,但後來發現有個缺點就是如果用戶只在PHPCMS中並沒有進入UCHOME或者根本還不知道你網站有UCHOME時(雖然已經將PHPCMS與Ucenter進行了完全整全,註冊和登陸都是同步的),那麼其它用戶給該用戶發送短消息時,該用戶可能無法查覺到,所以昨天花了點時間對PHPCMS這邊感應Ucenter中短消息進行了下整合。
其實代碼也很簡單,基本直接調用UC API函數:
- 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顯示代碼即可,如下:
- {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}