diff options
author | cash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-05-12 23:31:00 +0000 |
---|---|---|
committer | cash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-05-12 23:31:00 +0000 |
commit | 4ae064871ba9dca9f03e095671db48815632d070 (patch) | |
tree | ccccacdac0f608e2d262d1d3a8916408c033f132 | |
parent | 8618288ed51942c814f45c67354b14eec43c2422 (diff) | |
download | elgg-4ae064871ba9dca9f03e095671db48815632d070.tar.gz elgg-4ae064871ba9dca9f03e095671db48815632d070.tar.bz2 |
merging messageboard cleanup from 1.7 branch [5908],[5909],[5917]
git-svn-id: http://code.elgg.org/elgg/trunk@6019 36083f99-b078-4883-b0ff-0f9b5a30f544
-rw-r--r-- | mod/messageboard/actions/add.php | 98 | ||||
-rw-r--r-- | mod/messageboard/actions/delete.php | 75 | ||||
-rw-r--r-- | mod/messageboard/ajax_endpoint/load.php | 111 | ||||
-rw-r--r-- | mod/messageboard/history.php | 74 | ||||
-rw-r--r-- | mod/messageboard/index.php | 73 | ||||
-rw-r--r-- | mod/messageboard/languages/en.php | 118 | ||||
-rw-r--r-- | mod/messageboard/readme.txt | 13 | ||||
-rw-r--r-- | mod/messageboard/start.php | 164 | ||||
-rw-r--r-- | mod/messageboard/views/default/messageboard/css.php | 4 | ||||
-rw-r--r-- | mod/messageboard/views/default/messageboard/forms/add.php | 49 | ||||
-rw-r--r-- | mod/messageboard/views/default/messageboard/group_messageboard.php | 96 | ||||
-rw-r--r-- | mod/messageboard/views/default/messageboard/messageboard.php | 67 | ||||
-rw-r--r-- | mod/messageboard/views/default/messageboard/messageboard_content.php | 110 | ||||
-rw-r--r-- | mod/messageboard/views/default/river/object/messageboard/create.php | 14 | ||||
-rw-r--r-- | mod/messageboard/views/default/widgets/messageboard/edit.php | 52 | ||||
-rw-r--r-- | mod/messageboard/views/default/widgets/messageboard/view.php | 165 |
16 files changed, 559 insertions, 724 deletions
diff --git a/mod/messageboard/actions/add.php b/mod/messageboard/actions/add.php index 98ffe4b47..7b2402732 100644 --- a/mod/messageboard/actions/add.php +++ b/mod/messageboard/actions/add.php @@ -1,68 +1,40 @@ <?php - /** - * Elgg Message board: add message action - * - * @package ElggMessageBoard - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider Ltd <info@elgg.com> - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.org/ - */ +/** + * Elgg Message board: add message action + * + * @package ElggMessageBoard + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd <info@elgg.com> + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.org/ + */ - // Make sure we're logged in; forward to the front page if not - if (!isloggedin()) forward(); - - // Get input - $message_content = get_input('message_content'); // the actual message - $page_owner = get_input("pageOwner"); // the message board owner - $message_owner = get_input("guid"); // the user posting the message - $user = get_entity($page_owner); // the message board owner's details - - // Let's see if we can get a user entity from the specified page_owner - if ($user && !empty($message_content)) { - - // If posting the comment was successful, say so - if ($user->annotate('messageboard',$message_content,$user->access_id, $_SESSION['user']->getGUID())) { - - global $CONFIG; - - if ($user->getGUID() != $_SESSION['user']->getGUID()) - notify_user($user->getGUID(), $_SESSION['user']->getGUID(), elgg_echo('messageboard:email:subject'), - sprintf( - elgg_echo('messageboard:email:body'), - $_SESSION['user']->name, - $message_content, - $CONFIG->wwwroot . "pg/messageboard/" . $user->username, - $_SESSION['user']->name, - $_SESSION['user']->getURL() - ) - ); - - system_message(elgg_echo("messageboard:posted")); - // add to river - add_to_river('river/object/messageboard/create','messageboard',$_SESSION['user']->guid,$user->guid); +// Get input +$message_content = get_input('message_content'); // the actual message +$page_owner = get_input("pageOwner"); // the message board owner +$user = get_entity($page_owner); // the message board owner's details - - } else { - - register_error(elgg_echo("messageboard:failure")); - - } - - //set the url to return the user to the correct message board - $url = "pg/messageboard/" . $user->username; - - } else { - - register_error(elgg_echo("messageboard:blank")); - - //set the url to return the user to the correct message board - $url = "pg/messageboard/" . $user->username; - - } - - // Forward back to the messageboard - forward($url); +// Let's see if we can get a user entity from the specified page_owner +if ($user && !empty($message_content)) { -?>
\ No newline at end of file + if (messageboard_add(get_loggedin_user(), $user, $message_content, $user->access_id)) { + system_message(elgg_echo("messageboard:posted")); + } else { + register_error(elgg_echo("messageboard:failure")); + } + + //set the url to return the user to the correct message board + $url = "pg/messageboard/" . $user->username; + +} else { + + register_error(elgg_echo("messageboard:blank")); + + //set the url to return the user to the correct message board + $url = "pg/messageboard/" . $user->username; + +} + +// Forward back to the messageboard +forward($url); diff --git a/mod/messageboard/actions/delete.php b/mod/messageboard/actions/delete.php index 9c17f1fcd..c903a0d20 100644 --- a/mod/messageboard/actions/delete.php +++ b/mod/messageboard/actions/delete.php @@ -1,44 +1,41 @@ <?php - /** - * Elgg Message board: delete message action - * - * @package ElggMessageBoard - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider Ltd <info@elgg.com> - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.org/ - */ +/** + * Elgg Message board: delete message action + * + * @package ElggMessageBoard + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd <info@elgg.com> + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.org/ + */ - // Ensure we're logged in - if (!isloggedin()) forward(); - - // Make sure we can get the comment in question - $annotation_id = (int) get_input('annotation_id'); - - //make sure that there is a message on the message board matching the passed id - if ($message = get_annotation($annotation_id)) { - - //grab the user or group entity - $entity = get_entity($message->entity_guid); - - //check to make sure the current user can actually edit the message board - if ($message->canEdit()) { - //delete the comment - $message->delete(); - //display message - system_message(elgg_echo("messageboard:deleted")); - //generate the url to forward to - $url = "pg/messageboard/" . $entity->username; - //forward the user back to their message board - forward($url); - } - - } else { - $url = ""; - system_message(elgg_echo("messageboard:notdeleted")); - } - +// Make sure we can get the comment in question +$annotation_id = (int) get_input('annotation_id'); + +//make sure that there is a message on the message board matching the passed id +if ($message = get_annotation($annotation_id)) { + + //grab the user or group entity + $entity = get_entity($message->entity_guid); + + //check to make sure the current user can actually edit the message board + if ($message->canEdit()) { + //delete the comment + $message->delete(); + // delete river entry + remove_from_river_by_annotation($annotation_id); + //display message + system_message(elgg_echo("messageboard:deleted")); + //generate the url to forward to + $url = "pg/messageboard/" . $entity->username; + //forward the user back to their message board forward($url); + } + +} else { + $url = ""; + system_message(elgg_echo("messageboard:notdeleted")); +} -?>
\ No newline at end of file +forward($url); diff --git a/mod/messageboard/ajax_endpoint/load.php b/mod/messageboard/ajax_endpoint/load.php index 5bba34681..28f6766ff 100644 --- a/mod/messageboard/ajax_endpoint/load.php +++ b/mod/messageboard/ajax_endpoint/load.php @@ -1,73 +1,46 @@ <?php - /** - * Elgg message board widget ajax logic page - * - * @package ElggMessageBoard - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider Ltd <info@elgg.com> - * @copyright Curverider Ltd 2008-2010 - 2009 - * @link http://elgg.com/ - */ +/** + * Elgg message board widget ajax logic page + * + * @package ElggMessageBoard + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd <info@elgg.com> + * @copyright Curverider Ltd 2008-2010 - 2009 + * @link http://elgg.com/ + */ - // Load Elgg engine will not include plugins - require_once(dirname(dirname(dirname(dirname(__FILE__)))) . "/engine/start.php"); - - //get the required info - - //the actual message - $message = get_input('messageboard_content'); - //the number of messages to display - $numToDisplay = get_input('numToDisplay'); - //get the full page owner entity - $user = get_entity($_POST['pageOwner']); - - //stage one - if a message was posted, add it as an annotation - if($message){ - - // If posting the comment was successful, send message - if ($user->annotate('messageboard',$message,$user->access_id, $_SESSION['user']->getGUID())) { - - global $CONFIG; - - if ($user->getGUID() != $_SESSION['user']->getGUID()) - notify_user($user->getGUID(), $_SESSION['user']->getGUID(), elgg_echo('messageboard:email:subject'), - sprintf( - elgg_echo('messageboard:email:body'), - $_SESSION['user']->name, - $message, - $CONFIG->wwwroot . "pg/messageboard/" . $user->username, - $_SESSION['user']->name, - $_SESSION['user']->getURL() - ) - ); - - // add to river - add_to_river('river/object/messageboard/create','messageboard',$_SESSION['user']->guid,$user->guid); - }else{ - register_error(elgg_echo("messageboard:failure")); - } - - } else { - - echo elgg_echo('messageboard:somethingwentwrong'); - - } - - //step two - grab the latest messageboard contents, this will include the message above, unless an issue - //has occurred. - $contents = $user->getAnnotations('messageboard', $numToDisplay, 0, 'desc'); - - //step three - display the latest results - if($contents){ - - foreach($contents as $content) { - - echo elgg_view("messageboard/messageboard_content", array('annotation' => $content)); - - } - - } +// Load Elgg engine will not include plugins +require_once(dirname(dirname(dirname(dirname(__FILE__)))) . "/engine/start.php"); - -?>
\ No newline at end of file +//get the required info + +//the actual message +$message = get_input('messageboard_content'); +//the number of messages to display +$numToDisplay = get_input('numToDisplay'); +//get the full page owner entity +$user = get_entity(get_input('pageOwner')); + +//stage one - if a message was posted, add it as an annotation +if ($message) { + + if (!messageboard_add(get_loggedin_user(), $user, $message, $user->access_id)) { + echo elgg_echo("messageboard:failure"); + } + +} else { + echo elgg_echo('messageboard:somethingwentwrong'); +} + + +//step two - grab the latest messageboard contents, this will include the message above, unless an issue +//has occurred. +$contents = $user->getAnnotations('messageboard', $numToDisplay, 0, 'desc'); + +//step three - display the latest results +if ($contents) { + foreach ($contents as $content) { + echo elgg_view("messageboard/messageboard_content", array('annotation' => $content)); + } +} diff --git a/mod/messageboard/history.php b/mod/messageboard/history.php index 1f7ecd0e4..3accb9ae9 100644 --- a/mod/messageboard/history.php +++ b/mod/messageboard/history.php @@ -1,43 +1,35 @@ <?php - /** - * Elgg Message board history page - * - * @package ElggMessageBoard - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider Ltd <info@elgg.com> - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ - - - // Load Elgg engine - require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); - - // Get the user who is the owner of the message board - $current_user = $_SESSION['user']->getGUID(); //history is only available for your own wall - $history_user = get_input('user'); // this is the user how has posted on your messageboard that you want to display your history with - - - // Get any annotations for their message board - // $contents = $entity->getAnnotations('messageboard', 50, 0, 'desc'); - - $users_array = array($current_user, $history_user); - - $contents = get_annotations($users_array, "user", "", "messageboard", $value = "", $users_array, $limit = 10, $offset = 0, $order_by = "desc"); - - // Get the content to display - $area2 = elgg_view_title(elgg_echo('messageboard:history:title')); - $area2 .= elgg_view("messageboard/messageboard", array('annotation' => $contents)); - - //$area1 = "<h2>Profile owner: " . $current_user . "</h2>"; - //$area1 .= "<h2>User guid: " . $history_user . "</h2>"; - - - //select the correct canvas area - $body = elgg_view_layout("two_column_left_sidebar", '', $area2); - - // Display page - page_draw(elgg_echo('messageboard:history:title'),$body); - -?>
\ No newline at end of file +/** + * Elgg Message board history page + * + * @package ElggMessageBoard + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd <info@elgg.com> + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.com/ + */ + + +// Load Elgg engine +require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); + +// Get the user who is the owner of the message board +$current_user = get_loggedin_userid(); + +// this is the user how has posted on your messageboard that you want to display your history with +$history_user = get_input('user'); + +$users_array = array($current_user, $history_user); + +$contents = get_annotations($users_array, "user", "", "messageboard", $value = "", $users_array, $limit = 10, $offset = 0, $order_by = "desc"); + +// Get the content to display +$area2 = elgg_view_title(elgg_echo('messageboard:history:title')); +$area2 .= elgg_view("messageboard/messageboard", array('annotation' => $contents)); + +//select the correct canvas area +$body = elgg_view_layout("two_column_left_sidebar", '', $area2); + +// Display page +page_draw(elgg_echo('messageboard:history:title'),$body); diff --git a/mod/messageboard/index.php b/mod/messageboard/index.php index 5c73bf168..97798e8bb 100644 --- a/mod/messageboard/index.php +++ b/mod/messageboard/index.php @@ -1,39 +1,38 @@ <?php - /** - * Elgg Message board index page - * - * @package ElggMessageBoard - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider Ltd <info@elgg.com> - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ - - - // Load Elgg engine - require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); - - // Get the user who is the owner of the message board - $entity = get_entity(page_owner()); - - // Get any annotations for their message board - $contents = $entity->getAnnotations('messageboard', 50, 0, 'desc'); - - // Get the content to display - $area2 = elgg_view_title(elgg_echo('messageboard:board')); - - // only display the add form and board to logged in users - if(isloggedin()){ - $area2 .= elgg_view("messageboard/forms/add"); - $area2 .= elgg_view("messageboard/messageboard", array('annotation' => $contents)); - } - - - //select the correct canvas area - $body = elgg_view_layout("two_column_left_sidebar", '', $area2); - - // Display page - page_draw(sprintf(elgg_echo('messageboard:user'),$entity->name),$body); - -?>
\ No newline at end of file +/** + * Elgg Message board index page + * + * @package ElggMessageBoard + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd <info@elgg.com> + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.com/ + */ + + +// Load Elgg engine +require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); + +// Get the user who is the owner of the message board +$entity = get_entity(page_owner()); + +// Get any annotations for their message board +$contents = $entity->getAnnotations('messageboard', 50, 0, 'desc'); + +// Get the content to display +$area2 = elgg_view_title(elgg_echo('messageboard:board')); + +// only display the add form and board to logged in users +if (isloggedin()) { + $area2 .= elgg_view("messageboard/forms/add"); + $area2 .= elgg_view("messageboard/messageboard", array('annotation' => $contents)); +} + + +//select the correct canvas area +$body = elgg_view_layout("two_column_left_sidebar", '', $area2); + +// Display page +page_draw(sprintf(elgg_echo('messageboard:user'),$entity->name),$body); + diff --git a/mod/messageboard/languages/en.php b/mod/messageboard/languages/en.php index ebe2cd50c..537177014 100644 --- a/mod/messageboard/languages/en.php +++ b/mod/messageboard/languages/en.php @@ -1,49 +1,49 @@ <?php - $english = array( - - /** - * Menu items and titles - */ - - 'messageboard:board' => "Message board", - 'messageboard:messageboard' => "message board", - 'messageboard:viewall' => "View all", - 'messageboard:postit' => "Post it", - 'messageboard:history:title' => "History", - 'messageboard:none' => "There is nothing on this message board yet", - 'messageboard:num_display' => "Number of messages to display", - 'messageboard:desc' => "This is a message board that you can put on your profile where other users can comment.", - - 'messageboard:user' => "%s's message board", - - 'messageboard:replyon' => 'reply on', - 'messageboard:history' => "history", - - /** - * Message board widget river - **/ - - 'messageboard:river:annotate' => "%s has had a new comment posted on their message board.", - 'messageboard:river:create' => "%s added the message board widget.", - 'messageboard:river:update' => "%s updated their message board widget.", - 'messageboard:river:added' => "%s posted on", - 'messageboard:river:messageboard' => "message board", +$english = array( - - /** - * Status messages - */ - - 'messageboard:posted' => "You successfully posted on the message board.", - 'messageboard:deleted' => "You successfully deleted the message.", - - /** - * Email messages - */ - - 'messageboard:email:subject' => 'You have a new message board comment!', - 'messageboard:email:body' => "You have a new message board comment from %s. It reads: + /** + * Menu items and titles + */ + + 'messageboard:board' => "Message board", + 'messageboard:messageboard' => "message board", + 'messageboard:viewall' => "View all", + 'messageboard:postit' => "Post", + 'messageboard:history:title' => "History", + 'messageboard:none' => "There is nothing on this message board yet", + 'messageboard:num_display' => "Number of messages to display", + 'messageboard:desc' => "This is a message board that you can put on your profile where other users can comment.", + + 'messageboard:user' => "%s's message board", + + 'messageboard:replyon' => 'reply on', + 'messageboard:history' => "history", + + /** + * Message board widget river + **/ + + 'messageboard:river:annotate' => "%s has had a new comment posted on their message board.", + 'messageboard:river:create' => "%s added the message board widget.", + 'messageboard:river:update' => "%s updated their message board widget.", + 'messageboard:river:added' => "%s posted on", + 'messageboard:river:messageboard' => "message board", + + + /** + * Status messages + */ + + 'messageboard:posted' => "You successfully posted on the message board.", + 'messageboard:deleted' => "You successfully deleted the message.", + + /** + * Email messages + */ + + 'messageboard:email:subject' => 'You have a new message board comment!', + 'messageboard:email:body' => "You have a new message board comment from %s. It reads: %s @@ -58,20 +58,18 @@ To view %s's profile, click here: %s You cannot reply to this email.", - - /** - * Error messages - */ - - 'messageboard:blank' => "Sorry; you need to actually put something in the message area before we can save it.", - 'messageboard:notfound' => "Sorry; we could not find the specified item.", - 'messageboard:notdeleted' => "Sorry; we could not delete this message.", - 'messageboard:somethingwentwrong' => "Something went wrong when trying to save your message, make sure you actually wrote a message.", - - 'messageboard:failure' => "An unexpected error occurred when adding your message. Please try again.", - - ); - - add_translation("en",$english); - -?>
\ No newline at end of file + + /** + * Error messages + */ + + 'messageboard:blank' => "Sorry; you need to actually put something in the message area before we can save it.", + 'messageboard:notfound' => "Sorry; we could not find the specified item.", + 'messageboard:notdeleted' => "Sorry; we could not delete this message.", + 'messageboard:somethingwentwrong' => "Something went wrong when trying to save your message, make sure you actually wrote a message.", + + 'messageboard:failure' => "An unexpected error occurred when adding your message. Please try again.", + +); + +add_translation("en", $english); diff --git a/mod/messageboard/readme.txt b/mod/messageboard/readme.txt deleted file mode 100644 index feffd6651..000000000 --- a/mod/messageboard/readme.txt +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Elgg message board - * - * @package ElggMessageBoard - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Dave Tosh <dave@elgg.com> - * @copyright Curverider Ltd 2008-2009 - * @link http://elgg.com/ -*/ - -This plugin provides Elgg profiles, both users and groups, with a basic message board for comments and media. - -Install: Just drop it into the mod directory and that should be it. diff --git a/mod/messageboard/start.php b/mod/messageboard/start.php index 0d9033a82..0ddb58169 100644 --- a/mod/messageboard/start.php +++ b/mod/messageboard/start.php @@ -1,71 +1,97 @@ <?php - /** - * Elgg Message board - * This plugin allows users and groups to attach a message board to their profile for other users - * to post comments and media. - * - * @todo allow users to attach media such as photos and videos as well as other resources such as bookmarked content - * - * @package ElggMessageBoard - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider Ltd <info@elgg.com> - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ - - /** - * MessageBoard 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 messageboard_init() { - - // Load system configuration - global $CONFIG; - - // Extend system CSS with our own styles, which are defined in the messageboard/css view - elgg_extend_view('css','messageboard/css'); - - // Register a page handler, so we can have nice URLs - register_page_handler('messageboard','messageboard_page_handler'); - - // add a messageboard widget - add_widget_type('messageboard',"". elgg_echo("messageboard:board") . "","" . elgg_echo("messageboard:desc") . ".", "profile"); - - - } - - /** - * Messageboard page handler - * - * @param array $page Array of page elements, forwarded by the page handling mechanism - */ - function messageboard_page_handler($page) { - - global $CONFIG; - - // The username should be the file we're getting - if (isset($page[0])) { - set_input('username',$page[0]); - } - // Include the standard messageboard index - include($CONFIG->pluginspath . "messageboard/index.php"); - - } - - - // Make sure the shouts initialisation function is called on initialisation - register_elgg_event_handler('init','system','messageboard_init'); - - // Register actions - global $CONFIG; - register_action("messageboard/add",false,$CONFIG->pluginspath . "messageboard/actions/add.php"); - register_action("messageboard/delete",false,$CONFIG->pluginspath . "messageboard/actions/delete.php"); - -?>
\ No newline at end of file +/** + * Elgg Message board + * This plugin allows users and groups to attach a message board to their profile for other users + * to post comments. + * + * @package ElggMessageBoard + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd <info@elgg.com> + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.com/ + */ + +/** + * MessageBoard initialisation + */ +function messageboard_init() { + + // Extend system CSS with our own styles, which are defined in the messageboard/css view + elgg_extend_view('css', 'messageboard/css'); + + // Register a page handler, so we can have nice URLs + register_page_handler('messageboard', 'messageboard_page_handler'); + + // add a messageboard widget - only for profile + add_widget_type('messageboard', elgg_echo("messageboard:board"), elgg_echo("messageboard:desc"), "profile"); +} + +/** + * Messageboard page handler + * + * @param array $page Array of page elements, forwarded by the page handling mechanism + */ +function messageboard_page_handler($page) { + + global $CONFIG; + + // The username should be the first array entry + if (isset($page[0])) { + set_input('username', $page[0]); + } + + // Include the standard messageboard index + include($CONFIG->pluginspath . "messageboard/index.php"); +} + +/** + * Add messageboard post + * + * @param ElggUser $poster User posting the message + * @param ElggUser $owner User who owns the message board + * @param string $message The posted message + * @param int $access_id Access level (see defines in elgglib.php) + * @return bool + */ +function messageboard_add($poster, $owner, $message, $access_id = ACCESS_PUBLIC) { + global $CONFIG; + + $result = $owner->annotate('messageboard', $message, $access_id, $poster->guid); + if (!$result) { + return FALSE; + } + + add_to_river('river/object/messageboard/create', + 'messageboard', + $poster->guid, + $owner->guid, + $access_id, + 0, + $result); + + // only send notification if not self + if ($poster->guid != $owner->guid) { + $subject = elgg_echo('messageboard:email:subject'); + $body = sprintf( + elgg_echo('messageboard:email:body'), + $poster->name, + $message, + $CONFIG->wwwroot . "pg/messageboard/" . $owner->username, + $poster->name, + $poster->getURL() + ); + + notify_user($owner->guid, $poster->guid, $subject, $body); + } + + return TRUE; +} + + +// Register initialisation callback +register_elgg_event_handler('init', 'system', 'messageboard_init'); + +// Register actions +register_action("messageboard/add", FALSE, $CONFIG->pluginspath . "messageboard/actions/add.php"); +register_action("messageboard/delete", FALSE, $CONFIG->pluginspath . "messageboard/actions/delete.php"); diff --git a/mod/messageboard/views/default/messageboard/css.php b/mod/messageboard/views/default/messageboard/css.php index 0bf150bc2..2dd25a364 100644 --- a/mod/messageboard/views/default/messageboard/css.php +++ b/mod/messageboard/views/default/messageboard/css.php @@ -89,7 +89,3 @@ p.message_item_timestamp { background-position: 0 -16px; } - - - - diff --git a/mod/messageboard/views/default/messageboard/forms/add.php b/mod/messageboard/views/default/messageboard/forms/add.php index 91337fdc9..f835e8af0 100644 --- a/mod/messageboard/views/default/messageboard/forms/add.php +++ b/mod/messageboard/views/default/messageboard/forms/add.php @@ -1,32 +1,29 @@ <?php - /** - * Elgg Message board add form - * - * @package ElggMessageBoard - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider Ltd <info@elgg.com> - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ - +/** + * Elgg Message board add form + * + * @package ElggMessageBoard + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd <info@elgg.com> + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.com/ + */ + ?> <div id="mb_input_wrapper"> -<form action="<?php echo $vars['url']; ?>action/messageboard/add" method="post" name="messageboardForm"> - - <!-- textarea for the contents --> - <textarea name="message_content" value="" class="input_textarea"></textarea><br /> - - <!-- the person posting an item on the message board --> - <input type="hidden" name="guid" value="<?php echo $_SESSION['guid']; ?>" /> - - <!-- the page owner, this will be the profile owner --> - <input type="hidden" name="pageOwner" value="<?php echo page_owner(); ?>" /> + <form action="<?php echo $vars['url']; ?>action/messageboard/add" method="post" name="messageboardForm"> + + <!-- textarea for the contents --> + <textarea name="message_content" value="" class="input_textarea"></textarea><br /> + + <!-- the page owner, this will be the profile owner --> + <input type="hidden" name="pageOwner" value="<?php echo page_owner(); ?>" /> + + <?php echo elgg_view('input/securitytoken'); ?> + + <!-- submit messages input --> + <input type="submit" id="postit" value="<?php echo elgg_echo('messageboard:postit'); ?>"> - <?php echo elgg_view('input/securitytoken'); ?> - - <!-- submit messages input --> - <input type="submit" id="postit" value="<?php echo elgg_echo('messageboard:postit'); ?>"> - -</form> + </form> </div> diff --git a/mod/messageboard/views/default/messageboard/group_messageboard.php b/mod/messageboard/views/default/messageboard/group_messageboard.php deleted file mode 100644 index 8662d45ac..000000000 --- a/mod/messageboard/views/default/messageboard/group_messageboard.php +++ /dev/null @@ -1,96 +0,0 @@ -<?php - - /** - * Elgg messageboard group profile view - * - * @package ElggMessageBoard - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider Ltd <info@elgg.com> - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ - - // get the groups passed over here - - //get the full page owner entity - $entity = $vars['entity']; - - $num_display = 10; - -?> -<script type="text/JavaScript"> -$(document).ready(function(){ - - $("#postit").click(function(){ - - //display the ajax loading gif at the start of the function call - //$('#loader').html('<img src="<?php echo $vars['url']; ?>_graphics/ajax_loader.gif" />'); - $('#loader').html('<?php echo elgg_view('ajax/loader',array('slashes' => true)); ?>'); - - - //load the results back into the message board contents and remove the loading gif - //remember that the actual div being populated is determined on views/default/messageboard/messageboard.php - $("#messageboard_wrapper").load("<?php echo $vars['url']; ?>mod/messageboard/ajax_endpoint/load.php", {messageboard_content:$("[name=message_content]").val(), pageOwner:$("[name=pageOwner]").val(), numToDisplay:<?php echo $num_display; ?>}, function(){ - $('#loader').empty(); // remove the loading gif - $('[name=message_content]').val(''); // clear the input textarea - }); //end - - }); // end of the main click function - -}); //end of the document .ready function -</script> - -<div id="mb_input_wrapper"><!-- start of mb_input_wrapper div --> - - <h2><?php echo elgg_echo("messageboard:board"); ?></h2> - -<?php - //if not a member don't display the add comment to messageboard - if(is_group_member($entity->guid, $_SESSION['guid'])){ -?> - - <!-- message textarea --> - <textarea name="message_content" id="testing" value="" class="input_textarea"></textarea> - - <!-- the person posting an item on the message board --> - <input type="hidden" name="guid" value="<?php echo $_SESSION['guid']; ?>" class="guid" /> - - <!-- the page owner, this will be the profile owner --> - <input type="hidden" name="pageOwner" value="<?php echo page_owner(); ?>" class="pageOwner" /> - - <!-- submit button --> - <input type="submit" id="postit" value="<?php echo elgg_echo('messageboard:postit'); ?>"> - - <!-- menu options --> - <div id="messageboard_widget_menu"> - <a href="<?php echo $vars['url']; ?>pg/messageboard/<?php echo get_entity(page_owner())->username; ?>"><?php echo elgg_echo("messageboard:viewall"); ?></a> - </div> - - <!-- loading graphic --> - <div id="loader" class="loading"> </div> - -<?php - } -?> - -</div><!-- end of mb_input_wrapper div --> - - - <?php - - //this for the first time the page loads, grab the latest 5 messages. - $contents = $entity->getAnnotations('messageboard', $num_display, 0, 'desc'); - - //as long as there is some content to display, display it - if (!empty($contents)) { - - echo elgg_view('messageboard/messageboard',array('annotation' => $contents)); - - } else { - - //put the required div on the page for the first message - echo "<div id=\"messageboard_wrapper\" /></div>"; - - } - - ?> diff --git a/mod/messageboard/views/default/messageboard/messageboard.php b/mod/messageboard/views/default/messageboard/messageboard.php index bb563d7fb..92c880593 100644 --- a/mod/messageboard/views/default/messageboard/messageboard.php +++ b/mod/messageboard/views/default/messageboard/messageboard.php @@ -1,37 +1,34 @@ <?php - /** - * Elgg Message board display page - * - * @package ElggMessageBoard - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider Ltd <info@elgg.com> - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ - - - // If there is any content to view, view it - if (is_array($vars['annotation']) && sizeof($vars['annotation']) > 0) { - - //start the div which will wrap all the message board contents - echo "<div id=\"messageboard_wrapper\">"; - - //loop through all annotations and display - foreach($vars['annotation'] as $content) { - - echo elgg_view("messageboard/messageboard_content", array('annotation' => $content)); - - } - - //close the wrapper div - echo "</div>"; - - } else { - - echo "<div class='contentWrapper'>" . elgg_echo("messageboard:none") . "</div>"; - - } - - -?>
\ No newline at end of file +/** + * Elgg Message board display page + * + * @package ElggMessageBoard + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd <info@elgg.com> + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.com/ + */ + + +// If there is any content to view, view it +if (is_array($vars['annotation']) && sizeof($vars['annotation']) > 0) { + + //start the div which will wrap all the message board contents + echo "<div id=\"messageboard_wrapper\">"; + + //loop through all annotations and display + foreach($vars['annotation'] as $content) { + + echo elgg_view("messageboard/messageboard_content", array('annotation' => $content)); + + } + + //close the wrapper div + echo "</div>"; + +} else { + + echo "<div class='contentWrapper'>" . elgg_echo("messageboard:none") . "</div>"; + +} diff --git a/mod/messageboard/views/default/messageboard/messageboard_content.php b/mod/messageboard/views/default/messageboard/messageboard_content.php index 86240e910..41a308892 100644 --- a/mod/messageboard/views/default/messageboard/messageboard_content.php +++ b/mod/messageboard/views/default/messageboard/messageboard_content.php @@ -1,65 +1,65 @@ <?php - /** - * Elgg Message board individual item display page - * - * @package ElggMessageBoard - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider Ltd <info@elgg.com> - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ - +/** + * Elgg Message board individual item display view + * + * @package ElggMessageBoard + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd <info@elgg.com> + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.com/ + */ + ?> <div class="messageboard"><!-- start of messageboard div --> - - <!-- display the user icon of the user that posted the message --> - <div class="message_sender"> - <?php - echo elgg_view("profile/icon",array('entity' => get_entity($vars['annotation']->owner_guid), 'size' => 'tiny')); - ?> - </div> - - <!-- display the user's name who posted and the date/time --> - <p class="message_item_timestamp"> - <?php echo get_entity($vars['annotation']->owner_guid)->name . " " . friendly_time($vars['annotation']->time_created); ?> - </p> - + + <!-- display the user icon of the user that posted the message --> + <div class="message_sender"> + <?php + echo elgg_view("profile/icon",array('entity' => get_entity($vars['annotation']->owner_guid), 'size' => 'tiny')); + ?> + </div> + + <!-- display the user's name who posted and the date/time --> + <p class="message_item_timestamp"> + <?php echo get_entity($vars['annotation']->owner_guid)->name . " " . friendly_time($vars['annotation']->time_created); ?> + </p> + <!-- output the actual comment --> <div class="message"><?php echo elgg_view("output/longtext",array("value" => parse_urls($vars['annotation']->value))); ?></div> <div class="message_buttons"> - - <?php - - // if the user looking at the comment can edit, show the delete link - if ($vars['annotation']->canEdit()) { - - - echo "<div class='delete_message'>" . elgg_view("output/confirmlink",array( - 'href' => $vars['url'] . "action/messageboard/delete?annotation_id=" . $vars['annotation']->id, - 'text' => elgg_echo('delete'), - 'confirm' => elgg_echo('deleteconfirm'), - )) . "</div>"; - - } //end of can edit if statement - ?> -<?php - // If the message being looked at is owned by the current user, don't show the reply - // Also do not show if the user is not logged in - if (isloggedin() && $vars['annotation']->owner_guid != get_loggedin_userid()){ - - //get the message owner - $msg_owner = get_entity($vars['annotation']->owner_guid); - //create the url to their messageboard - $user_mb = "pg/messageboard/" . $msg_owner->username; - - echo "<a href=\"" . $vars['url'] . $user_mb . "\">".elgg_echo('messageboard:replyon')." " . $msg_owner->name . "'s " . elgg_echo('messageboard:messageboard') . "</a> | "; - - echo "<a href=\"" . $vars['url'] . "mod/messageboard/history.php?user=" . $msg_owner->guid ."\">" . elgg_echo('messageboard:history') . "</a>"; - } -?> - - </div> + + <?php + + // if the user looking at the comment can edit, show the delete link + if ($vars['annotation']->canEdit()) { + + + echo "<div class='delete_message'>" . elgg_view("output/confirmlink",array( + 'href' => $vars['url'] . "action/messageboard/delete?annotation_id=" . $vars['annotation']->id, + 'text' => elgg_echo('delete'), + 'confirm' => elgg_echo('deleteconfirm'), + )) . "</div>"; + + } //end of can edit if statement + ?> + <?php + // If the message being looked at is owned by the current user, don't show the reply + // Also do not show if the user is not logged in + if (isloggedin() && $vars['annotation']->owner_guid != get_loggedin_userid()) { + + //get the message owner + $msg_owner = get_entity($vars['annotation']->owner_guid); + //create the url to their messageboard + $user_mb = "pg/messageboard/" . $msg_owner->username; + + echo "<a href=\"" . $vars['url'] . $user_mb . "\">".elgg_echo('messageboard:replyon')." " . $msg_owner->name . "'s " . elgg_echo('messageboard:messageboard') . "</a> | "; + + echo "<a href=\"" . $vars['url'] . "mod/messageboard/history.php?user=" . $msg_owner->guid ."\">" . elgg_echo('messageboard:history') . "</a>"; + } + ?> + + </div> <div class="clearfloat"></div> </div><!-- end of messageboard div --> diff --git a/mod/messageboard/views/default/river/object/messageboard/create.php b/mod/messageboard/views/default/river/object/messageboard/create.php index 9f65122d0..88bbd56aa 100644 --- a/mod/messageboard/views/default/river/object/messageboard/create.php +++ b/mod/messageboard/views/default/river/object/messageboard/create.php @@ -1,12 +1,10 @@ <?php - $performed_by = get_entity($vars['item']->subject_guid); // $statement->getSubject(); - $performed_on = get_entity($vars['item']->object_guid); +$performed_by = get_entity($vars['item']->subject_guid); +$performed_on = get_entity($vars['item']->object_guid); - $url = "<a href=\"{$performed_by->getURL()}\">{$performed_by->name}</a>"; - $string = sprintf(elgg_echo("messageboard:river:added"),$url) . " <a href=\"{$performed_on->getURL()}\">" . $performed_on->name . "'s</a> " . elgg_echo("messageboard:river:messageboard"); - - - echo $string; +$url = "<a href=\"{$performed_by->getURL()}\">{$performed_by->name}</a>"; +$string = sprintf(elgg_echo("messageboard:river:added"),$url) . " <a href=\"{$performed_on->getURL()}\">" . $performed_on->name . "'s</a> " . elgg_echo("messageboard:river:messageboard"); -?>
\ No newline at end of file + +echo $string; diff --git a/mod/messageboard/views/default/widgets/messageboard/edit.php b/mod/messageboard/views/default/widgets/messageboard/edit.php index cf0741a36..4e3bb19bf 100644 --- a/mod/messageboard/views/default/widgets/messageboard/edit.php +++ b/mod/messageboard/views/default/widgets/messageboard/edit.php @@ -1,28 +1,36 @@ <?php - /** - * Elgg message board edit page - * - * @package ElggMessageBoard - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider Ltd <info@elgg.com> - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ +/** + * Elgg message board widget edit view + * + * @package ElggMessageBoard + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd <info@elgg.com> + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.com/ + */ + +// default value +$num_display = 5; +if (isset($vars['entity']->num_display)) { + $num_display = $vars['entity']->num_display; +} + ?> <p> - <?php echo elgg_echo("messageboard:num_display"); ?>: - <select name="params[num_display]"> - <option value="1" <?php if($vars['entity']->num_display == 1) echo "SELECTED"; ?>>1</option> - <option value="2" <?php if($vars['entity']->num_display == 2) echo "SELECTED"; ?>>2</option> - <option value="3" <?php if($vars['entity']->num_display == 3) echo "SELECTED"; ?>>3</option> - <option value="4" <?php if($vars['entity']->num_display == 4) echo "SELECTED"; ?>>4</option> - <option value="5" <?php if($vars['entity']->num_display == 5) echo "SELECTED"; ?>>5</option> - <option value="6" <?php if($vars['entity']->num_display == 6) echo "SELECTED"; ?>>6</option> - <option value="7" <?php if($vars['entity']->num_display == 7) echo "SELECTED"; ?>>7</option> - <option value="8" <?php if($vars['entity']->num_display == 8) echo "SELECTED"; ?>>8</option> - <option value="9" <?php if($vars['entity']->num_display == 9) echo "SELECTED"; ?>>9</option> - <option value="10" <?php if($vars['entity']->num_display == 10) echo "SELECTED"; ?>>10</option> - </select> + <?php echo elgg_echo("messageboard:num_display"); ?>: + <select name="params[num_display]"> +<?php +$options = array(1,2,3,4,5,6,7,8,9,10); +foreach ($options as $option) { + $selected = ''; + if ($num_display == $option) { + $selected = "selected='selected'"; + } + + echo " <option value='{$option}' $selected >{$option}</option>\n"; +} +?> + </select> </p>
\ No newline at end of file diff --git a/mod/messageboard/views/default/widgets/messageboard/view.php b/mod/messageboard/views/default/widgets/messageboard/view.php index 9a0d8e251..c05d6b618 100644 --- a/mod/messageboard/views/default/widgets/messageboard/view.php +++ b/mod/messageboard/views/default/widgets/messageboard/view.php @@ -1,93 +1,84 @@ <?php - /** - * Elgg messageboard plugin view page - * - * @todo let users choose how many messages they want displayed - * - * @package ElggMessageBoard - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider Ltd <info@elgg.com> - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - */ - - // a couple of required variables - - //get the full page owner entity - $entity = get_entity(page_owner()); - - //the number of message to display - $num_display = $vars['entity']->num_display; - - //if no num set, set to one - if(!$num_display) - $num_display = 5; - -//Just the loggedin user can send messages -if(isloggedin()){ +/** + * Elgg messageboard widget view + * + * + * @package ElggMessageBoard + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd <info@elgg.com> + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.com/ + */ + +//get the full page owner entity +$user = get_entity(page_owner()); + +//the number of message to display +$num_display = 5; +if (isset($vars['entity']->num_display)) { + $num_display = $vars['entity']->num_display; +} + +//Just the loggedin user can post messages +if (isloggedin()) { ?> - <script type="text/JavaScript"> +<script type="text/javascript"> $(document).ready(function(){ - - $("#postit").click(function(){ - - //display the ajax loading gif at the start of the function call - //$('#loader').html('<img src="<?php echo $vars['url']; ?>_graphics/ajax_loader.gif" />'); - $('#loader').html('<?php echo elgg_view('ajax/loader',array('slashes' => true)); ?>'); - - //load the results back into the message board contents and remove the loading gif - //remember that the actual div being populated is determined on views/default/messageboard/messageboard.php - $("#messageboard_wrapper").load("<?php echo $vars['url']; ?>mod/messageboard/ajax_endpoint/load.php", {messageboard_content:$("[name=message_content]").val(), pageOwner:$("[name=pageOwner]").val(), numToDisplay:<?php echo $num_display; ?>}, function(){ - $('#loader').empty(); // remove the loading gif - $('[name=message_content]').val(''); // clear the input textarea - }); //end - - }); // end of the main click function - - }); //end of the document .ready function - </script> - - <div id="mb_input_wrapper"><!-- start of mb_input_wrapper div --> - - <!-- message textarea --> - <textarea name="message_content" id="testing" value="" class="input_textarea"></textarea> - - <!-- the person posting an item on the message board --> - <input type="hidden" name="guid" value="<?php echo $_SESSION['guid']; ?>" class="guid" /> - - <!-- the page owner, this will be the profile owner --> - <input type="hidden" name="pageOwner" value="<?php echo page_owner(); ?>" class="pageOwner" /> - - <!-- submit button --> - <input type="submit" id="postit" value="<?php echo elgg_echo('messageboard:postit'); ?>"> - - <!-- menu options --> - <div id="messageboard_widget_menu"> - <a href="<?php echo $vars['url']; ?>pg/messageboard/<?php echo get_entity(page_owner())->username; ?>"><?php echo elgg_echo("messageboard:viewall"); ?></a> - </div> - - <!-- loading graphic --> - <div id="loader" class="loading"> </div> - - </div><!-- end of mb_input_wrapper div --> -<?php + $("#postit").click(function(){ + + //display the ajax loading gif at the start of the function call + //$('#loader').html('<img src="<?php echo $vars['url']; ?>_graphics/ajax_loader.gif" />'); + $('#loader').html('<?php echo elgg_view('ajax/loader',array('slashes' => TRUE)); ?>'); + + //load the results back into the message board contents and remove the loading gif + //remember that the actual div being populated is determined on views/default/messageboard/messageboard.php + $("#messageboard_wrapper").load("<?php echo $vars['url']; ?>mod/messageboard/ajax_endpoint/load.php", {messageboard_content:$("[name=message_content]").val(), pageOwner:$("[name=pageOwner]").val(), numToDisplay:<?php echo $num_display; ?>}, function(){ + $('#loader').empty(); // remove the loading gif + $('[name=message_content]').val(''); // clear the input textarea + }); //end + + }); // end of the main click function + + }); //end of the document .ready function +</script> + +<div id="mb_input_wrapper"><!-- start of mb_input_wrapper div --> + + <!-- message textarea --> + <textarea name="message_content" class="input_textarea"></textarea> + + <!-- the page owner, this will be the profile owner --> + <input type="hidden" name="pageOwner" value="<?php echo page_owner(); ?>" class="pageOwner" /> + + <!-- submit button --> + <input type="submit" id="postit" value="<?php echo elgg_echo('messageboard:postit'); ?>"> + + <!-- menu options --> + <div id="messageboard_widget_menu"> + <a href="<?php echo $vars['url']; ?>pg/messageboard/<?php echo $user->username; ?>"><?php echo elgg_echo("messageboard:viewall"); ?></a> + </div> + + <!-- loading graphic --> + <div id="loader" class="loading"> </div> + +</div><!-- end of mb_input_wrapper div --> + + <?php } // if(isloggedin()) - - //this for the first time the page loads, grab the latest 5 messages. - $contents = $entity->getAnnotations('messageboard', $num_display, 0, 'desc'); - - //as long as there is some content to display, display it - if (!empty($contents)) { - - echo elgg_view('messageboard/messageboard',array('annotation' => $contents)); - - } else { - - //put the required div on the page for the first message - echo "<div id=\"messageboard_wrapper\"></div>"; - - } - -?>
\ No newline at end of file + +//this for the first time the page loads, grab the latest messages. +$contents = $user->getAnnotations('messageboard', $num_display, 0, 'desc'); + +//as long as there is some content to display, display it +if (!empty($contents)) { + + echo elgg_view('messageboard/messageboard',array('annotation' => $contents)); + +} else { + + //put the required div on the page for the first message + echo "<div id=\"messageboard_wrapper\"></div>"; + +} |