コード例 #1
0
ファイル: event_handler.php プロジェクト: tammyrocks/mailbox
 public function onLoadConsoleList(BASE_CLASS_ConsoleListEvent $event)
 {
     $params = $event->getParams();
     $userId = OW::getUser()->getId();
     if ($params['target'] != self::CONSOLE_ITEM_KEY) {
         return;
     }
     $conversations = $this->service->getConsoleConversationList($userId, 0, 8, $params['console']['time'], $params['ids']);
     $conversationIdList = array();
     foreach ($conversations as $conversationData) {
         if (!in_array($conversationData['conversationId'], $conversationIdList)) {
             $conversationIdList[] = $conversationData['conversationId'];
         }
         $mode = $this->service->getConversationMode($conversationData['conversationId']);
         $conversationItem = $this->service->getConversationItem($mode, $conversationData['conversationId']);
         $item = new MAILBOX_CMP_ConsoleMessageItem($conversationItem);
         $event->addItem($item->render(), $conversationData['conversationId']);
     }
     $this->service->setConversationViewedInConsole($conversationIdList, $userId);
 }
コード例 #2
0
 public function loadList(BASE_CLASS_ConsoleListEvent $event)
 {
     $params = $event->getParams();
     $userId = OW::getUser()->getId();
     if ($params['target'] != self::CONSOLE_ITEM_KEY) {
         return;
     }
     //        if ( !empty($params['ids']) && is_array($params['ids']) && count($params['ids']) >= 30 )
     //        {
     //            $requests = array();
     //        }
     //        else
     //        {
     $requests = $this->service->getConsoleConversationList($userId, 0, 10, $params['console']['time'], $params['ids']);
     //        }
     $conversationIdList = array();
     foreach ($requests as $conversation) {
         $conversationIdList[] = $conversation['conversationId'];
     }
     /* @var $conversation MAILBOX_BOL_Conversation  */
     $renderedItems = array();
     foreach ($requests as $request) {
         $senderId = 0;
         $userType = '';
         $messageId = 0;
         if ($request['initiatorId'] == $userId) {
             $senderId = $request['interlocutorId'];
             $userType = 'initiator';
             $messageId = $request['interlocutorMessageId'];
         }
         if ($request['interlocutorId'] == $userId) {
             $senderId = $request['initiatorId'];
             $userType = 'interlocutor';
             $messageId = $request['initiatorMessageId'];
         }
         $avatar = BOL_AvatarService::getInstance()->getDataForUserAvatars(array($senderId), true, true, true, false);
         $avatar = $avatar[$senderId];
         $userUrl = BOL_UserService::getInstance()->getUserUrl($senderId);
         $displayName = BOL_UserService::getInstance()->getDisplayName($senderId);
         $subject = $request['subject'];
         $text = '<span class="error">' . OW::getLanguage()->text('mailbox', 'read_permission_denied') . '</span>';
         $conversationUrl = MAILBOX_BOL_ConversationService::getInstance()->getConversationUrl($request['conversationId']);
         if (OW::getUser()->isAuthorized('mailbox', 'read_message')) {
             // check credits
             $eventParams = array('pluginKey' => 'mailbox', 'action' => 'read_message');
             $credits = OW::getEventManager()->call('usercredits.check_balance', $eventParams);
             if ($credits === false && !$request['recipientRead']) {
                 $creditsMsg = OW::getEventManager()->call('usercredits.error_message', $eventParams);
                 $text = '<span class="error">' . $creditsMsg . '</span>';
             } else {
                 $text = mb_strlen($request['text']) > 100 ? mb_substr(strip_tags($request['text']), 0, 100) . '...' : $request['text'];
                 $e = new OW_Event('mailbox.message_render', array('conversationId' => $request['conversationId'], 'messageId' => $messageId, 'senderId' => $senderId, 'recipientId' => $userId), array('short' => $text, 'full' => $request['text']));
                 OW::getEventManager()->trigger($e);
                 $eventData = $e->getData();
                 $text = $eventData['short'];
             }
         }
         $langVars = array('userUrl' => $userUrl, 'displayName' => $displayName, 'subject' => $subject, 'text' => $text, 'conversationUrl' => $conversationUrl);
         $string = OW::getLanguage()->text('mailbox', 'console_request_item', $langVars);
         $item = new MAILBOX_CMP_RequestItem();
         $item->setAvatar($avatar);
         $item->setContent($string);
         $item->setUrl($conversationUrl);
         if (empty($request['viewed']) || (!($request['viewed'] & MAILBOX_BOL_ConversationDao::VIEW_INITIATOR) && $userType == 'initiator' || !($request['viewed'] & MAILBOX_BOL_ConversationDao::VIEW_INTERLOCUTOR) && $userType == 'interlocutorId')) {
             $item->addClass('ow_console_new_message');
         }
         $js = UTIL_JsGenerator::newInstance();
         OW::getDocument()->addOnloadScript($js->generateJs());
         $event->addItem($item->render(), $request['id']);
     }
     $this->service->setConversationViewedInConsole($conversationIdList, $userId);
 }