From e209ef52571b1e0f6a3937d3e88c9150c384994c Mon Sep 17 00:00:00 2001 From: brettp Date: Thu, 4 Mar 2010 02:21:28 +0000 Subject: Merged messages interface changes. git-svn-id: http://code.elgg.org/elgg/trunk@5270 36083f99-b078-4883-b0ff-0f9b5a30f544 --- mod/messages/actions/delete.php | 132 +++-- mod/messages/actions/send.php | 109 ++-- mod/messages/index.php | 105 ++-- mod/messages/languages/en.php | 164 +++--- mod/messages/read.php | 108 ++-- mod/messages/readme.txt | 14 +- mod/messages/send.php | 81 +-- mod/messages/sent.php | 88 +-- mod/messages/start.php | 621 ++++++++++----------- mod/messages/views/default/messages/css.php | 277 +++------ .../views/default/messages/forms/message.php | 94 ---- .../views/default/messages/forms/reply.php | 53 -- mod/messages/views/default/messages/forms/send.php | 74 +++ mod/messages/views/default/messages/forms/view.php | 33 +- mod/messages/views/default/messages/menu.php | 31 +- mod/messages/views/default/messages/messages.php | 280 ++++------ mod/messages/views/default/messages/topbar.php | 44 +- mod/messages/views/default/messages/view.php | 273 ++++----- mod/messages/views/default/object/messages.php | 0 19 files changed, 1144 insertions(+), 1437 deletions(-) delete mode 100644 mod/messages/views/default/messages/forms/message.php delete mode 100644 mod/messages/views/default/messages/forms/reply.php create mode 100644 mod/messages/views/default/messages/forms/send.php delete mode 100644 mod/messages/views/default/object/messages.php (limited to 'mod') diff --git a/mod/messages/actions/delete.php b/mod/messages/actions/delete.php index 17bae2808..e8a7dfd58 100644 --- a/mod/messages/actions/delete.php +++ b/mod/messages/actions/delete.php @@ -1,73 +1,69 @@ +* @copyright Curverider Ltd 2008-2010 +* @link http://elgg.com/ +*/ - /** - * Elgg delete a message action page - * It is worth noting that due to the nature of a messaging system and the fact 2 people access - * the same message, messages don't actually delete, they are just removed from view for the user who deletes - * - * @package ElggMessages - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider Ltd - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ - - // Need to be logged in to do this - gatekeeper(); - - // grab details sent from the form - $message_id_array = get_input('message_id'); - if (!is_array($message_id_array)) $message_id_array = array($message_id_array); - $type = get_input('type'); // sent message or inbox - $success = true; - $submit = get_input('submit'); - $offset = get_input('offset'); +// Need to be logged in to do this +gatekeeper(); + +// grab details sent from the form +$message_id_array = get_input('message_id'); +if (!is_array($message_id_array)) $message_id_array = array($message_id_array); +$type = get_input('type'); // sent message or inbox +$success = true; +$submit = get_input('submit'); +$offset = get_input('offset'); + +foreach($message_id_array as $message_id) { + +// get the message object + $message = get_entity($message_id); + +// Make sure we actually have permission to edit and that the object is of sub-type messages + if ($message && $message->getSubtype() == "messages") { + + if ($submit == elgg_echo('delete')) { + if ($message->delete()) { + } else { + $success = false; + } + } else { + if ($message->readYet = 1) { + } else { + $success = false; + } + } - foreach($message_id_array as $message_id) { + }else{ - // get the message object - $message = get_entity($message_id); - - // Make sure we actually have permission to edit and that the object is of sub-type messages - if ($message && $message->getSubtype() == "messages") { - - if ($submit == elgg_echo('delete')) { - if ($message->delete()) { - } else { - $success = false; - } - } else { - if ($message->readYet = 1) { - } else { - $success = false; - } - } - - }else{ - - // display the error message - $success = false; - - } + // display the error message + $success = false; - } - - if ($success) { - if ($submit == elgg_echo('delete')) { - system_message(elgg_echo("messages:deleted")); - } else { - system_message(elgg_echo("messages:markedread")); - } - // check to see if it is a sent message to be deleted - if($type == 'sent'){ - forward("mod/messages/sent.php?offset={$offset}"); - }else{ - forward("mod/messages/?username=" . $_SESSION['user']->username . "&offset={$offset}"); - } - } else { - register_error(elgg_echo("messages:notfound")); - forward($_SERVER['HTTP_REFERER']); - } - - -?> \ No newline at end of file + } + +} + +if ($success) { + if ($submit == elgg_echo('delete')) { + system_message(elgg_echo("messages:deleted")); + } else { + system_message(elgg_echo("messages:markedread")); + } + // check to see if it is a sent message to be deleted + if($type == 'sent'){ + forward("mod/messages/sent.php?offset={$offset}"); + }else{ + forward("mod/messages/?username=" . $_SESSION['user']->username . "&offset={$offset}"); + } +} else { + register_error(elgg_echo("messages:notfound")); + forward($_SERVER['HTTP_REFERER']); +} \ No newline at end of file diff --git a/mod/messages/actions/send.php b/mod/messages/actions/send.php index e48703e5a..cf9de8ba5 100644 --- a/mod/messages/actions/send.php +++ b/mod/messages/actions/send.php @@ -1,64 +1,61 @@ +* @copyright Curverider Ltd 2008-2010 +* @link http://elgg.com/ +*/ - /** - * Elgg send a message action page - * - * @package ElggMessages - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider Ltd - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ - - // Make sure we're logged in (send us to the front page if not) - if (!isloggedin()) forward(); +// Make sure we're logged in (send us to the front page if not) +if (!isloggedin()) forward(); - // Get input data - $title = get_input('title'); // message title - $message_contents = get_input('message'); // the message - $send_to = get_input('send_to'); // this is the user guid to whom the message is going to be sent - $reply = get_input('reply',0); // this is the guid of the message replying to - - // Cache to the session to make form sticky - $_SESSION['msg_to'] = $send_to; - $_SESSION['msg_title'] = $title; - $_SESSION['msg_contents'] = $message_contents; +// Get input data +$title = get_input('title'); // message title +$message_contents = get_input('message'); // the message +$send_to = get_input('send_to'); // this is the user guid to whom the message is going to be sent +$reply = get_input('reply',0); // this is the guid of the message replying to - if (empty($send_to)) { - register_error(elgg_echo("messages:user:blank")); - forward("mod/messages/send.php"); - } - - $user = get_user($send_to); - if (!$user) { - register_error(elgg_echo("messages:user:nonexist")); - forward("mod/messages/send.php"); - } +// Cache to the session to make form sticky +$_SESSION['msg_to'] = $send_to; +$_SESSION['msg_title'] = $title; +$_SESSION['msg_contents'] = $message_contents; - // Make sure the message field, send to field and title are not blank - if (empty($message_contents) || empty($title)) { - register_error(elgg_echo("messages:blank")); - forward("mod/messages/send.php"); - } - - // Otherwise, 'send' the message - $result = messages_send($title,$message_contents,$send_to,0,$reply); - - // Save 'send' the message - if (!$result) { - register_error(elgg_echo("messages:error")); - forward("mod/messages/send.php"); - } +if (empty($send_to)) { + register_error(elgg_echo("messages:user:blank")); + forward("mod/messages/send.php"); +} - // successful so uncache form values - unset($_SESSION['msg_to']); - unset($_SESSION['msg_title']); - unset($_SESSION['msg_contents']); - - // Success message - system_message(elgg_echo("messages:posted")); +$user = get_user($send_to); +if (!$user) { + register_error(elgg_echo("messages:user:nonexist")); + forward("mod/messages/send.php"); +} + +// Make sure the message field, send to field and title are not blank +if (empty($message_contents) || empty($title)) { + register_error(elgg_echo("messages:blank")); + forward("mod/messages/send.php"); +} + +// Otherwise, 'send' the message +$result = messages_send($title,$message_contents,$send_to,0,$reply); + +// Save 'send' the message +if (!$result) { + register_error(elgg_echo("messages:error")); + forward("mod/messages/send.php"); +} + +// successful so uncache form values +unset($_SESSION['msg_to']); +unset($_SESSION['msg_title']); +unset($_SESSION['msg_contents']); - // Forward to the users inbox - forward('mod/messages/sent.php'); +// Success message +system_message(elgg_echo("messages:posted")); -?> +// Forward to the users inbox +forward('mod/messages/sent.php'); \ No newline at end of file diff --git a/mod/messages/index.php b/mod/messages/index.php index b9cfd1097..e5124a71a 100644 --- a/mod/messages/index.php +++ b/mod/messages/index.php @@ -1,55 +1,52 @@ - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ - - // Load Elgg engine - require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); - - // You need to be logged in! - gatekeeper(); - - // Get offset - $offset = get_input('offset',0); - - // Set limit - $limit = 10; - - // Get the logged in user, you can't see other peoples messages so use session id - $page_owner = $_SESSION['user']; - set_page_owner($page_owner->getGUID()); - - // Get the user's inbox, this will be all messages where the 'toId' field matches their guid - $messages = elgg_get_entities_from_metadata(array( - 'type' => 'object', - 'subtype' => 'messages', - 'metadata_name' => 'toId', - 'metadata_value' => $page_owner->getGUID(), - 'owner_guid' => $page_owner->guid, - 'limit' => $limit + 1, - 'offset' => $offset - )); - - // Set the page title - $area2 = elgg_view_title(elgg_echo("messages:inbox")); - - // Display them. The last variable 'page_view' is to allow the view page to know where this data is coming from, - // in this case it is the inbox, this is necessary to ensure the correct display - // $area2 .= elgg_view("messages/view",array('entity' => $messages, 'page_view' => "inbox", 'limit' => $limit, 'offset' => $offset)); - $area2 .= elgg_view("messages/forms/view",array('entity' => $messages, 'page_view' => "inbox", 'limit' => $limit, 'offset' => $offset)); - - // format - $body = elgg_view_layout("two_column_left_sidebar", '', $area2); - - - // Draw page - page_draw(sprintf(elgg_echo('messages:user'),$page_owner->name),$body); - -?> +/** + * Elgg messages inbox page + * + * @package ElggMessages + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.com/ +*/ + + +require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); +gatekeeper(); +global $CONFIG; + +$offset = get_input('offset', 0); +$limit = 10; + +// Get the logged in user, you can't see other peoples messages so use session id +$page_owner = get_loggedin_user(); +set_page_owner($page_owner->getGUID()); + +// Get the user's inbox, this will be all messages where the 'toId' field matches their guid +$messages = elgg_get_entities_from_metadata(array( + 'type' => 'object', + 'subtype' => 'messages', + 'metadata_name' => 'toId', + 'metadata_value' => $page_owner->getGUID(), + 'owner_guid' => $page_owner->guid, + 'limit' => $limit + 1, + 'offset' => $offset +)); + +// Set the page title +$area2 = "
"; +$area2 .= elgg_view_title(elgg_echo("messages:inbox"))."
"; +$area2 .= "
"; + +// Display them. The last variable 'page_view' is to allow the view page to know where this data is coming from, +// in this case it is the inbox, this is necessary to ensure the correct display +$area2 .= elgg_view("messages/forms/view",array('entity' => $messages, 'page_view' => "inbox", 'limit' => $limit, 'offset' => $offset)); + +// Sidebar menu options +//$area3 = elgg_view("messages/menu_options", array('context' => 'inbox')); + +// format +$body = elgg_view_layout("one_column_with_sidebar",'',$area2); + + +// Draw page +page_draw(sprintf(elgg_echo('messages:user'),$page_owner->name),$body); \ No newline at end of file diff --git a/mod/messages/languages/en.php b/mod/messages/languages/en.php index ab83eedf2..d49d83cc2 100644 --- a/mod/messages/languages/en.php +++ b/mod/messages/languages/en.php @@ -1,87 +1,93 @@ +* @copyright Curverider Ltd 2008-2010 +* @link http://elgg.com/ +*/ - $english = array( - - /** - * Menu items and titles - */ - - 'messages' => "Messages", - 'messages:back' => "back to messages", - 'messages:user' => "Your inbox", - 'messages:sentMessages' => "Sent messages", - 'messages:posttitle' => "%s's messages: %s", - 'messages:inbox' => "Inbox", - 'messages:send' => "Send a message", - 'messages:sent' => "Sent messages", - 'messages:message' => "Message", - 'messages:title' => "Title", - 'messages:to' => "To", - 'messages:from' => "From", - 'messages:fly' => "Send", - 'messages:replying' => "Message replying to", - 'messages:inbox' => "Inbox", - 'messages:sendmessage' => "Send a message", - 'messages:compose' => "Compose a message", - 'messages:sentmessages' => "Sent messages", - 'messages:recent' => "Recent messages", - 'messages:original' => "Original message", - 'messages:yours' => "Your message", - 'messages:answer' => "Reply", - 'messages:toggle' => 'Toggle all', - 'messages:markread' => 'Mark read', - - 'messages:new' => 'New message', - - 'notification:method:site' => 'Site', - - 'messages:error' => 'There was a problem saving your message. Please try again.', - - 'item:object:messages' => 'Messages', - - /** - * Status messages - */ - - 'messages:posted' => "Your message was successfully sent.", - 'messages:deleted' => "Your messages were successfully deleted.", - 'messages:markedread' => "Your messages were successfully marked as read.", - - /** - * Email messages - */ - - 'messages:email:subject' => 'You have a new message!', - 'messages:email:body' => "You have a new message from %s. It reads: - - -%s - - -To view your messages, click here: +$english = array( + /** + * Menu items and titles + */ + + 'messages' => "Messages", + 'messages:back' => "back to messages", + 'messages:user' => "Your inbox", + 'messages:sentMessages' => "Sent messages", + 'messages:posttitle' => "%s's messages: %s", + 'messages:inbox' => "Inbox", + 'messages:send' => "Send a message", + 'messages:sent' => "Sent messages", + 'messages:message' => "Message", + 'messages:title' => "Title", + 'messages:to' => "To", + 'messages:from' => "From", + 'messages:fly' => "Send", + 'messages:replying' => "Message replying to", + 'messages:inbox' => "Inbox", + 'messages:sendmessage' => "Send a message", + 'messages:compose' => "Compose a message", + 'messages:sentmessages' => "Sent messages", + 'messages:recent' => "Recent messages", + 'messages:original' => "Original message", + 'messages:yours' => "Your message", + 'messages:answer' => "Reply", + 'messages:toggle' => 'Toggle all', + 'messages:markread' => 'Mark read', + 'messages:recipient' => 'Choose a recipient…', + + 'messages:new' => 'New message', + + 'notification:method:site' => 'Messages', + + 'messages:error' => 'There was a problem saving your message. Please try again.', + + 'item:object:messages' => 'Messages', + + /** + * Status messages + */ + + 'messages:posted' => "Your message was successfully sent.", + 'messages:deleted' => "Your messages were successfully deleted.", + 'messages:markedread' => "Your messages were successfully marked as read.", + + /** + * Email messages + */ + + 'messages:email:subject' => 'You have a new message!', + 'messages:email:body' => "You have a new message from %s. It reads: + + + %s + + + To view your messages, click here: %s -To send %s a message, click here: + To send %s a message, click here: %s -You cannot reply to this email.", - - /** - * Error messages - */ - - 'messages:blank' => "Sorry; you need to actually put something in the message body before we can save it.", - 'messages:notfound' => "Sorry; we could not find the specified message.", - 'messages:notdeleted' => "Sorry; we could not delete this message.", - 'messages:nopermission' => "You do not have permission to alter that message.", - 'messages:nomessages' => "There are no messages to display.", - 'messages:user:nonexist' => "We could not find the recipient in the user database.", - 'messages:user:blank' => "You did not select someone to send this to.", - - ); - - add_translation("en",$english); - -?> \ No newline at end of file + You cannot reply to this email.", + + /** + * Error messages + */ + + 'messages:blank' => "Sorry; you need to actually put something in the message body before we can save it.", + 'messages:notfound' => "Sorry; we could not find the specified message.", + 'messages:notdeleted' => "Sorry; we could not delete this message.", + 'messages:nopermission' => "You do not have permission to alter that message.", + 'messages:nomessages' => "There are no messages to display.", + 'messages:user:nonexist' => "We could not find the recipient in the user database.", + 'messages:user:blank' => "You did not select someone to send this to.", +); + +add_translation("en", $english); \ No newline at end of file diff --git a/mod/messages/read.php b/mod/messages/read.php index f09bd116f..2c3c5af50 100644 --- a/mod/messages/read.php +++ b/mod/messages/read.php @@ -1,64 +1,58 @@ - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ - - // Load Elgg engine - require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); - - // If we're not logged in, forward to the front page - gatekeeper(); - - $mbox_type = get_input('type', 'inbox'); - - // Get the full message object to read - $message = get_entity(get_input("message")); - - // If no message, must have been deleted, send user to inbox/sent mail - if (!$message) { - $owner = get_loggedin_user(); - if ($mbox_type == 'sent') { - forward("mod/messages/sent.php"); - } else { - forward("pg/messages/{$owner->username}"); - } +/** +* Elgg read a message page +* +* @package ElggMessages +* @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 +* @author Curverider Ltd +* @copyright Curverider Ltd 2008-2010 +* @link http://elgg.com/ +*/ + +// Load Elgg engine +require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); + +// If we're not logged in, forward to the front page +gatekeeper(); + +$page_owner = get_loggedin_user(); +$mbox_type = get_input('type', 'inbox'); + +// Get the full message object to read +$message = get_entity(get_input("message")); + +// If no message, must have been deleted, send user to inbox/sent mail +if (!$message) { + if ($mbox_type == 'sent') { + forward("mod/messages/sent.php"); + } else { + forward("pg/messages/{$page_owner->username}"); } +} + +// If the message is being read from the inbox, mark it as read, otherwise don't. +// This stops a user who checks out a message they have sent having it being marked +// as read for the recipient +if($mbox_type != "sent"){ + // Mark the message as being read now + if ($message->getSubtype() == "messages") { + //set the message metadata to 1 which equals read + $message->readYet = 1; + } +} - // If the message is being read from the inbox, mark it as read, otherwise don't. - // This stops a user who checks out a message they have sent having it being marked - // as read for the recipient - if(get_input('type') != "sent"){ - - // Mark the message as being read now - if ($message->getSubtype() == "messages") { - - //set the message metadata to 1 which equals read - $message->readYet = 1; - - } - - } +set_page_owner($page_owner->getGUID()); - // Get the logged in user - $page_owner = $_SESSION['user']; - set_page_owner($page_owner->getGUID()); +// Display it +$content = elgg_view("messages/messages",array( + 'entity' => $message, + 'entity_owner' => $page_owner, + 'full' => true + )); - // Display it - $area2 = elgg_view("messages/messages",array( - 'entity' => $message, - 'entity_owner' => $page_owner, - 'full' => true - )); - $body = elgg_view_layout("two_column_left_sidebar", '', $area2); +$sidebar = elgg_view("messages/menu_options"); - // Display page - page_draw(sprintf(elgg_echo('messages:message')),$body); +$body = elgg_view_layout("one_column_with_sidebar", $sidebar, $content); -?> \ No newline at end of file +// Display page +page_draw(sprintf(elgg_echo('messages:message')),$body); \ No newline at end of file diff --git a/mod/messages/readme.txt b/mod/messages/readme.txt index 52d7e6b4a..04142be19 100644 --- a/mod/messages/readme.txt +++ b/mod/messages/readme.txt @@ -1,11 +1,11 @@ /** - * Elgg readme - * - * @package ElggMessages - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Dave Tosh - * @copyright Curverider Ltd 2008-2009 - * @link http://elgg.com/ + * Elgg readme + * + * @package ElggMessages + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Dave Tosh + * @copyright Curverider Ltd 2008-2009 + * @link http://elgg.com/ */ Install: drop the plugin into your mod folder, that is it. diff --git a/mod/messages/send.php b/mod/messages/send.php index 61e0c162d..ecab60073 100644 --- a/mod/messages/send.php +++ b/mod/messages/send.php @@ -1,41 +1,42 @@ - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ - - // Load Elgg engine - require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); - - // If we're not logged in, forward to the front page - gatekeeper(); // if (!isloggedin()) forward(); - - // Get the current page's owner - $page_owner = page_owner_entity(); - if ($page_owner === false || is_null($page_owner)) { - $page_owner = $_SESSION['user']; - set_page_owner($page_owner->getGUID()); - } - - // Get the users friends; this is used in the drop down to select who to send the message to - $friends = $_SESSION['user']->getFriends('', 9999); - - // Set the page title - $area2 = elgg_view_title(elgg_echo("messages:sendmessage")); - - // Get the send form - $area2 .= elgg_view("messages/forms/message",array('friends' => $friends)); - - // Format - $body = elgg_view_layout("two_column_left_sidebar", '', $area2); - - // Draw page - page_draw(sprintf(elgg_echo('messages:send'),$page_owner->name),$body); - -?> \ No newline at end of file +/** +* Elgg send a message page +* +* @package ElggMessages +* @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 +* @author Curverider Ltd +* @copyright Curverider Ltd 2008-2010 +* @link http://elgg.com/ +*/ + +// Load Elgg engine +require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); + +// If we're not logged in, forward to the front page +gatekeeper(); + +// Get the current page's owner +$page_owner = page_owner_entity(); +if ($page_owner === false || is_null($page_owner)) { + $page_owner = $_SESSION['user']; + set_page_owner($page_owner->getGUID()); +} + +// Get the users friends; this is used in the drop down to select who to send the message to +$user = get_loggedin_user(); +$friends = $user->getFriends('', 9999); + +// Set the page title +$area2 = elgg_view_title(elgg_echo("messages:sendmessage")); + +// Get the send form +$area2 .= elgg_view("messages/forms/send",array('friends' => $friends)); + +// Sidebar menu options +$area3 = elgg_view("messages/menu_options"); + +// Format +$body = elgg_view_layout("one_column_with_sidebar", $area3, $area2); + +// Draw page +page_draw(sprintf(elgg_echo('messages:send'),$page_owner->name),$body); \ No newline at end of file diff --git a/mod/messages/sent.php b/mod/messages/sent.php index c6213de2c..0d68899b2 100644 --- a/mod/messages/sent.php +++ b/mod/messages/sent.php @@ -1,46 +1,46 @@ +* @copyright Curverider Ltd 2008-2010 +* @link http://elgg.com/ +*/ - /** - * Elgg sent messages page - * - * @package ElggMessages - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider Ltd - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ - - // Load Elgg engine - require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); - - // If we're not logged in, forward to the front page - if (!isloggedin()) forward(); - - // Get the logged in user - $page_owner = $_SESSION['user']; - set_page_owner($page_owner->guid); - - // Get offset - $offset = get_input('offset',0); - - // Set limit - $limit = 10; - - // Display all the messages a user owns, these will make up the sentbox - $messages = elgg_get_entities_from_metadata(array('metadata_name' => 'fromId', 'metadata_value' => $_SESSION['user']->guid, 'types' => 'object', 'subtypes' => 'messages', 'owner_guid' => $page_owner->guid, 'limit' => $limit, 'offset' => $offset)); - //$page_owner->getObjects('messages'); - - // Set the page title - $area2 = elgg_view_title(elgg_echo("messages:sentmessages")); - - // Set content - // $area2 .= elgg_view("messages/view",array('entity' => $messages, 'page_view' => "sent", 'limit' => $limit, 'offset' => $offset)); - $area2 .= elgg_view("messages/forms/view",array('entity' => $messages, 'page_view' => "sent", 'limit' => $limit, 'offset' => $offset)); - - // Format - $body = elgg_view_layout("two_column_left_sidebar", '', $area2); - - // Draw page - page_draw(sprintf(elgg_echo('messages:sentMessages'),$page_owner->name),$body); - -?> \ No newline at end of file +require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); +global $CONFIG; + +gatekeeper(); + +// Get the logged in user +$page_owner = get_loggedin_user(); +set_page_owner($page_owner->guid); + +// Get offset +$offset = get_input('offset',0); + +// Set limit +$limit = 10; + +// Display all the messages a user owns, these will make up the sentbox +$messages = elgg_get_entities_from_metadata(array('metadata_name' => 'fromId', 'metadata_value' => $_SESSION['user']->guid, 'types' => 'object', 'subtypes' => 'messages', 'owner_guid' => $page_owner->guid, 'limit' => $limit, 'offset' => $offset)); + + +// Set the page title +$area2 = "
"; +$area2 .= elgg_view_title(elgg_echo("messages:sentmessages"))."
"; +$area2 .= "
"; + +// Set content +$area2 .= elgg_view("messages/forms/view",array('entity' => $messages, 'page_view' => "sent", 'limit' => $limit, 'offset' => $offset)); + +// Sidebar menu options +//$area3 = elgg_view("messages/menu_options", array('context' => 'sent')); + +// Format +$body = elgg_view_layout("one_column_with_sidebar",'',$area2); + +// Draw page +page_draw(sprintf(elgg_echo('messages:sentMessages'),$page_owner->name),$body); \ No newline at end of file diff --git a/mod/messages/start.php b/mod/messages/start.php index 992d60901..b74402ac3 100644 --- a/mod/messages/start.php +++ b/mod/messages/start.php @@ -1,338 +1,335 @@ - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ +/** +* Elgg internal messages plugin +* This plugin lets user send each other messages. +* +* @package ElggMessages +* @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 +* @author Curverider Ltd +* @copyright Curverider Ltd 2008-2010 +* @link http://elgg.com/ +*/ - /** - * Messages initialisation - * - * These parameters are required for the event API, but we won't use them: - * - * @param unknown_type $event - * @param unknown_type $object_type - * @param unknown_type $object - */ - - function messages_init() { - - // Load system configuration - global $CONFIG; - - //add submenu options - if (get_context() == "messages") { - add_submenu_item(elgg_echo('messages:compose'), $CONFIG->wwwroot . "mod/messages/send.php"); - add_submenu_item(elgg_echo('messages:inbox'), $CONFIG->wwwroot . "pg/messages/" . $_SESSION['user']->username); - add_submenu_item(elgg_echo('messages:sentmessages'), $CONFIG->wwwroot . "mod/messages/sent.php"); - } - - // Extend system CSS with our own styles, which are defined in the shouts/css view - elgg_extend_view('css','messages/css'); - - // Extend the elgg topbar - elgg_extend_view('elgg_topbar/extend','messages/topbar'); - - // Register a page handler, so we can have nice URLs - register_page_handler('messages','messages_page_handler'); - - // Register a URL handler for shouts posts - register_entity_url_handler('messages_url','object','messages'); - - // Extend hover-over and profile menu - elgg_extend_view('profile/menu/links','messages/menu'); - - // Register a notification handler for site messages - register_notification_handler("site", "messages_site_notify_handler"); - register_plugin_hook('notify:entity:message','object','messages_notification_msg'); - if (is_callable('register_notification_object')) - register_notification_object('object','messages',elgg_echo('messages:new')); - - // Shares widget - // add_widget_type('messages',elgg_echo("messages:recent"),elgg_echo("messages:widget:description")); - - // Override metadata permissions - register_plugin_hook('permissions_check:metadata','object','messages_can_edit_metadata'); +/** +* Messages initialisation +* +* These parameters are required for the event API, but we won't use them: +* +* @param unknown_type $event +* @param unknown_type $object_type +* @param unknown_type $object +*/ + +function messages_init() { + + // Load system configuration + global $CONFIG; + + //add submenu options + if (get_context() == "messages") { + add_submenu_item(elgg_echo('messages:inbox'), $CONFIG->wwwroot . "pg/messages/" . $_SESSION['user']->username); + add_submenu_item(elgg_echo('messages:sentmessages'), $CONFIG->wwwroot . "mod/messages/sent.php"); } - /** - * Override the canEditMetadata function to return true for messages - * - */ - function messages_can_edit_metadata($hook_name, $entity_type, $return_value, $parameters) { + // Extend system CSS with our own styles, which are defined in the shouts/css view + elgg_extend_view('css','messages/css'); + + // Extend the elgg topbar + elgg_extend_view('elgg_topbar/extend','messages/topbar'); + + // Register a page handler, so we can have nice URLs + register_page_handler('messages','messages_page_handler'); + + // Register a URL handler for shouts posts + register_entity_url_handler('messages_url','object','messages'); + + // Extend hover-over and profile menu + elgg_extend_view('profile/menu/links','messages/menu'); + + // Register a notification handler for site messages + register_notification_handler("site", "messages_site_notify_handler"); + register_plugin_hook('notify:entity:message','object','messages_notification_msg'); + if (is_callable('register_notification_object')) + register_notification_object('object','messages',elgg_echo('messages:new')); + + // Shares widget + // add_widget_type('messages',elgg_echo("messages:recent"),elgg_echo("messages:widget:description")); + + // Override metadata permissions + register_plugin_hook('permissions_check:metadata','object','messages_can_edit_metadata'); +} - global $messagesendflag; - - if ($messagesendflag == 1) { - $entity = $parameters['entity']; - if ($entity->getSubtype() == "messages") { - return true; - } - } - - return $return_value; - +/** + * Override the canEditMetadata function to return true for messages + * + */ +function messages_can_edit_metadata($hook_name, $entity_type, $return_value, $parameters) { + + global $messagesendflag; + + if ($messagesendflag == 1) { + $entity = $parameters['entity']; + if ($entity->getSubtype() == "messages") { + return true; } - - /** - * Override the canEdit function to return true for messages within a particular context. - * - */ - function messages_can_edit($hook_name, $entity_type, $return_value, $parameters) { - - global $messagesendflag; - - if ($messagesendflag == 1) { - $entity = $parameters['entity']; - if ($entity->getSubtype() == "messages") { - return true; - } - } - - return $return_value; - + } + + return $return_value; + +} + +/** + * Override the canEdit function to return true for messages within a particular context. + * + */ +function messages_can_edit($hook_name, $entity_type, $return_value, $parameters) { + + global $messagesendflag; + + if ($messagesendflag == 1) { + $entity = $parameters['entity']; + if ($entity->getSubtype() == "messages") { + return true; } - - /** - * We really don't want to send a notification message when a message is sent, if the method is messages ... - * - */ - function messages_notification_msg($hook_name, $entity_type, $return_value, $parameters) { + } + + return $return_value; + +} - global $CONFIG, $messages_pm; - - if ($parameters['entity'] instanceof ElggEntity) { - - if ($parameters['entity']->getSubtype() == 'messages') { - - return false; - /*if (!$messages_pm) return false; - if ($parameters['method'] == 'email') { - return sprintf( - elgg_echo('messages:email:body'), - get_loggedin_user()->name, - strip_tags($parameters['entity']->description), - $CONFIG->wwwroot . "pg/messages/" . $user->username, - get_loggedin_user()->name, - $CONFIG->wwwroot . "mod/messages/send.php?send_to=" . get_loggedin_user()->guid - ); - } else if ($parameters['method'] == 'site') return false;*/ - } - } - return null; +/** + * We really don't want to send a notification message when a message is sent, if the method is messages ... + * + */ +function messages_notification_msg($hook_name, $entity_type, $return_value, $parameters) { + + global $CONFIG, $messages_pm; + + if ($parameters['entity'] instanceof ElggEntity) { + + if ($parameters['entity']->getSubtype() == 'messages') { + return false; + /*if (!$messages_pm) return false; + if ($parameters['method'] == 'email') { + return sprintf( + elgg_echo('messages:email:body'), + get_loggedin_user()->name, + strip_tags($parameters['entity']->description), + $CONFIG->wwwroot . "pg/messages/" . $user->username, + get_loggedin_user()->name, + $CONFIG->wwwroot . "mod/messages/send.php?send_to=" . get_loggedin_user()->guid + ); + } else if ($parameters['method'] == 'site') return false;*/ } + } + return null; + +} + +/** + * Override the canEdit function to return true for messages within a particular context. + * + */ +function messages_can_edit_container($hook_name, $entity_type, $return_value, $parameters) { + + global $messagesendflag; + + if ($messagesendflag == 1) { + return true; + } + + return $return_value; + +} + +/** + * Send an internal message + * + * @param string $subject The subject line of the message + * @param string $body The body of the mesage + * @param int $send_to The GUID of the user to send to + * @param int $from Optionally, the GUID of the user to send from + * @param int $reply The GUID of the message to reply from (default: none) + * @param true|false $notify Send a notification (default: true) + * @param true|false $add_to_sent If true (default), will add a message to the sender's 'sent' tray + * @return true|false Depending on success + */ +function messages_send($subject, $body, $send_to, $from = 0, $reply = 0, $notify = true, $add_to_sent = true) { + + global $messagesendflag; + $messagesendflag = 1; - /** - * Override the canEdit function to return true for messages within a particular context. - * - */ - function messages_can_edit_container($hook_name, $entity_type, $return_value, $parameters) { - - global $messagesendflag; - - if ($messagesendflag == 1) { - return true; - } - - return $return_value; - + global $messages_pm; + if ($notify) { + $messages_pm = 1; + } else { + $messages_pm = 0; } - /** - * Send an internal message - * - * @param string $subject The subject line of the message - * @param string $body The body of the mesage - * @param int $send_to The GUID of the user to send to - * @param int $from Optionally, the GUID of the user to send from - * @param int $reply The GUID of the message to reply from (default: none) - * @param true|false $notify Send a notification (default: true) - * @param true|false $add_to_sent If true (default), will add a message to the sender's 'sent' tray - * @return true|false Depending on success - */ - function messages_send($subject, $body, $send_to, $from = 0, $reply = 0, $notify = true, $add_to_sent = true) { - - global $messagesendflag; - $messagesendflag = 1; - - global $messages_pm; - if ($notify) { - $messages_pm = 1; - } else { - $messages_pm = 0; - } + // If $from == 0, set to current user + if ($from == 0) + $from = (int) get_loggedin_user()->guid; - // If $from == 0, set to current user - if ($from == 0) - $from = (int) get_loggedin_user()->guid; - - // Initialise a new ElggObject - $message_to = new ElggObject(); - $message_sent = new ElggObject(); - // Tell the system it's a message - $message_to->subtype = "messages"; - $message_sent->subtype = "messages"; - // Set its owner to the current user - // $message_to->owner_guid = $_SESSION['user']->getGUID(); - $message_to->owner_guid = $send_to; - $message_to->container_guid = $send_to; - $message_sent->owner_guid = $from; - $message_sent->container_guid = $from; - // For now, set its access to public (we'll add an access dropdown shortly) - $message_to->access_id = ACCESS_PUBLIC; - $message_sent->access_id = ACCESS_PUBLIC; - // Set its description appropriately - $message_to->title = $subject; - $message_to->description = $body; - $message_sent->title = $subject; - $message_sent->description = $body; - // set the metadata - $message_to->toId = $send_to; // the user receiving the message - $message_to->fromId = $from; // the user receiving the message - $message_to->readYet = 0; // this is a toggle between 0 / 1 (1 = read) - $message_to->hiddenFrom = 0; // this is used when a user deletes a message in their sentbox, it is a flag - $message_to->hiddenTo = 0; // this is used when a user deletes a message in their inbox - $message_sent->toId = $send_to; // the user receiving the message - $message_sent->fromId = $from; // the user receiving the message - $message_sent->readYet = 0; // this is a toggle between 0 / 1 (1 = read) - $message_sent->hiddenFrom = 0; // this is used when a user deletes a message in their sentbox, it is a flag - $message_sent->hiddenTo = 0; // this is used when a user deletes a message in their inbox - - $message_to->msg = 1; - $message_sent->msg = 1; - - // Save the copy of the message that goes to the recipient - $success = $message_to->save(); - - // Save the copy of the message that goes to the sender - if ($add_to_sent) $success2 = $message_sent->save(); - - $message_to->access_id = ACCESS_PRIVATE; - $message_to->save(); - - if ($add_to_sent) { - $message_sent->access_id = ACCESS_PRIVATE; - $message_sent->save(); - } - - // if the new message is a reply then create a relationship link between the new message - // and the message it is in reply to - if($reply && $success){ - $create_relationship = add_entity_relationship($message_sent->guid, "reply", $reply); - } - - - global $CONFIG; - $message_contents = strip_tags($body); - if ($send_to != get_loggedin_user() && $notify) - notify_user($send_to, get_loggedin_user()->guid, elgg_echo('messages:email:subject'), - sprintf( - elgg_echo('messages:email:body'), - get_loggedin_user()->name, - $message_contents, - $CONFIG->wwwroot . "pg/messages/" . $user->username, - get_loggedin_user()->name, - $CONFIG->wwwroot . "mod/messages/send.php?send_to=" . get_loggedin_user()->guid - ) - ); - - $messagesendflag = 0; - return $success; + // Initialise a new ElggObject + $message_to = new ElggObject(); + $message_sent = new ElggObject(); + // Tell the system it's a message + $message_to->subtype = "messages"; + $message_sent->subtype = "messages"; + // Set its owner to the current user + // $message_to->owner_guid = $_SESSION['user']->getGUID(); + $message_to->owner_guid = $send_to; + $message_to->container_guid = $send_to; + $message_sent->owner_guid = $from; + $message_sent->container_guid = $from; + // For now, set its access to public (we'll add an access dropdown shortly) + $message_to->access_id = ACCESS_PUBLIC; + $message_sent->access_id = ACCESS_PUBLIC; + // Set its description appropriately + $message_to->title = $subject; + $message_to->description = $body; + $message_sent->title = $subject; + $message_sent->description = $body; + // set the metadata + $message_to->toId = $send_to; // the user receiving the message + $message_to->fromId = $from; // the user receiving the message + $message_to->readYet = 0; // this is a toggle between 0 / 1 (1 = read) + $message_to->hiddenFrom = 0; // this is used when a user deletes a message in their sentbox, it is a flag + $message_to->hiddenTo = 0; // this is used when a user deletes a message in their inbox + $message_sent->toId = $send_to; // the user receiving the message + $message_sent->fromId = $from; // the user receiving the message + $message_sent->readYet = 0; // this is a toggle between 0 / 1 (1 = read) + $message_sent->hiddenFrom = 0; // this is used when a user deletes a message in their sentbox, it is a flag + $message_sent->hiddenTo = 0; // this is used when a user deletes a message in their inbox + + $message_to->msg = 1; + $message_sent->msg = 1; + + // Save the copy of the message that goes to the recipient + $success = $message_to->save(); - } - - /** - * messages page handler; allows the use of fancy URLs - * - * @param array $page From the page_handler function - * @return true|false Depending on success - */ - function messages_page_handler($page) { + // Save the copy of the message that goes to the sender + if ($add_to_sent) $success2 = $message_sent->save(); - // The first component of a messages URL is the username - if (isset($page[0])) { - set_input('username',$page[0]); - } + $message_to->access_id = ACCESS_PRIVATE; + $message_to->save(); - // The second part dictates what we're doing - if (isset($page[1])) { - switch($page[1]) { - case "read": set_input('message',$page[2]); - include(dirname(__FILE__) . "/read.php"); - return true; - break; - } - // If the URL is just 'messages/username', or just 'messages/', load the standard messages index - } else { - include(dirname(__FILE__) . "/index.php"); - return true; + if ($add_to_sent) { + $message_sent->access_id = ACCESS_PRIVATE; + $message_sent->save(); } - return false; + // if the new message is a reply then create a relationship link between the new message + // and the message it is in reply to + if($reply && $success){ + $create_relationship = add_entity_relationship($message_sent->guid, "reply", $reply); + } + + + global $CONFIG; + $message_contents = strip_tags($body); + if ($send_to != get_loggedin_user() && $notify) + notify_user($send_to, get_loggedin_user()->guid, elgg_echo('messages:email:subject'), + sprintf( + elgg_echo('messages:email:body'), + get_loggedin_user()->name, + $message_contents, + $CONFIG->wwwroot . "pg/messages/" . $user->username, + get_loggedin_user()->name, + $CONFIG->wwwroot . "mod/messages/send.php?send_to=" . get_loggedin_user()->guid + ) + ); - } + $messagesendflag = 0; + return $success; + +} - function messages_url($message) { - - global $CONFIG; - return $CONFIG->url . "pg/messages/" . $message->getOwnerEntity()->username . "/read/" . $message->getGUID(); - - } - - // A simple function to count the number of messages that are unread in a user's inbox - function count_unread_messages() { - - //get the users inbox messages - //$num_messages = get_entities_from_metadata("toId", $_SESSION['user']->getGUID(), "object", "messages", 0, 10, 0, "", 0, false); - $num_messages = elgg_get_entities_from_metadata(array('metadata_name_value_pairs' => array( - 'toId' => $_SESSION['user']->guid, - 'readYet' => 0, - 'msg' => 1 - ), 'types' => 'object', 'subtypes' => 'messages', 'owner_guid' => $_SESSION['user']->guid, 'limit' => 9999)); - - if (is_array($num_messages)) - $counter = sizeof($num_messages); - else - $counter = 0; - - return $counter; - - } - - function messages_site_notify_handler(ElggEntity $from, ElggUser $to, $subject, $message, array $params = NULL) - { - global $CONFIG; - - if (!$from) - throw new NotificationException(sprintf(elgg_echo('NotificationException:MissingParameter'), 'from')); - - if (!$to) - throw new NotificationException(sprintf(elgg_echo('NotificationException:MissingParameter'), 'to')); - - global $messages_pm; - if (!$messages_pm) - return messages_send($subject,$message,$to->guid,$from->guid,0,false,false); - else return true; - +/** + * messages page handler; allows the use of fancy URLs + * + * @param array $page From the page_handler function + * @return true|false Depending on success + */ +function messages_page_handler($page) { + + // The first component of a messages URL is the username + if (isset($page[0])) { + set_input('username',$page[0]); + } + + // The second part dictates what we're doing + if (isset($page[1])) { + switch($page[1]) { + case "read": set_input('message',$page[2]); + include(dirname(__FILE__) . "/read.php"); + return true; + break; } + // If the URL is just 'messages/username', or just 'messages/', load the standard messages index + } else { + include(dirname(__FILE__) . "/index.php"); + return true; + } + return false; + +} + +function messages_url($message) { + + global $CONFIG; + return $CONFIG->url . "pg/messages/" . $message->getOwnerEntity()->username . "/read/" . $message->getGUID(); + +} + +// A simple function to count the number of messages that are unread in a user's inbox +function count_unread_messages() { + + //get the users inbox messages + //$num_messages = get_entities_from_metadata("toId", $_SESSION['user']->getGUID(), "object", "messages", 0, 10, 0, "", 0, false); + $num_messages = elgg_get_entities_from_metadata(array('metadata_name_value_pairs' => array( + 'toId' => $_SESSION['user']->guid, + 'readYet' => 0, + 'msg' => 1 + ))); + + if (is_array($num_messages)) + $counter = sizeof($num_messages); + else + $counter = 0; - // Make sure the messages initialisation function is called on initialisation - register_elgg_event_handler('init','system','messages_init'); - - register_plugin_hook('permissions_check','object','messages_can_edit'); - register_plugin_hook('container_permissions_check','object','messages_can_edit_container'); + return $counter; + +} + +function messages_site_notify_handler(ElggEntity $from, ElggUser $to, $subject, $message, array $params = NULL) +{ + global $CONFIG; + + if (!$from) + throw new NotificationException(sprintf(elgg_echo('NotificationException:MissingParameter'), 'from')); + + if (!$to) + throw new NotificationException(sprintf(elgg_echo('NotificationException:MissingParameter'), 'to')); - // Register actions - global $CONFIG; - register_action("messages/send",false,$CONFIG->pluginspath . "messages/actions/send.php"); - register_action("messages/delete",false,$CONFIG->pluginspath . "messages/actions/delete.php"); - -?> \ No newline at end of file + global $messages_pm; + if (!$messages_pm) + return messages_send($subject,$message,$to->guid,$from->guid,0,false,false); + else return true; + +} + + +// Make sure the messages initialisation function is called on initialisation +register_elgg_event_handler('init','system','messages_init'); + +register_plugin_hook('permissions_check','object','messages_can_edit'); +register_plugin_hook('container_permissions_check','object','messages_can_edit_container'); + +// Register actions +global $CONFIG; +register_action("messages/send",false,$CONFIG->pluginspath . "messages/actions/send.php"); +register_action("messages/delete",false,$CONFIG->pluginspath . "messages/actions/delete.php"); \ No newline at end of file diff --git a/mod/messages/views/default/messages/css.php b/mod/messages/views/default/messages/css.php index 6a8a6ed30..b73f8ff11 100644 --- a/mod/messages/views/default/messages/css.php +++ b/mod/messages/views/default/messages/css.php @@ -1,234 +1,83 @@ - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ - +/** + * Elgg Messages CSS + * + * @package ElggMessages + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.com/ + */ ?> -/*------------------------------- -MESSAGING PLUGIN --------------------------------*/ -#messages { - margin:0 10px 0 10px; -} -.actiontitle { - font-weight: bold; - font-size: 110%; - margin: 0 0 10px 0; -} -#messages .pagination { - margin:5px 0 5px 0; -} -#messages input[type="checkbox"] { - margin:0; - padding:0; - border:none; -} -.messages_buttonbank { - -webkit-border-radius: 8px; - -moz-border-radius: 8px; - background:white; - margin:5px 10px; - padding:5px; - text-align: right; -} -.messages_buttonbank input { - margin:0 0 0 10px; -} -.messages_buttonbank input[type="button"] { - font: 12px/100% Arial, Helvetica, sans-serif; - font-weight: bold; - color: #4690D6; - background:#dddddd; - border: 1px solid #999999; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - width: auto; - height: 25px; - padding: 2px 6px 2px 6px; - margin:0 0 0 10px; - cursor: pointer; -} -.messages_buttonbank input[type="button"]:hover { - background: #0054a7; - border: 1px solid #0054a7; +/* messages/new messages icon & counter in elgg_topbar */ +a.privatemessages { + background:transparent url(_graphics/toolbar_messages_icon.gif) no-repeat left 2px; + padding-left:16px; + margin:4px 15px 0 5px; + cursor:pointer; +} +a.privatemessages:hover { + text-decoration: none; + background:transparent url(_graphics/toolbar_messages_icon.gif) no-repeat left -36px; +} +a.privatemessages.new { + background:transparent url(_graphics/toolbar_messages_icon.gif) no-repeat left 2px; + padding-left:18px; + margin:4px 15px 0 5px; color:white; } - -#messages td { - text-align: left; - vertical-align:middle; - padding: 5px; -} -#messages .message_sent { - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - margin-bottom: 5px; - background: white; - border:1px solid #cccccc; +a.privatemessages.new:hover { + text-decoration: none; + background:transparent url(_graphics/toolbar_messages_icon.gif) no-repeat left -36px; } -#messages .message_notread { - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - margin-bottom: 5px; - background: #F7DAD8; - border:1px solid #ff6c7c; -} -#messages .message_read { - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - margin-bottom: 5px; - background: white; - border:1px solid #cccccc; -} -#messages .message_notread td { - -} -#messages .message_read td { - -} - -#messages .delete_msg a { +a.privatemessages.new span { + background-color: red; + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -webkit-box-shadow: -2px 2px 4px rgba(0, 0, 0, 0.50); /* safari v3+ */ + -moz-box-shadow: -2px 2px 4px rgba(0, 0, 0, 0.50); /* FF v3.5+ */ + color:white; display:block; - cursor: pointer; - width:14px; - height:14px; - margin:0; - background: url("_graphics/icon_customise_remove.png") no-repeat right 0; - text-indent: -9000px; float:right; -} -#messages .delete_msg a:hover { - background-position: right -16px; -} -/* IE6 */ -* html #messages .delete_msg a { background-position: right 4px; } -* html #messages .delete_msg a:hover { background-position: right 4px; } - -#messages .usericon, -#messages .groupicon { - float: left; - margin: 0 15px 0 0; -} - -#messages .msgsender { - color:#666666; - line-height: 1em; - margin:0; padding:0; - float:left; -} -#messages .msgsender small { - color:#AAAAAA; -} - - -#messages .msgsubject { - font-size: 120%; - line-height: 100%; -} - -.msgsubject { + position:relative; + text-align:center; + top:-3px; + right:5px; + min-width: 15px; + font-size:9px; font-weight:bold; } -.messages_single_icon { - float: left; - width:110px; -} - -.messages_single_icon .usericon, -.messages_single_icon .groupicon { - float: left; - margin: 0 10px 10px 0; -} - -/* view and reply to message view */ -.message_body { - margin-left: 120px; -} -.message_body .messagebody { - padding:0; - margin:10px 0 10px 0; - font-size: 120%; - border-bottom:1px solid #cccccc; -} - -/* drop down message reply form */ -#message_reply_form { display:none; } - -.new_messages_count { - color:#666666; -} -/* tinyMCE container */ -#message_reply_editor #message_tbl { - width:680px !important; -} -/* IE6 */ -* html #message_reply_editor #message_tbl { width:676px !important;} - -#messages_return { - margin:4px 0 4px 10px; -} -#messages_return p { - margin:0; -} -.messages_single { - background: white; - -webkit-border-radius: 8px; - -moz-border-radius: 8px; - margin:0 10px 10px 10px; - padding:10px; +/* page content */ +.message { + border-bottom:1px dotted #cccccc; + padding:5px 0 7px 0; } -/* when displaying original msg in reply view */ -.previous_message { - background:#dedede; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - padding:10px; - margin:0 0 20px 0; +.message.notread .entity_listing_info p.entity_title a { + color:#d40005; } -.previous_message p { - padding:0; - margin:0 0 5px 0; - font-size: 100%; +.message_sender { + float:left; + width:180px; + overflow: hidden; } - - - - -#notificationstable td.sitetogglefield { - width:50px; - text-align: center; - vertical-align: middle; +.message_subject { + float:left; + width:513px; + padding-top:6px; } -#notificationstable td.sitetogglefield input { - margin-right:36px; - margin-top:5px; +.message .delete_button { + margin-top:3px; } -#notificationstable td.sitetogglefield a { - width:46px; - height:24px; - cursor: pointer; - display: block; - outline: none; +.entity_listing.messages:hover { + background-color:white; } -#notificationstable td.sitetogglefield a.sitetoggleOff { - background: url(mod/messages/graphics/icon_notifications_site.gif) no-repeat right 2px; +.messages_buttonbank { + margin:5px 0; + text-align: right; } -#notificationstable td.sitetogglefield a.sitetoggleOn { - background: url(mod/messages/graphics/icon_notifications_site.gif) no-repeat right -36px; +.messages_buttonbank input { + margin:0 0 0 10px; } - - - - - - diff --git a/mod/messages/views/default/messages/forms/message.php b/mod/messages/views/default/messages/forms/message.php deleted file mode 100644 index 3a926b0d3..000000000 --- a/mod/messages/views/default/messages/forms/message.php +++ /dev/null @@ -1,94 +0,0 @@ - - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - * - * @uses $vars['friends'] This is an array of a user's friends and is used to populate the list of - * people the user can message - * - */ - - //grab the user id to send a message to. This will only happen if a user clicks on the 'send a message' - //link on a user's profile or hover-over menu - $send_to = get_input('send_to'); - if ($send_to === "") - $send_to = $_SESSION['msg_to']; - - $msg_title = $_SESSION['msg_title']; - $msg_content = $_SESSION['msg_contents']; - - // clear sticky form cache in case user browses away from page and comes back - unset($_SESSION['msg_to']); - unset($_SESSION['msg_title']); - unset($_SESSION['msg_contents']); - - - -?> -
-
- - " . elgg_echo("messages:to") . ":
" . elgg_view("profile/icon",array('entity' => $user, 'size' => 'tiny')) . $user->username; - echo "

