aboutsummaryrefslogtreecommitdiff
path: root/mod
diff options
context:
space:
mode:
authordave <dave@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-03-29 13:12:24 +0000
committerdave <dave@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-03-29 13:12:24 +0000
commita7add808c43b0758a90791359bed0c075b0c35e6 (patch)
treed9a752f5caa5503fc484a06d3e973173be1b1b1a /mod
parentb77d118819ec7b31a399326c166a3681fb20d9da (diff)
downloadelgg-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.php48
-rw-r--r--mod/profile/actions/deletecomment.php29
-rw-r--r--mod/profile/languages/en.php39
-rw-r--r--mod/profile/profile_lib.php5
-rw-r--r--mod/profile/start.php4
-rw-r--r--mod/profile/views/default/profile/commentwall/commentwall.php22
-rw-r--r--mod/profile/views/default/profile/commentwall/commentwall_content.php32
-rw-r--r--mod/profile/views/default/profile/commentwall/commentwalladd.php18
-rw-r--r--mod/profile/views/default/profile/profile_contents/commentwall.php13
-rwxr-xr-xmod/profile/views/default/profile/profile_navigation.php7
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