/** * create a new ReceviedMessage with the information in the parameter * * @param array $messageData * $messageData['message_id'] * $messageData['subject'] * $messageData['message'] * $messageData['sender'] * $messageData['send_time'] * $messageData['course'] * $messageData['group'] * $messageData['tools'] * $messageData['is_read'] * $messageData['is_deleted'] * $messageData['user_id'] * $messageData['firstName'] * $messageData['lastName'] * * @return ReceivedMessage the message created */ public static function fromArray($messageData) { $message = new ReceivedMessage($messageData['message_id']); $message->setFromArray($messageData); return $message; }
/** * diplay a received message * * @param ReceivedMessage $message Message to display * @param string $action list of action autorised on the message * @return string HTML source */ private static function displayReceivedMessage($message, $action) { $content = '<div id="im_message">' . "\n" . '<h4 class="header">' . claro_htmlspecialchars($message->getSubject()) . '</h4>' . "\n" . '<div class="imInfoBlock">' . "\n" . '<div class="imCmdList">' . $action . '</div>' . "\n\n" . '<div class="imInfo">' . "\n" . ' <span class="imInfoTitle">' . get_lang('Sender') . ' : </span>' . "\n" . ' <span class="imInfoValue">'; $isAllowed = current_user_is_allowed_to_send_message_to_user($message->getSender()); if ($isAllowed) { $content .= '<a href="sendmessage.php?cmd=rqMessageToUser&userId=' . $message->getSender() . '">'; } $content .= get_lang('%firstName %lastName', array('%firstName' => claro_htmlspecialchars($message->getSenderFirstName()), '%lastName' => claro_htmlspecialchars($message->getSenderLastName()))); if ($isAllowed) { $content .= "</a>"; } $isManager = FALSE; $isAdmin = claro_is_user_platform_admin($message->getSender()); if (!is_null($message->getCourseCode())) { $isManager = claro_is_user_course_manager($message->getSender(), $message->getCourseCode()); } if ($isManager) { $content .= ' <img src="' . get_icon_url('manager') . '" alt="" />'; } elseif ($isAdmin) { $content .= ' <img src="' . get_icon_url('platformadmin') . '" alt="" />'; } else { $content .= ' <img src="' . get_icon_url('user') . '" alt="" />'; } $content .= '' . ' </span>' . "\n" . '</div>' . "\n\n" . '<div class="imInfo">' . "\n" . '<span class="imInfoTitle">' . get_lang('Date') . ' : </span>' . "\n" . '<span class="imInfoValue">' . claro_html_localised_date(get_locale('dateTimeFormatLong'), strtotime($message->getSendTime())) . '</span>' . "\n" . '</div>' . "\n\n"; if (!is_null($message->getCourseCode())) { $content .= '<div class="imInfo">' . "\n" . ' <span class="imInfoTitle">' . get_lang('Course') . '</span>' . "\n" . ' <span class="imInfoValue">' . "\n"; $courseData = claro_get_course_data($message->getCourseCode()); if ($courseData) { $content .= claro_htmlspecialchars($courseData['officialCode']) . ' - ' . claro_htmlspecialchars($courseData['name']); } else { $content .= '?'; } $content .= ' </span>' . "\n" . '</div>' . "\n\n"; if (!is_null($message->getGroupId())) { $content .= '<div class="imInfo">' . "\n" . ' <span class="imInfoTitle">' . get_lang('Group') . ' : </span>' . "\n" . ' <span class="imInfoValue">' . "\n"; $groupData = claro_get_group_data(array(CLARO_CONTEXT_COURSE => $message->getCourseCode(), CLARO_CONTEXT_GROUP => $message->getGroupId())); if ($groupData) { $content .= $groupData['name']; } else { $content .= '?'; } $content .= ' </span>' . "\n" . '</div>' . "\n\n"; } if (!is_null($message->getToolsLabel())) { $content .= '<div class="imInfo">' . "\n" . ' <span class="imInfoTitle">' . get_lang('Tool') . ' : </span>' . "\n" . ' <span class="imInfoValue">' . "\n"; $md = get_module_data($message->getToolsLabel()); if ($md) { $content .= get_lang($md['moduleName']); } else { $content .= '?'; } $content .= ' </span>' . "\n" . '</div>' . "\n\n"; } } $body = $message->getMessage(); $body = claro_html_sanitize_all($body); $content .= '</div>' . "\n" . '<div class="imContent">' . claro_parse_user_text($body) . '</div>' . "\n" . '</div>' . "\n\n"; return $content; }
/** * return the current message * * @return ReceivedMessage the current message */ public function current() { return ReceivedMessage::fromArray($this->messageList[$this->index]); }
$currentSection = 'inbox'; if (isset($_REQUEST['userId'])) { $userId = (int) $_REQUEST['userId']; } else { $userId = claro_get_current_user_id(); } if ($userId != claro_get_current_user_id() && !claro_is_platform_admin()) { claro_die(get_lang("Not allowed")); } // load the message if (is_null($messageId) || is_null($type) || $type != "received" && $type != "sent") { claro_die(get_lang('Missing parameter : %param%', array('%param%' => get_lang('message id')))); } if ($type == "received") { try { $message = ReceivedMessage::fromId($messageId, $userId); if ($message->isDeleted()) { $currentSection = 'trashbox'; } else { $currentSection = 'inbox'; } if ($message === false) { claro_die('Message not found'); } if (claro_get_current_user_id() == $userId) { $message->markRead(); } } catch (Exeption $e) { claro_die(get_lang('Message not found')); } } else {
$dialogBox = new DialogBox(); $dialogBox->error(get_lang("Subject couldn't be empty")); $content .= $dialogBox->render(); $addForm = TRUE; } else { $message = new MessageToSend(claro_get_current_user_id(), $subject, $message); if ($_REQUEST['typeRecipient'] == 'user') { $recipient = new SingleUserRecipient($_POST['userRecipient']); if (claro_is_in_a_group()) { $message->setCourse(claro_get_current_course_id()); $message->setGroup(claro_get_current_group_id()); } elseif (claro_is_in_a_course()) { $message->setCourse(claro_get_current_course_id()); } elseif (!empty($_POST['responseTo'])) { if (can_answer_message((int) $_POST['responseTo'])) { $messageParent = ReceivedMessage::fromId((int) $_POST['responseTo'], claro_get_current_user_id()); if (!is_null($messageParent->getCourseCode())) { $message->setCourse($messageParent->getCourseCode()); } if (!is_null($messageParent->getGroupId())) { $message->setGroup($messageParent->getGroupId()); } } else { claro_die(get_lang('Not allowed')); } } else { //No context to load } } elseif ($_REQUEST['typeRecipient'] == 'course') { $recipient = new CourseRecipient($_POST['courseRecipient']); $message->setCourse($_POST['courseRecipient']);