"; - //set the hidden input field to the recipients guid - echo ""; - - - }else{ - - ?> - -

-

- - - -

-

-

" />

- -
-
diff --git a/mod/messages/views/default/messages/forms/reply.php b/mod/messages/views/default/messages/forms/reply.php deleted file mode 100644 index 7b949ec36..000000000 --- a/mod/messages/views/default/messages/forms/reply.php +++ /dev/null @@ -1,53 +0,0 @@ - - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - * - * @uses $vars['entity'] This is the message being replied to - * - */ - - // fix for RE: RE: RE: that builds on replies - $reply_title = $vars['entity']->title; - if (strncmp($reply_title, "RE:", 3) != 0) { - $reply_title = "RE: " . $reply_title; - } -exit; - $reply_title = str_replace("'", "\\'", $reply_title); -?> - -
- - -

-

- -

- getGUID() . "' />"; - //pass along the owner of the message being replied to - echo "fromId . "' />"; - - ?> - " /> -

- -
- - " . elgg_echo("messages:replying") . ""; - echo $vars['entity']->description; - - } - ?> diff --git a/mod/messages/views/default/messages/forms/send.php b/mod/messages/views/default/messages/forms/send.php new file mode 100644 index 000000000..93abe2e64 --- /dev/null +++ b/mod/messages/views/default/messages/forms/send.php @@ -0,0 +1,74 @@ + +* @copyright Curverider Ltd 2008-2010 +* @link http://elgg.com/ + * @uses $vars['friends'] This is an array of a user's friends and is used to populate the list of + * people the user can message + * + */ + +//grab the user id to send a message to. This will only happen if a user clicks on the 'send a message' +//link on a user's profile or hover-over menu +$send_to = get_input('send_to'); +if ($send_to === "") + $send_to = $_SESSION['msg_to']; + +$msg_title = $_SESSION['msg_title']; +$msg_content = $_SESSION['msg_contents']; + +// clear sticky form cache in case user browses away from page and comes back +unset($_SESSION['msg_to']); +unset($_SESSION['msg_title']); +unset($_SESSION['msg_contents']); +?> +
+
".elgg_view("profile/icon",array('entity' => $user, 'size' => 'tiny'))."
"; + + //draw it + echo "
".elgg_echo("messages:to").": username."'>".$user->username.""; + //set the hidden input field to the recipients guid + echo ""; + echo "
"; + + } else { + ?> + +

