aboutsummaryrefslogtreecommitdiff
path: root/mod/messageboard
diff options
context:
space:
mode:
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-03-03 17:53:05 +0000
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-03-03 17:53:05 +0000
commit4766f36a4d74924f21ff329c4318ce4e069ffa04 (patch)
tree969b84632f2a8b0db79788a8a6db8e41d63e5cb4 /mod/messageboard
parent57a217fd6b708844407486046a1faa23b46cac08 (diff)
downloadelgg-4766f36a4d74924f21ff329c4318ce4e069ffa04.tar.gz
elgg-4766f36a4d74924f21ff329c4318ce4e069ffa04.tar.bz2
Pulled in the interface changes.
git-svn-id: http://code.elgg.org/elgg/trunk@5257 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod/messageboard')
-rw-r--r--mod/messageboard/actions/add.php68
-rw-r--r--mod/messageboard/actions/delete.php44
-rw-r--r--mod/messageboard/ajax_endpoint/load.php73
-rw-r--r--mod/messageboard/history.php43
-rw-r--r--mod/messageboard/index.php39
-rw-r--r--mod/messageboard/languages/en.php77
-rw-r--r--mod/messageboard/manifest.xml10
-rw-r--r--mod/messageboard/readme.txt13
-rw-r--r--mod/messageboard/start.php71
-rw-r--r--mod/messageboard/views/default/messageboard/css.php95
-rw-r--r--mod/messageboard/views/default/messageboard/forms/add.php32
-rw-r--r--mod/messageboard/views/default/messageboard/group_messageboard.php96
-rw-r--r--mod/messageboard/views/default/messageboard/messageboard.php37
-rw-r--r--mod/messageboard/views/default/messageboard/messageboard_content.php65
-rw-r--r--mod/messageboard/views/default/river/object/messageboard/create.php12
-rw-r--r--mod/messageboard/views/default/widgets/messageboard/edit.php28
-rw-r--r--mod/messageboard/views/default/widgets/messageboard/view.php93
17 files changed, 896 insertions, 0 deletions
diff --git a/mod/messageboard/actions/add.php b/mod/messageboard/actions/add.php
new file mode 100644
index 000000000..98ffe4b47
--- /dev/null
+++ b/mod/messageboard/actions/add.php
@@ -0,0 +1,68 @@
+<?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/
+ */
+
+ // 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);
+
+
+ } 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);
+
+?> \ No newline at end of file
diff --git a/mod/messageboard/actions/delete.php b/mod/messageboard/actions/delete.php
new file mode 100644
index 000000000..9c17f1fcd
--- /dev/null
+++ b/mod/messageboard/actions/delete.php
@@ -0,0 +1,44 @@
+<?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/
+ */
+
+ // 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"));
+ }
+
+ forward($url);
+
+?> \ No newline at end of file
diff --git a/mod/messageboard/ajax_endpoint/load.php b/mod/messageboard/ajax_endpoint/load.php
new file mode 100644
index 000000000..5bba34681
--- /dev/null
+++ b/mod/messageboard/ajax_endpoint/load.php
@@ -0,0 +1,73 @@
+<?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/
+ */
+
+ // 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));
+
+ }
+
+ }
+
+
+?> \ No newline at end of file
diff --git a/mod/messageboard/history.php b/mod/messageboard/history.php
new file mode 100644
index 000000000..1f7ecd0e4
--- /dev/null
+++ b/mod/messageboard/history.php
@@ -0,0 +1,43 @@
+<?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
diff --git a/mod/messageboard/index.php b/mod/messageboard/index.php
new file mode 100644
index 000000000..5c73bf168
--- /dev/null
+++ b/mod/messageboard/index.php
@@ -0,0 +1,39 @@
+<?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
diff --git a/mod/messageboard/languages/en.php b/mod/messageboard/languages/en.php
new file mode 100644
index 000000000..ebe2cd50c
--- /dev/null
+++ b/mod/messageboard/languages/en.php
@@ -0,0 +1,77 @@
+<?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",
+
+
+ /**
+ * 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
+
+
+To view your message board comments, click here:
+
+ %s
+
+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
diff --git a/mod/messageboard/manifest.xml b/mod/messageboard/manifest.xml
new file mode 100644
index 000000000..4c89bdc40
--- /dev/null
+++ b/mod/messageboard/manifest.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<plugin_manifest>
+ <field key="author" value="Curverider" />
+ <field key="version" value="1.7" />
+ <field key="description" value="This plugin allows users to put a message board on their profile for other users to post comments." />
+ <field key="website" value="http://www.elgg.org/" />
+ <field key="copyright" value="(C) Curverider 2008-2010" />
+ <field key="licence" value="GNU Public License version 2" />
+ <field key="elgg_version" value="2010030101" />
+</plugin_manifest>
diff --git a/mod/messageboard/readme.txt b/mod/messageboard/readme.txt
new file mode 100644
index 000000000..feffd6651
--- /dev/null
+++ b/mod/messageboard/readme.txt
@@ -0,0 +1,13 @@
+/**
+ * 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
new file mode 100644
index 000000000..0d9033a82
--- /dev/null
+++ b/mod/messageboard/start.php
@@ -0,0 +1,71 @@
+<?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
diff --git a/mod/messageboard/views/default/messageboard/css.php b/mod/messageboard/views/default/messageboard/css.php
new file mode 100644
index 000000000..0bf150bc2
--- /dev/null
+++ b/mod/messageboard/views/default/messageboard/css.php
@@ -0,0 +1,95 @@
+<?php
+
+ /**
+ * Elgg Messageboard CSS extender
+ *
+ * @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/
+ */
+
+?>
+
+/* input msg area */
+#mb_input_wrapper {
+ margin:0 10px 5px 10px;
+ padding:5px;
+ background: white;
+ -webkit-border-radius: 8px;
+ -moz-border-radius: 8px;
+}
+
+#mb_input_wrapper .input_textarea {
+ width:675px;
+}
+.collapsable_box_content #mb_input_wrapper .input_textarea {
+ width:259px;
+}
+.message_item_timestamp {
+ font-size:90%;
+ padding:10px 0 0 0;
+}
+p.message_item_timestamp {
+ margin-bottom: 10px;
+}
+/* wraps each message */
+.messageboard {
+ margin:0 10px 5px 10px;
+ padding:0;
+ background: white;
+ -webkit-border-radius: 8px;
+ -moz-border-radius: 8px;
+}
+.messageboard .message_sender {
+ float:left;
+ margin: 5px 10px 0 5px;
+}
+/* IE6 */
+* html .messageboard { width: 280px; }
+* html #two_column_left_sidebar_maincontent .messageboard { width: 667px; }
+* html .messageboard .message_sender { margin: 5px 10px 0 2px; }
+* html #mb_input_wrapper .input_textarea { width:645px; }
+/* IE7 */
+*:first-child+html .messageboard { width: 280px; }
+*:first-child+html #two_column_left_sidebar_maincontent .messageboard { width: 698px; }
+*:first-child+html .messageboard .message_sender { margin: 5px 10px 0 2px; }
+
+.messageboard .message p {
+ line-height: 1.2em;
+ background:#dedede;
+ margin:0 6px 4px 6px;
+ padding:4px;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ overflow-y:hidden;
+ overflow-x:auto;
+ color:#333333;
+}
+
+.message_buttons {
+ padding:0 0 3px 4px;
+ margin:0;
+ font-size: 90%;
+ color:#666666;
+}
+
+.messageboard .delete_message a {
+ display:block;
+ float:right;
+ cursor: pointer;
+ width:14px;
+ height:14px;
+ margin:0 3px 3px 0;
+ background: url("<?php echo $vars['url']; ?>_graphics/icon_customise_remove.png") no-repeat 0 0;
+ text-indent: -9000px;
+}
+.messageboard .delete_message a:hover {
+ background-position: 0 -16px;
+}
+
+
+
+
+
diff --git a/mod/messageboard/views/default/messageboard/forms/add.php b/mod/messageboard/views/default/messageboard/forms/add.php
new file mode 100644
index 000000000..91337fdc9
--- /dev/null
+++ b/mod/messageboard/views/default/messageboard/forms/add.php
@@ -0,0 +1,32 @@
+<?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/
+ */
+
+?>
+<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(); ?>" />
+
+ <?php echo elgg_view('input/securitytoken'); ?>
+
+ <!-- submit messages input -->
+ <input type="submit" id="postit" value="<?php echo elgg_echo('messageboard:postit'); ?>">
+
+</form>
+</div>
diff --git a/mod/messageboard/views/default/messageboard/group_messageboard.php b/mod/messageboard/views/default/messageboard/group_messageboard.php
new file mode 100644
index 000000000..8662d45ac
--- /dev/null
+++ b/mod/messageboard/views/default/messageboard/group_messageboard.php
@@ -0,0 +1,96 @@
+<?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
new file mode 100644
index 000000000..bb563d7fb
--- /dev/null
+++ b/mod/messageboard/views/default/messageboard/messageboard.php
@@ -0,0 +1,37 @@
+<?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
diff --git a/mod/messageboard/views/default/messageboard/messageboard_content.php b/mod/messageboard/views/default/messageboard/messageboard_content.php
new file mode 100644
index 000000000..86240e910
--- /dev/null
+++ b/mod/messageboard/views/default/messageboard/messageboard_content.php
@@ -0,0 +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/
+ */
+
+?>
+
+<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>
+
+ <!-- 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>
+ <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
new file mode 100644
index 000000000..9f65122d0
--- /dev/null
+++ b/mod/messageboard/views/default/river/object/messageboard/create.php
@@ -0,0 +1,12 @@
+<?php
+
+ $performed_by = get_entity($vars['item']->subject_guid); // $statement->getSubject();
+ $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;
+
+?> \ No newline at end of file
diff --git a/mod/messageboard/views/default/widgets/messageboard/edit.php b/mod/messageboard/views/default/widgets/messageboard/edit.php
new file mode 100644
index 000000000..cf0741a36
--- /dev/null
+++ b/mod/messageboard/views/default/widgets/messageboard/edit.php
@@ -0,0 +1,28 @@
+<?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/
+ */
+
+?>
+<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>
+</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
new file mode 100644
index 000000000..9a0d8e251
--- /dev/null
+++ b/mod/messageboard/views/default/widgets/messageboard/view.php
@@ -0,0 +1,93 @@
+<?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()){
+?>
+ <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
+} // 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