Пример #1
0
 /**
  * get private conversation objs
  *
  * $mbqOpt['case'] = 'all' means get my all data.
  * $mbqOpt['case'] = 'byConvIds' means get data by conversation ids.$var is the ids.
  * $mbqOpt['case'] = 'byObjsStdPc' means get data by objsStdPc.$var is the objsStdPc.
  * @return  Mixed
  */
 public function getObjsMbqEtPc($var, $mbqOpt)
 {
     if ($mbqOpt['case'] == 'all') {
         if ($mbqOpt['oMbqDataPage']) {
             $oMbqDataPage = $mbqOpt['oMbqDataPage'];
             //ref wcf\page\ConversationListPage,wcf\data\conversation\UserConversationList
             $oUserConversationList = new UserConversationList(WCF::getUser()->userID, '', 0);
             $oUserConversationList->sqlOffset = $oMbqDataPage->startNum;
             $oUserConversationList->sqlLimit = $oMbqDataPage->numPerPage;
             $oUserConversationList->sqlOrderBy = 'conversation.lastPostTime DESC';
             $oUserConversationList->readObjects();
             $oMbqDataPage->totalNum = $oUserConversationList->countObjects();
             /* common begin */
             $mbqOpt['case'] = 'byObjsViewableConversation';
             $mbqOpt['oMbqDataPage'] = $oMbqDataPage;
             return $this->getObjsMbqEtPc($oUserConversationList->getObjects(), $mbqOpt);
             /* common end */
         }
     } elseif ($mbqOpt['case'] == 'byConvIds') {
         $oUserConversationList = new UserConversationList(WCF::getUser()->userID, '', 0);
         $oUserConversationList->setObjectIDs($var);
         $oUserConversationList->readObjects();
         $objects = $oUserConversationList->getObjects();
         /* common begin */
         $mbqOpt['case'] = 'byObjsViewableConversation';
         return $this->getObjsMbqEtPc($objects, $mbqOpt);
         /* common end */
     } elseif ($mbqOpt['case'] == 'byObjsViewableConversation') {
         $objsViewableConversation = $var;
         /* common begin */
         $objsMbqEtPc = array();
         foreach ($objsViewableConversation as $oViewableConversation) {
             $objsMbqEtPc[] = $this->initOMbqEtPc($oViewableConversation, array('case' => 'oViewableConversation'));
         }
         /* load objsRecipientMbqEtUser property */
         $oMbqRdEtUser = MbqMain::$oClk->newObj('MbqRdEtUser');
         foreach ($objsMbqEtPc as &$oMbqEtPc) {
             $userIdsRecipient = $oMbqEtPc->mbqBind['oViewableConversation']->getDecoratedObject()->getParticipantIDs();
             $objsRecipientMbqEtUser = $oMbqRdEtUser->getObjsMbqEtUser($userIdsRecipient, array('case' => 'byUserIds'));
             $oMbqEtPc->objsRecipientMbqEtUser = $objsRecipientMbqEtUser;
             //$oMbqEtPc->participantCount->setOriValue(count($oMbqEtPc->objsRecipientMbqEtUser));
         }
         if ($mbqOpt['oMbqDataPage']) {
             $oMbqDataPage = $mbqOpt['oMbqDataPage'];
             $oMbqDataPage->datas = $objsMbqEtPc;
             return $oMbqDataPage;
         } else {
             return $objsMbqEtPc;
         }
         /* common end */
     }
     MbqError::alert('', __METHOD__ . ',line:' . __LINE__ . '.' . MBQ_ERR_INFO_UNKNOWN_CASE);
 }
Пример #2
0
 /**
  * get conversation by conv id
  *
  * @param  Integer  $convId
  * @return Mixed
  */
 protected function getConversationByConvId($convId)
 {
     $oUserConversationList = new UserConversationList(WCF::getUser()->userID, '', 0);
     $oUserConversationList->setObjectIDs(array($convId));
     $oUserConversationList->readObjects();
     $objsViewableConversation = $oUserConversationList->getObjects();
     if ($objsViewableConversation && ($oViewableConversation = array_shift($objsViewableConversation)) && ($oConversation = $oViewableConversation->getDecoratedObject()) && $oConversation->conversationID) {
         return $oConversation;
     } else {
         return false;
     }
 }