+

+ + +

+

+

" />

+
diff --git a/mod/messages/views/default/messages/forms/view.php b/mod/messages/views/default/messages/forms/view.php index adcd3a589..643953064 100644 --- a/mod/messages/views/default/messages/forms/view.php +++ b/mod/messages/views/default/messages/forms/view.php @@ -1,15 +1,26 @@ +* @copyright Curverider Ltd 2008-2010 +* @link http://elgg.com/ +*/ - $body = elgg_view("messages/view",$vars); - - $body .= '
'; - $body .= ''; - $body .= ''; - $body .= ' '; +$body = elgg_view("messages/view",$vars); + +$body .= '
'; +$body .= ''; +$body .= ''; +$body .= ' '; + +if($vars['page_view'] == "inbox"){ $body .= ' '; - $body .= ''; - $body .= '
'; - - echo elgg_view('input/form',array('body' => $body, 'action' => $vars['url'] . 'action/messages/delete', 'method' => 'post')); +} + +$body .= ''; +$body .= '
'; -?> \ No newline at end of file +echo elgg_view('input/form',array('body' => $body, 'action' => $vars['url'] . 'action/messages/delete', 'method' => 'post')); \ No newline at end of file diff --git a/mod/messages/views/default/messages/menu.php b/mod/messages/views/default/messages/menu.php index 9f8da1fb1..06cdde060 100644 --- a/mod/messages/views/default/messages/menu.php +++ b/mod/messages/views/default/messages/menu.php @@ -1,18 +1,16 @@ - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ - - //need to be logged in to send a message - if (isloggedin()) { - +/** + * Elgg hoverover extender for messages + * + * @package ElggMessages + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.com/ + */ + + //need to be logged in to send a message + if (isloggedin()) { ?>

