diff options
author | dave <dave@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-03-29 13:12:24 +0000 |
---|---|---|
committer | dave <dave@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-03-29 13:12:24 +0000 |
commit | a7add808c43b0758a90791359bed0c075b0c35e6 (patch) | |
tree | d9a752f5caa5503fc484a06d3e973173be1b1b1a /mod | |
parent | b77d118819ec7b31a399326c166a3681fb20d9da (diff) | |
download | elgg-a7add808c43b0758a90791359bed0c075b0c35e6.tar.gz elgg-a7add808c43b0758a90791359bed0c075b0c35e6.tar.bz2 |
simple comment wall added to profiles
git-svn-id: http://code.elgg.org/elgg/trunk@5537 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod')
-rw-r--r-- | mod/profile/actions/addcomment.php | 48 | ||||
-rw-r--r-- | mod/profile/actions/deletecomment.php | 29 | ||||
-rw-r--r-- | mod/profile/languages/en.php | 39 | ||||
-rw-r--r-- | mod/profile/profile_lib.php | 5 | ||||
-rw-r--r-- | mod/profile/start.php | 4 | ||||
-rw-r--r-- | mod/profile/views/default/profile/commentwall/commentwall.php | 22 | ||||
-rw-r--r-- | mod/profile/views/default/profile/commentwall/commentwall_content.php | 32 | ||||
-rw-r--r-- | mod/profile/views/default/profile/commentwall/commentwalladd.php | 18 | ||||
-rw-r--r-- | mod/profile/views/default/profile/profile_contents/commentwall.php | 13 | ||||
-rwxr-xr-x | mod/profile/views/default/profile/profile_navigation.php | 7 |
10 files changed, 208 insertions, 9 deletions
diff --git a/mod/profile/actions/addcomment.php b/mod/profile/actions/addcomment.php new file mode 100644 index 000000000..b5c5e0708 --- /dev/null +++ b/mod/profile/actions/addcomment.php @@ -0,0 +1,48 @@ +<?php
+/**
+ * Elgg profile commentwall: add message action
+ */
+
+// 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 commentwall owner 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('commentwall',$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('profile:comment:subject'),
+ sprintf(
+ elgg_echo('profile:comment:body'),
+ $_SESSION['user']->name,
+ $message_content,
+ $CONFIG->wwwroot . "pg/profile/" . $user->username,
+ $_SESSION['user']->name,
+ $_SESSION['user']->getURL()
+ )
+ );
+
+ system_message(elgg_echo("profile:commentwall:posted"));
+ // add to river
+ add_to_river('river/object/profile/commentwall/create','commentwall',$_SESSION['user']->guid,$user->guid);
+
+ } else {
+ register_error(elgg_echo("profile:commentwall:failure"));
+ }
+
+} else {
+ register_error(elgg_echo("profile:commentwall:blank"));
+}
+
+// Forward back to the messageboard
+forward($_SERVER['HTTP_REFERER']);
\ No newline at end of file diff --git a/mod/profile/actions/deletecomment.php b/mod/profile/actions/deletecomment.php new file mode 100644 index 000000000..48399af4a --- /dev/null +++ b/mod/profile/actions/deletecomment.php @@ -0,0 +1,29 @@ +<?php
+/**
+ * Elgg profile commentwall: delete message action
+ */
+
+// 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 commentwall 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 commentwall
+ if ($message->canEdit()) {
+ //delete the comment
+ $message->delete();
+ //display message
+ system_message(elgg_echo("profile:commentwall:deleted"));
+ forward($_SERVER['HTTP_REFERER']);
+ }
+
+} else {
+ system_message(elgg_echo("profile:commentwall:notdeleted"));
+}
+
+forward($_SERVER['HTTP_REFERER']);
\ No newline at end of file diff --git a/mod/profile/languages/en.php b/mod/profile/languages/en.php index ee1c20115..bb4230070 100644 --- a/mod/profile/languages/en.php +++ b/mod/profile/languages/en.php @@ -1,12 +1,6 @@ <?php /** * Elgg profile plugin language pack - * - * @package ElggProfile - * @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/ */ $english = array( @@ -78,6 +72,39 @@ $english = array( 'profile:saved' => "Your profile was successfully saved.", 'profile:icon:uploaded' => "Your profile picture was successfully uploaded.", + +/** + * Profile comment wall + **/ + 'profile:commentwall:add' => "Add to the wall", + 'profile:commentwall:posted' => "You successfully posted on the comment wall.", + 'profile:commentwall:deleted' => "You successfully deleted the message.", + 'profile:commentwall:blank' => "Sorry; you need to actually put something in the message area before we can save it.", + 'profile:commentwall:notfound' => "Sorry; we could not find the specified item.", + 'profile:commentwall:notdeleted' => "Sorry; we could not delete this message.", + 'profile:commentwall:somethingwentwrong' => "Something went wrong when trying to save your message, make sure you actually wrote a message.", + 'profile:commentwall:failure' => "An unexpected error occurred when adding your message. Please try again.", + +/** + * Email messages commentwall + */ + + 'profile:comment:subject' => 'You have a new message board comment!', + 'profile:comment: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.", /** * Profile error messages diff --git a/mod/profile/profile_lib.php b/mod/profile/profile_lib.php index 7e092c003..993985279 100644 --- a/mod/profile/profile_lib.php +++ b/mod/profile/profile_lib.php @@ -29,7 +29,10 @@ function profile_get_user_profile_html($user, $section = 'activity') { case 'twitter': $body .= elgg_view('profile/profile_contents/twitter', $view_options); break; - + case 'commentwall': + $comments = $user->getAnnotations('commentwall', 200, 0, 'desc'); + $body .= elgg_view('profile/profile_contents/commentwall', array("entity" => $user, "comments" => $comments)); + break; case 'details': $body .= elgg_view('profile/profile_contents/details', $view_options); break; diff --git a/mod/profile/start.php b/mod/profile/start.php index e66554d08..138de1e35 100644 --- a/mod/profile/start.php +++ b/mod/profile/start.php @@ -294,4 +294,6 @@ register_action("profile/iconupload",false,$CONFIG->pluginspath . "profile/actio register_action("profile/cropicon",false,$CONFIG->pluginspath . "profile/actions/cropicon.php"); register_action("profile/editdefault",false,$CONFIG->pluginspath . "profile/actions/editdefault.php", true); register_action("profile/editdefault/delete",false,$CONFIG->pluginspath . "profile/actions/deletedefaultprofileitem.php", true); -register_action("profile/editdefault/reset",false,$CONFIG->pluginspath . "profile/actions/resetdefaultprofile.php", true);
\ No newline at end of file +register_action("profile/editdefault/reset",false,$CONFIG->pluginspath . "profile/actions/resetdefaultprofile.php", true); +register_action("profile/addcomment",false,$CONFIG->pluginspath . "profile/actions/addcomment.php"); +register_action("profile/deletecomment",false,$CONFIG->pluginspath . "profile/actions/deletecomment.php");
\ No newline at end of file diff --git a/mod/profile/views/default/profile/commentwall/commentwall.php b/mod/profile/views/default/profile/commentwall/commentwall.php new file mode 100644 index 000000000..9c1ff3fdb --- /dev/null +++ b/mod/profile/views/default/profile/commentwall/commentwall.php @@ -0,0 +1,22 @@ +<?php
+/**
+ * Elgg Commentwall display page
+ */
+
+// 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("profile/commentwall/commentwall_content", array('annotation' => $content));
+ }
+
+ //close the wrapper div
+ echo "</div>";
+
+} else {
+ echo "<div class='ContentWrapper'>" . elgg_echo("profile:commentwall:none") . "</div>";
+}
\ No newline at end of file diff --git a/mod/profile/views/default/profile/commentwall/commentwall_content.php b/mod/profile/views/default/profile/commentwall/commentwall_content.php new file mode 100644 index 000000000..d2a313d93 --- /dev/null +++ b/mod/profile/views/default/profile/commentwall/commentwall_content.php @@ -0,0 +1,32 @@ +<?php
+/**
+* Elgg Message board individual item display page
+ */
+?>
+<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/profile/deletecomment?annotation_id=" . $vars['annotation']->id,
+ 'text' => elgg_echo('delete'),
+ 'confirm' => elgg_echo('deleteconfirm'),
+ )) . "</div>";
+ } //end of can edit if statement
+ ?>
+ </div>
+<div class="clearfloat"></div>
+</div><!-- end of messageboard div -->
diff --git a/mod/profile/views/default/profile/commentwall/commentwalladd.php b/mod/profile/views/default/profile/commentwall/commentwalladd.php new file mode 100644 index 000000000..0d696b955 --- /dev/null +++ b/mod/profile/views/default/profile/commentwall/commentwalladd.php @@ -0,0 +1,18 @@ +<?php
+/**
+ * Elgg profile comment wall add
+ */
+?>
+<div id="mb_input_wrapper">
+<form action="<?php echo $vars['url']; ?>action/profile/addcomment" method="post" name="messageboardForm">
+ <!-- textarea for the contents -->
+ <textarea name="message_content" value="" class="commentwall" style="width:500px;height:20px;"></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('profile:commentwall:add'); ?>">
+</form>
+</div>
diff --git a/mod/profile/views/default/profile/profile_contents/commentwall.php b/mod/profile/views/default/profile/profile_contents/commentwall.php new file mode 100644 index 000000000..c13c16331 --- /dev/null +++ b/mod/profile/views/default/profile/profile_contents/commentwall.php @@ -0,0 +1,13 @@ +<?php
+/**
+ * Elgg profile comment wall
+ */
+?>
+<div id="profile_content">
+<?php
+if(isloggedin()){
+ echo elgg_view("profile/commentwall/commentwalladd");
+}
+echo elgg_view("profile/commentwall/commentwall", array('annotation' => $vars['comments']));
+?>
+</div>
\ No newline at end of file diff --git a/mod/profile/views/default/profile/profile_navigation.php b/mod/profile/views/default/profile/profile_navigation.php index c6ba3054a..1c2c782c7 100755 --- a/mod/profile/views/default/profile/profile_navigation.php +++ b/mod/profile/views/default/profile/profile_navigation.php @@ -26,6 +26,10 @@ switch($section){ case 'twitter': $twitter = 'class="selected"'; break; + + case 'commentwall': + $commentwall = 'class="selected"'; + break; case 'activity': default: @@ -39,6 +43,7 @@ switch($section){ <li <?php echo $activity; ?>><a href="<?php echo $url; ?>">Activity</a></li> <li <?php echo $details; ?>><a href="<?php echo $url . 'details'; ?>">Details</a></li> <li <?php echo $friends; ?>><a href="<?php echo $url . 'friends'; ?>">Friends</a></li> + <li <?php echo $commentwall; ?>><a href="<?php echo $url . 'commentwall'; ?>">Comment Wall</a></li> <?php //check to see if the twitter username is set if($vars['entity']->twitter){ @@ -50,4 +55,4 @@ switch($section){ echo elgg_view('profilenav/extend', $profile); ?> </ul> -</div> +</div>
\ No newline at end of file |