diff options
Diffstat (limited to 'mod/messages/pages/messages/read.php')
-rw-r--r-- | mod/messages/pages/messages/read.php | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/mod/messages/pages/messages/read.php b/mod/messages/pages/messages/read.php new file mode 100644 index 000000000..4223c6bac --- /dev/null +++ b/mod/messages/pages/messages/read.php @@ -0,0 +1,60 @@ +<?php +/** +* Read a message page +* +* @package ElggMessages +*/ + +gatekeeper(); + +$message = get_entity(get_input('guid')); +if (!$message || !elgg_instanceof($message, "object", "messages")) { + forward('messages/inbox/' . elgg_get_logged_in_user_entity()->username); +} + +// mark the message as read +$message->readYet = true; + +elgg_set_page_owner_guid($message->getOwnerGUID()); +$page_owner = elgg_get_page_owner_entity(); + +$title = $message->title; + +$inbox = false; +if ($page_owner->getGUID() == $message->toId) { + $inbox = true; + elgg_push_breadcrumb(elgg_echo('messages:inbox'), 'messages/inbox/' . $page_owner->username); +} else { + elgg_push_breadcrumb(elgg_echo('messages:sent'), 'messages/sent/' . $page_owner->username); +} +elgg_push_breadcrumb($title); + +$content = elgg_view_entity($message, array('full_view' => true)); +if ($inbox) { + $form_params = array( + 'id' => 'messages-reply-form', + 'class' => 'hidden mtl', + 'action' => 'action/messages/send', + ); + $body_params = array('message' => $message); + $content .= elgg_view_form('messages/reply', $form_params, $body_params); + $from_user = get_user($message->fromId); + + if ((elgg_get_logged_in_user_guid() == elgg_get_page_owner_guid()) && $from_user) { + elgg_register_menu_item('title', array( + 'name' => 'reply', + 'href' => '#messages-reply-form', + 'text' => elgg_echo('messages:answer'), + 'link_class' => 'elgg-button elgg-button-action', + 'rel' => 'toggle', + )); + } +} + +$body = elgg_view_layout('content', array( + 'content' => $content, + 'title' => $title, + 'filter' => '', +)); + +echo elgg_view_page($title, $body); |