@@ -20,7 +18,4 @@

\ No newline at end of file +} \ No newline at end of file diff --git a/mod/messages/views/default/messages/messages.php b/mod/messages/views/default/messages/messages.php index cdc6e4483..2e179b00f 100644 --- a/mod/messages/views/default/messages/messages.php +++ b/mod/messages/views/default/messages/messages.php @@ -1,165 +1,131 @@ - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - * - * - * @uses $vars['entity'] Optionally, the message to view - * @uses get_input('type') If the user accesses the message from their sentbox, this variable is passed - * and used to make sure the correct icon and name is displayed - */ - // set some variables to use below - if(get_input("type") == "sent"){ - - // send back to the users sentbox - $url = $vars['url'] . "mod/messages/sent.php"; - - //this is used on the delete link so we know which type of message it is - $type = "sent"; - - } else { - - //send back to the users inbox - $url = $vars['url'] . "pg/messages/" . $vars['user']->username; - - //this is used on the delete link so we know which type of message it is - $type = "inbox"; - - } - - // fix for RE: RE: RE: that builds on replies - $reply_title = $vars['entity']->title; - if (strncmp($reply_title, "RE:", 3) != 0) { - $reply_title = "RE: " . $reply_title; - } - - if (isloggedin()) +/** + * Elgg messages individual view + * + * @package ElggMessages + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.com/ + * + * + * @uses $vars['entity'] Optionally, the message to view + * @uses get_input('type') If the user accesses the message from their sentbox, this variable is passed + * and used to make sure the correct icon and name is displayed + */ +// set some variables to use below +if(get_input("type") == "sent"){ + // send back to the users sentbox + $url = $vars['url'] . "mod/messages/sent.php"; + // set up breadcrumbs context + $breadcrumb_root_text = elgg_echo('messages:sent'); + //this is used on the delete link so we know which type of message it is + $type = "sent"; +} else { + //send back to the users inbox + $url = $vars['url'] . "pg/messages/" . $vars['user']->username; + // set up breadcrumbs context + $breadcrumb_root_text = elgg_echo('messages:inbox'); + //this is used on the delete link so we know which type of message it is + $type = "inbox"; +} + +// fix for RE: RE: RE: that builds on replies +$reply_title = $vars['entity']->title; +if (strncmp($reply_title, "RE:", 3) != 0) { + $reply_title = "RE: " . $reply_title; +} + +if (isloggedin()) if (isset($vars['entity'])) { if ($vars['entity']->toId == $vars['user']->guid || $vars['entity']->owner_guid == $vars['user']->guid) { - + // display breadcrumbs + echo elgg_view('page_elements/breadcrumbs', array( + 'breadcrumb_root_url' => $url, + 'breadcrumb_root_text' => $breadcrumb_root_text, +/* + 'breadcrumb_level1_url' => $url, + 'breadcrumb_level1_text' => $vars['entity']->title, + 'breadcrumb_level2_url' => $url, + 'breadcrumb_level2_text' => $vars['entity']->title, +*/ + 'breadcrumb_currentpage' => $vars['entity']->title + )); ?> - -
-

