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); }
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); }