discuz 6.1版本可以查看短消息列表,点击进入单条短消息却显示空白,经过多方查找,发现问题出在pm.php文件中的函数get_pm_by_touid,其中有个sql查询条件是related>'0',而系统后台发送的通知related='0'的,因此导致查询没有结果而不能查看短消息详细信息
改进方法如下ucenter/model/pm.php约第40行 去掉 AND related>'0'
修改为如下代码即可.
function get_pm_by_touid($uid, $touid, $starttime, $endtime) {
$arr1 = $this->db->fetch_all("SELECT * FROM ".UC_DBTABLEPRE."pms WHERE msgfromid='$uid' AND msgtoid='$touid' AND dateline>='$starttime' AND dateline<'$endtime' AND delstatus IN (0,2) ORDER BY dateline");
$arr2 = $this->db->fetch_all("SELECT * FROM ".UC_DBTABLEPRE."pms WHERE msgfromid='$touid' AND msgtoid='$uid' AND dateline>='$starttime' AND dateline<'$endtime' AND delstatus IN (0,1) ORDER BY dateline");
$arr = array_merge($arr1, $arr2);
uasort($arr, 'pm_datelinesort');
return $arr;
}
由于文件pm.php仅限在discuz中使用,所以不影响uchome中的短信息的使用。
至此,成功修复discuz不能查看短消息的错误.
(142)
(131)
(208)
(123)
(70)
(24)
(6)
(149)
(36)
(24)
(19)
(6)
(2)
(2)
(15)
(7)