«

-
- -
- -
- - toId); - echo " " . elgg_view("profile/icon",array('entity' => $user_object, 'size' => 'tiny')); - echo "

".elgg_echo('messages:to').": " . $user_object->name . "
"; - } else { - echo " " . elgg_view("profile/icon",array('entity' => get_entity($vars['entity']->fromId), 'size' => 'tiny')); - echo "

".elgg_echo('messages:from').": " . get_entity($vars['entity']->fromId)->name . "
"; - } - ?> - - time_created); ?> -

-
- -
- - (anyone?) - if($main_message = $vars['entity']->getEntitiesFromRelationship("reply")){ - - if($type == "sent"){ - echo "

".elgg_echo('messages:original').":

"; - }else{ - echo "

".elgg_echo('messages:yours').":

"; - } - - echo $main_message[0][description] . "

"; - - } - ?> - - -
-

title; ?>

-
- - -
-

$vars['entity']->description)); ?>

-
- - -
- - - - -

".elgg_echo('messages:answer')."   "; ?> $vars['url'] . "action/messages/delete?message_id=" . $vars['entity']->getGUID() . "&type={$type}&submit=" . elgg_echo('delete'), - 'text' => elgg_echo('delete'), - 'confirm' => elgg_echo('deleteconfirm'), - )); ?> -

