public function sendPrivateMessageActionTool(BASE_CLASS_EventCollector $event) { $params = $event->getParams(); if (empty($params['userId'])) { return; } $userId = (int) $params['userId']; if (OW::getUser()->getId() == $userId) { return; } $activeModeList = $this->service->getActiveModeList(); $mailModeEnabled = in_array('mail', $activeModeList) ? true : false; $chatModeEnabled = in_array('chat', $activeModeList) ? true : false; if (!$mailModeEnabled) { if (!$chatModeEnabled) { return; } else { if (!OW::getUser()->isAuthorized('mailbox', 'send_chat_message')) { $status = BOL_AuthorizationService::getInstance()->getActionStatus('mailbox', 'send_chat_message'); if ($status['status'] == BOL_AuthorizationService::STATUS_PROMOTED) { $linkId = 'mb' . rand(10, 1000000); $linkSelector = '#' . $linkId; $script = UTIL_JsGenerator::composeJsString('$({$linkSelector}).click(function(){ OW.authorizationLimitedFloatbox(' . json_encode($status['msg']) . '); });', array('linkSelector' => $linkSelector)); OW::getDocument()->addOnloadScript($script); $resultArray = array(BASE_CMP_ProfileActionToolbar::DATA_KEY_LABEL => OW::getLanguage()->text('mailbox', 'send_message'), BASE_CMP_ProfileActionToolbar::DATA_KEY_LINK_HREF => 'javascript://', BASE_CMP_ProfileActionToolbar::DATA_KEY_LINK_ID => $linkId, BASE_CMP_ProfileActionToolbar::DATA_KEY_ITEM_KEY => "mailbox.send_message", BASE_CMP_ProfileActionToolbar::DATA_KEY_LINK_ORDER => 0); $event->add($resultArray); } return; } $checkResult = $this->service->checkUser(OW::getUser()->getId(), $userId); if (!$checkResult['isSuspended']) { $canInvite = $this->service->getInviteToChatPrivacySettings(OW::getUser()->getId(), $userId); if (!$canInvite) { $checkResult['isSuspended'] = true; $checkResult['suspendReasonMessage'] = OW::getLanguage()->text('mailbox', 'warning_user_privacy_friends_only', array('displayname' => BOL_UserService::getInstance()->getDisplayName($userId))); } } if ($checkResult['isSuspended']) { $linkId = 'mb' . rand(10, 1000000); $script = "\$('#" . $linkId . "').click(function(){\n\n window.OW.error(" . json_encode($checkResult['suspendReasonMessage']) . ");\n\n });"; OW::getDocument()->addOnloadScript($script); } else { $linkId = 'mb' . rand(10, 1000000); $linkSelector = '#' . $linkId; $data = $this->service->getUserInfo($userId); $script = UTIL_JsGenerator::composeJsString('$({$linkSelector}).click(function(){ var userData = {$data}; $.post(OWMailbox.openDialogResponderUrl, { userId: userData.opponentId, checkStatus: 2 }, function(data){ if ( typeof data != \'undefined\'){ if ( typeof data[\'warning\'] != \'undefined\' && data[\'warning\'] ){ OW.message(data[\'message\'], data[\'type\']); return; } else{ if (data[\'use_chat\'] && data[\'use_chat\'] == \'promoted\'){ OW.Mailbox.contactManagerView.showPromotion(); } else{ OW.Mailbox.usersCollection.add(data); OW.trigger(\'mailbox.open_dialog\', {convId: data[\'convId\'], opponentId: data[\'opponentId\'], mode: \'chat\'}); } } } }, \'json\').complete(function(){ $(\'#ow_chat_now_\'+userData.opponentId).removeClass(\'ow_hidden\'); $(\'#ow_preloader_content_\'+userData.opponentId).addClass(\'ow_hidden\'); }); });', array('linkSelector' => $linkSelector, 'data' => $data)); OW::getDocument()->addOnloadScript($script); } $resultArray = array(BASE_CMP_ProfileActionToolbar::DATA_KEY_LABEL => OW::getLanguage()->text('mailbox', 'send_message'), BASE_CMP_ProfileActionToolbar::DATA_KEY_LINK_HREF => 'javascript://', BASE_CMP_ProfileActionToolbar::DATA_KEY_LINK_ID => $linkId, BASE_CMP_ProfileActionToolbar::DATA_KEY_ITEM_KEY => "mailbox.send_message", BASE_CMP_ProfileActionToolbar::DATA_KEY_LINK_ORDER => 0); $event->add($resultArray); return; } } if (!OW::getUser()->isAuthorized('mailbox', 'send_message')) { $status = BOL_AuthorizationService::getInstance()->getActionStatus('mailbox', 'send_message'); if ($status['status'] == BOL_AuthorizationService::STATUS_PROMOTED) { $linkId = 'mb' . rand(10, 1000000); $linkSelector = '#' . $linkId; $script = UTIL_JsGenerator::composeJsString('$({$linkSelector}).click(function(){ OW.authorizationLimitedFloatbox(' . json_encode($status['msg']) . '); });', array('linkSelector' => $linkSelector)); OW::getDocument()->addOnloadScript($script); $resultArray = array(BASE_CMP_ProfileActionToolbar::DATA_KEY_LABEL => OW::getLanguage()->text('mailbox', 'create_conversation_button'), BASE_CMP_ProfileActionToolbar::DATA_KEY_LINK_HREF => 'javascript://', BASE_CMP_ProfileActionToolbar::DATA_KEY_LINK_ID => $linkId, BASE_CMP_ProfileActionToolbar::DATA_KEY_ITEM_KEY => "mailbox.send_message", BASE_CMP_ProfileActionToolbar::DATA_KEY_LINK_ORDER => 0); $event->add($resultArray); } return; } $checkResult = $this->service->checkUser(OW::getUser()->getId(), $userId); if ($checkResult['isSuspended']) { $linkId = 'mb' . rand(10, 1000000); $script = "\$('#" . $linkId . "').click(function(){\n\n window.OW.error(" . json_encode($checkResult['suspendReasonMessage']) . ");\n\n });"; OW::getDocument()->addOnloadScript($script); } else { $linkId = 'mb' . rand(10, 1000000); $linkSelector = '#' . $linkId; $data = $this->service->getUserInfo($userId); $script = UTIL_JsGenerator::composeJsString('$({$linkSelector}).click(function(){ var data = {$data}; OW.trigger("mailbox.open_new_message_form", data); });', array('linkSelector' => $linkSelector, 'data' => $data)); OW::getDocument()->addOnloadScript($script); } $resultArray = array(BASE_CMP_ProfileActionToolbar::DATA_KEY_LABEL => OW::getLanguage()->text('mailbox', 'create_conversation_button'), BASE_CMP_ProfileActionToolbar::DATA_KEY_LINK_HREF => 'javascript://', BASE_CMP_ProfileActionToolbar::DATA_KEY_LINK_ID => $linkId, BASE_CMP_ProfileActionToolbar::DATA_KEY_ITEM_KEY => "mailbox.send_message", BASE_CMP_ProfileActionToolbar::DATA_KEY_LINK_ORDER => 0); $event->add($resultArray); }