Beispiel #1
0
 private function _getPMMsgList($uid, $fromUid, $startTime = 0, $stopTime = 0, $cacheCount = 0, $pmLimit = 10, $isFilter = false)
 {
     $msgList = array();
     $hasPrev = false;
     $plid = 0;
     loaducenter();
     $tempMsgList = array();
     if ($stopTime == 0) {
         // 获取新的消息
         if ($startTime == 0) {
             // 获取新的消息
             $count = (int) uc_pm_view_num($uid, $fromUid, 0);
             $tempMsgList = (array) uc_pm_view($uid, 0, $fromUid, 5, 1, $pmLimit, 0, 0);
             $count > count($tempMsgList) && ($hasPrev = true);
         } else {
             $tempMsgList = (array) uc_pm_view($uid, 0, $fromUid, 5, 1, 50, 0, 0);
             $lastIndex = count($tempMsgList) - 1;
             if ($lastIndex >= 0) {
                 $offset = 0;
                 for ($i = $lastIndex; $i >= 0; $i--) {
                     if ($tempMsgList[$i]['dateline'] <= $startTime) {
                         $offset = $i;
                         $offset++;
                         break;
                     }
                 }
                 $tempMsgList = array_slice($tempMsgList, $offset);
             }
         }
     } else {
         if ($stopTime) {
             // 获取历史的消息
             $count = (int) uc_pm_view_num($uid, $fromUid, 0);
             $lastPage = (int) (($count - 1) / $pmLimit) + 1;
             $page = (int) floor($cacheCount / $pmLimit) + 1;
             $tempList = (array) uc_pm_view($uid, 0, $fromUid, 5, $page, $pmLimit);
             foreach ($tempList as $pm) {
                 if ($pm['dateline'] < $stopTime) {
                     $tempMsgList[] = $pm;
                 }
             }
             $page < $lastPage && ($hasPrev = true);
         }
     }
     foreach ($tempMsgList as $msg) {
         $msgInfo = array();
         $plid = $msg['plid'];
         if (!$isFilter || $msg['authorid'] != $uid) {
             $tempMsg = $this->_transMessage($msg['message']);
             $msgInfo['sender'] = (int) $msg['authorid'];
             $msgInfo['mid'] = (int) $msg['pmid'];
             $msgInfo['content'] = (string) $tempMsg['content'];
             $msgInfo['type'] = $tempMsg['type'];
             $msgInfo['time'] = $msg['dateline'] . '000';
             $msgList[] = $msgInfo;
         }
     }
     return array('list' => $msgList, 'hasPrev' => $hasPrev, 'plid' => $plid);
 }
Beispiel #2
0
             $page = ceil($count / $perpage);
         }
         $list = uc_pm_view($_G['uid'], 0, $touid, 5, ceil($count / $perpage) - $page + 1, $perpage, 0, 0);
         $multi = pmmulti($count, $perpage, $page, "home.php?mod=space&do=pm&subop=view&touid={$touid}");
     } else {
         showmessage('parameters_error');
     }
 } else {
     if (defined('IN_MOBILE')) {
         $perpage = 10;
     } else {
         $perpage = 50;
     }
     $perpage = mob_perpage($perpage);
     if (!$daterange) {
         $count = uc_pm_view_num($_G['uid'], $plid, 1);
         if (!$page) {
             $page = ceil($count / $perpage);
         }
         $list = uc_pm_view($_G['uid'], 0, $plid, 5, ceil($count / $perpage) - $page + 1, $perpage, $type, 1);
     } else {
         $list = uc_pm_view($_G['uid'], 0, $plid, 5, ceil($count / $perpage) - $page + 1, $perpage, $type, 1);
         $chatpmmember = uc_pm_chatpmmemberlist($_G['uid'], $plid);
         if (!empty($chatpmmember)) {
             $authorid = $founderuid = $chatpmmember['author'];
             $query = DB::query("SELECT m.uid, m.username, mfh.recentnote FROM " . DB::table('common_member') . " m LEFT JOIN " . DB::table('common_member_field_home') . " mfh ON m.uid=mfh.uid WHERE m.uid IN (" . dimplode($chatpmmember['member']) . ")");
             while ($member = DB::fetch($query)) {
                 $chatpmmemberlist[$member['uid']] = $member;
             }
             $query = DB::query("SELECT * FROM " . DB::table('common_session') . " WHERE uid IN (" . dimplode($chatpmmember['member']) . ")");
             while ($value = DB::fetch($query)) {