-
- -
- - -
-
- -

-

-
- "message", - "value" => '', - )); - - ?>
- -

- getGUID() . "' />"; - //pass along the owner of the message being replied to - echo "fromId . "' />"; - - ?> - " /> -

-
-
- -
+ +
+

title; ?>

+
+ + $vars['url'] . "action/messages/delete?message_id=" . $vars['entity']->getGUID() . "&type={$type}&submit=" . elgg_echo('delete'), + 'text' => elgg_echo('delete'), + 'confirm' => elgg_echo('deleteconfirm'), + 'class' => "action_button disabled" + )); + ?> +
+
+ +
+ toId); + $message_icon = elgg_view("profile/icon",array('entity' => $user_object, 'size' => 'tiny')); + $message_owner = elgg_echo('messages:to').": username."'>".$user_object->name.""; + }else{ + $user_object = get_entity($vars['entity']->fromId); + $message_icon = elgg_view("profile/icon",array('entity' => $user_object, 'size' => 'tiny')); + $message_owner = elgg_echo('messages:from').": username."'>".get_entity($vars['entity']->fromId)->name.""; + } + ?> +
+

+

time_created); ?>

+
+
+ +
+ (anyone?) + if($main_message = $vars['entity']->getEntitiesFromRelationship("reply")){ + echo $main_message[0][description]; + } + ?> + + $vars['entity']->description)); ?> +
+ + + +} \ No newline at end of file diff --git a/mod/messages/views/default/messages/topbar.php b/mod/messages/views/default/messages/topbar.php index 179167561..7a607f035 100644 --- a/mod/messages/views/default/messages/topbar.php +++ b/mod/messages/views/default/messages/topbar.php @@ -1,38 +1,34 @@ + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.com/ + */ - /** - * Elgg messages topbar extender - * - * @package ElggMessages - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider Ltd - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ - - //need to be logged in to send a message - gatekeeper(); +gatekeeper(); - //get unread messages - $num_messages = count_unread_messages(); - if($num_messages){ - $num = $num_messages; - } else { - $num = 0; - } - - if($num == 0){ +//get unread messages +$num_messages = count_unread_messages(); +if($num_messages){ + $num = $num_messages; +} else { + $num = 0; +} +if($num == 0) { ?>   [] \ No newline at end of file + } \ No newline at end of file diff --git a/mod/messages/views/default/messages/view.php b/mod/messages/views/default/messages/view.php index 501be8bb3..cedd4bb5a 100644 --- a/mod/messages/views/default/messages/view.php +++ b/mod/messages/views/default/messages/view.php @@ -1,150 +1,125 @@ - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - * - * @uses $vars['entity'] An array of messages to view - * @uses $vars['page_view'] This is the page the messages are being accessed from; inbox or sentbox - * - */ - - $limit = $vars['limit']; if (empty($limit)) $limit = 10; - $offset = $vars['offset']; if (!isset($offset)) $offset = 0; - - // If there are any messages to view, view them - if (isloggedin()) - if (is_array($vars['entity']) && sizeof($vars['entity']) > 0) { - -?> -
- -owner_guid == $vars['user']->guid - || $message->toId == $vars['user']->guid) { - - //make sure to only display the messages that have not been 'deleted' (1 = deleted) - if($message->hiddenFrom != 1){ - - // check to see if the message has been read, if so, get the correct background color - if($message->readYet == 1){ - echo "
"; - }else{ - echo "
"; - } - - //set the table - echo ""; - //get the icon of the user who owns the message - $from = get_entity($message->fromId); - echo ""; - //display the message title - echo ""; - //display the link to 'delete' - - echo "
" . elgg_view("profile/icon",array('entity' => $from, 'size' => 'tiny')) . "
" . $from->name . "
" . friendly_time($message->time_created) . "
"; - echo "guid}\" /> "; - echo "getURL()}\">" . $message->title . "
"; - echo "
" . elgg_view("output/confirmlink", array( - 'href' => $vars['url'] . "action/messages/delete?message_id=" . $message->getGUID() . "&type=inbox&submit=" . urlencode(elgg_echo('delete')), - 'text' => elgg_echo('delete'), - 'confirm' => elgg_echo('deleteconfirm'), - )) . "
"; - - echo "
"; - echo "
"; // close the message background div - - }//end of hiddenFrom if statement - } // end of user check - - $counter++; - if ($counter == $limit) break; - - }//end of for each loop - - }//end of inbox if statement - - // get the correct display for the sentbox view - if($vars['page_view'] == "sent") { - - $counter = 0; - - foreach($vars['entity'] as $message) { - - //make sure to only display the messages that have not been 'deleted' (1 = deleted) - if($message->hiddenTo != 1){ - - //get the correct user entity - $user = get_entity($message->toId); - echo "
"; - echo ""; - - //get the icon for the user the message was sent to - echo ""; - //display the message title - echo ""; - //display the link to 'delete' - - echo "
" . elgg_view("profile/icon",array('entity' => $user, 'size' => 'tiny')) . "
" . $user->name . "
" . friendly_time($message->time_created) . "
"; - echo "guid}\" /> "; - echo "getURL()}?type=sent\">" . $message->title . "
"; - echo "
" . elgg_view("output/confirmlink", array( - 'href' => $vars['url'] . "action/messages/delete?message_id=" . $message->getGUID() . "&type=sent&submit=" . urlencode(elgg_echo('delete')), - 'text' => elgg_echo('delete'), - 'confirm' => elgg_echo('deleteconfirm'), - )) . "
"; - echo "
"; - - }//close hiddeTo if statement - - $counter++; - if ($counter == $limit) break; - - }//close foreach - - }//close page_view sent if statement - - $baseurl = $_SERVER['REQUEST_URI']; - $nav = ''; - - if (sizeof($vars['entity']) > $limit) { - $newoffset = $offset + $limit; - $nexturl = elgg_http_add_url_query_elements($baseurl, array('offset' => $newoffset)); - - $nav .= '« ' . elgg_echo('previous') . ' '; - } - - if ($offset > 0) { - $newoffset = $offset - $limit; - if ($newoffset < 0) $newoffset = 0; - - $prevurl = elgg_http_add_url_query_elements($baseurl, array('offset' => $newoffset)); - - $nav .= '' . elgg_echo('next') . ' » '; - } - - - if (!empty($nav)) { - echo ''; - } - - echo "
"; // close the main messages wrapper div - - } else { - - echo "

" . elgg_echo("messages:nomessages") . "

"; - - }//end of the first if statement -?> +/** + * Elgg messages view page + * + * @package ElggMessages + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.com/ + * + * @uses $vars['entity'] An array of messages to view + * @uses $vars['page_view'] This is the page the messages are being accessed from; inbox or sentbox + * + */ + +$limit = $vars['limit']; if (empty($limit)) $limit = 10; +$offset = $vars['offset']; if (!isset($offset)) $offset = 0; + +// If there are any messages to view, view them +if (isloggedin()) +if (is_array($vars['entity']) && sizeof($vars['entity']) > 0) { + + // get the correct display for the inbox view + if($vars['page_view'] == "inbox") { + + $counter = 0; + + foreach($vars['entity'] as $message) { + if ($message->owner_guid == $vars['user']->guid || $message->toId == $vars['user']->guid) { + + //make sure to only display the messages that have not been 'deleted' (1 = deleted) + if($message->hiddenFrom != 1){ + // check to see if the message has been read, if so, set the correct container class + if($message->readYet == 1){ + echo "
"; + }else{ + echo "
"; + } + // get the icon of the user who owns the message + $from = get_entity($message->fromId); + echo "
".elgg_view("profile/icon",array('entity' => $from, 'size' => 'tiny'))."
"; + // message block (message sender, message subject, delete checkbox) + echo "
".$from->name."

".friendly_time($message->time_created)."

"; + // display message subject + echo "
"; + // display delete button + echo "
" . elgg_view("output/confirmlink", array( + 'href' => $vars['url'] . "action/messages/delete?message_id=" . $message->getGUID() . "&type=inbox&submit=" . urlencode(elgg_echo('delete')), + 'text' => elgg_echo('delete'), + 'confirm' => elgg_echo('deleteconfirm'), + )) . "
"; + echo "

guid}\" />"; + echo "getURL()}\">" . $message->title . "

"; + echo "
"; // close the message container + }//end of hiddenFrom if statement + } // end of user check + $counter++; + if ($counter == $limit) break; + + }//end of for each loop + }//end of inbox if statement + + // get the correct display for the sentbox view + if($vars['page_view'] == "sent") { + + $counter = 0; + + foreach($vars['entity'] as $message) { + + //make sure to only display the messages that have not been 'deleted' (1 = deleted) + if($message->hiddenTo != 1){ + + //get the correct user entity + $user = get_entity($message->toId); + echo "
"; + //get the icon for the user the message was sent to + echo "
".elgg_view("profile/icon",array('entity' => $user, 'size' => 'tiny'))."
"; + echo "
".$_SESSION['user']->name."

".friendly_time($message->time_created)."

"; + // display message subject + echo "
"; + //display the link to 'delete' + echo "
" . elgg_view("output/confirmlink", array( + 'href' => $vars['url'] . "action/messages/delete?message_id=" . $message->getGUID() . "&type=sent&submit=" . urlencode(elgg_echo('delete')), + 'text' => elgg_echo('delete'), + 'confirm' => elgg_echo('deleteconfirm'), + )) . "
"; + echo "

guid}\" /> "; + echo "getURL()}?type=sent\">" . $message->title . "

"; + echo "
"; // close the message container + }//close hiddeTo if statement + + $counter++; + if ($counter == $limit) break; + + }//close foreach + + }//close page_view sent if statement + + $baseurl = $_SERVER['REQUEST_URI']; + $nav = ''; + + if (sizeof($vars['entity']) > $limit) { + $newoffset = $offset + $limit; + $nexturl = elgg_http_add_url_query_elements($baseurl, array('offset' => $newoffset)); + + $nav .= '« ' . elgg_echo('previous') . ' '; + } + + if ($offset > 0) { + $newoffset = $offset - $limit; + if ($newoffset < 0) $newoffset = 0; + + $prevurl = elgg_http_add_url_query_elements($baseurl, array('offset' => $newoffset)); + + $nav .= '' . elgg_echo('next') . ' » '; + } + + + if (!empty($nav)) { + echo ''; + } + +} else { + echo "

".elgg_echo("messages:nomessages")."

"; +} diff --git a/mod/messages/views/default/object/messages.php b/mod/messages/views/default/object/messages.php deleted file mode 100644 index e69de29bb..000000000 -- cgit v1.2.3