aboutsummaryrefslogtreecommitdiff
path: root/mod/groups/views
diff options
context:
space:
mode:
authordave <dave@36083f99-b078-4883-b0ff-0f9b5a30f544>2008-08-07 15:02:05 +0000
committerdave <dave@36083f99-b078-4883-b0ff-0f9b5a30f544>2008-08-07 15:02:05 +0000
commit69a750eb7b2a3c7a09369a3714bfaa9ef028f086 (patch)
tree97f02895ed0fc737e82b4806cc793e2fb31dcf15 /mod/groups/views
parentd7a0d5be049d9f5870bc09022929c628cfabaa23 (diff)
downloadelgg-69a750eb7b2a3c7a09369a3714bfaa9ef028f086.tar.gz
elgg-69a750eb7b2a3c7a09369a3714bfaa9ef028f086.tar.bz2
groups now have forums
git-svn-id: https://code.elgg.org/elgg/trunk@1761 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod/groups/views')
-rw-r--r--mod/groups/views/default/forms/forums/addpost.php36
-rw-r--r--mod/groups/views/default/forms/forums/addtopic.php98
-rw-r--r--mod/groups/views/default/forms/forums/edittopic.php107
-rw-r--r--mod/groups/views/default/forum/topicposts.php65
-rw-r--r--mod/groups/views/default/forum/topics.php128
-rw-r--r--mod/groups/views/default/forum/viewposts.php44
-rw-r--r--mod/groups/views/default/groups/forum_latest.php14
-rw-r--r--mod/groups/views/default/groups/profileitems.php1
8 files changed, 493 insertions, 0 deletions
diff --git a/mod/groups/views/default/forms/forums/addpost.php b/mod/groups/views/default/forms/forums/addpost.php
new file mode 100644
index 000000000..be34d04fd
--- /dev/null
+++ b/mod/groups/views/default/forms/forums/addpost.php
@@ -0,0 +1,36 @@
+<?php
+
+ /**
+ * Elgg group forum post edit/add page
+ *
+ * @package ElggGroups
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+ * @author Curverider <info@elgg.com>
+ * @copyright Curverider Ltd 2008
+ * @link http://elgg.com/
+ *
+ * @uses $vars['entity'] Optionally, the post to edit
+ */
+
+?>
+ <form action="<?php echo $vars['url']; ?>action/groups/addpost" method="post">
+ <p>
+ <label><?php echo elgg_echo("groups:reply"); ?><br />
+ <?php
+
+ echo elgg_view("input/longtext",array(
+ "internalname" => "topic_post",
+ "value" => $body,
+ ));
+ ?>
+ </label>
+ </p>
+ <p>
+ <!-- pass across the topic guid -->
+ <input type="hidden" name="topic_guid" value="<?php echo $vars['entity']->guid; ?>" />
+ <input type="hidden" name="group_guid" value="<?php echo $vars['entity']->container_guid; ?>" />
+ <!-- display the save button -->
+ <input type="submit" class="submit_button" value="<?php echo elgg_echo('save'); ?>" />
+ </p>
+
+ </form> \ No newline at end of file
diff --git a/mod/groups/views/default/forms/forums/addtopic.php b/mod/groups/views/default/forms/forums/addtopic.php
new file mode 100644
index 000000000..17ef1cab9
--- /dev/null
+++ b/mod/groups/views/default/forms/forums/addtopic.php
@@ -0,0 +1,98 @@
+<?php
+
+ /**
+ * Elgg Groups topic edit/add page
+ *
+ * @package ElggGroups
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+ * @author Curverider <info@elgg.com>
+ * @copyright Curverider Ltd 2008
+ * @link http://elgg.com/
+ *
+ * @uses $vars['object'] Optionally, the topic to edit
+ */
+
+ // Set title, form destination
+ $title = elgg_echo("groups:addtopic");
+ $action = "groups/addtopic";
+ $tags = "";
+ $title = "";
+ $message = "";
+ $message_id = "";
+ $status = "";
+
+ // get the group guid
+ $group_guid = (int) get_input('group_guid');
+
+ // set the title
+ echo elgg_view_title(elgg_echo("groups:addtopic"));
+
+?>
+ <!-- display the input form -->
+ <form action="<?php echo $vars['url']; ?>action/<?php echo $action; ?>" method="post">
+
+ <p>
+ <label><?php echo elgg_echo("title"); ?><br />
+ <?php
+ //display the topic title input
+ echo elgg_view("input/text", array(
+ "internalname" => "topictitle",
+ "value" => $title,
+ ));
+ ?>
+ </label>
+ </p>
+
+ <!-- display the tag input -->
+ <p>
+ <label><?php echo elgg_echo("tags"); ?><br />
+ <?php
+
+ echo elgg_view("input/tags", array(
+ "internalname" => "topictags",
+ "value" => $tags,
+ ));
+
+ ?>
+ </p>
+
+ <!-- topic message input -->
+ <p>
+ <label><?php echo elgg_echo("groups:topicmessage"); ?><br />
+ <?php
+
+ echo elgg_view("input/longtext",array(
+ "internalname" => "topicmessage",
+ "value" => $message,
+ ));
+ ?>
+ </label>
+ </p>
+
+ <!-- set the topic status -->
+ <p>
+ <label><?php echo elgg_echo("groups:topicstatus"); ?><br />
+ <select name="status">
+ <option value="open" <?php if($status == "") echo "SELECTED";?>><?php echo elgg_echo('groups:topicopen'); ?></option>
+ <option value="sticky" <?php if($status == "sticky") echo "SELECTED";?>><?php echo elgg_echo('groups:topicsticky'); ?></option>
+ <option value="resolved" <?php if($status == "resolved") echo "SELECTED";?>><?php echo elgg_echo('groups:topicresolved'); ?></option>
+ <option value="closed" <?php if($status == "closed") echo "SELECTED";?>><?php echo elgg_echo('groups:topicclosed'); ?></option>
+ </select>
+ </label>
+ </p>
+
+ <!-- access -->
+ <p>
+ <label>
+ <?php echo elgg_echo('access'); ?><br />
+ <?php echo elgg_view('input/access', array('internalname' => 'access_id','value' => $access_id)); ?>
+ </label>
+ </p>
+
+ <!-- required hidden info and submit button -->
+ <p>
+ <input type="hidden" name="group_guid" value="<?php echo $group_guid; ?>" />
+ <input type="submit" class="submit_button" value="<?php echo elgg_echo('save'); ?>" />
+ </p>
+
+ </form> \ No newline at end of file
diff --git a/mod/groups/views/default/forms/forums/edittopic.php b/mod/groups/views/default/forms/forums/edittopic.php
new file mode 100644
index 000000000..dc5891280
--- /dev/null
+++ b/mod/groups/views/default/forms/forums/edittopic.php
@@ -0,0 +1,107 @@
+<?php
+
+ /**
+ * Elgg Groups topic edit/add page
+ *
+ * @package ElggGroups
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+ * @author Curverider <info@elgg.com>
+ * @copyright Curverider Ltd 2008
+ * @link http://elgg.com/
+ *
+ * @uses $vars['entity'] Optionally, the topic to edit
+ */
+
+ //users can edit the access and status for now
+ $access_id = $vars['entity']->access_id;
+ $status = $vars['entity']->status;
+ $tags = $vars['entity']->tags;
+ $title = $vars['entity']->title;
+ $message = $vars['entity']->getAnnotations('group_topic_post', 1, 0, "asc");
+
+ foreach($message as $mes){
+ $messsage_content = $mes->value;
+ $message_id = $mes->id;
+ }
+
+ // get the group GUID
+ $group_guid = get_input("group");
+
+ // topic guid
+ $topic_guid = $vars['entity']->guid;
+
+ // set the title
+ echo elgg_view_title(elgg_echo("groups:edittopic"));
+
+?>
+
+<!-- display the input form -->
+ <form action="<?php echo $vars['url']; ?>action/groups/edittopic" method="post">
+
+ <p>
+ <label><?php echo elgg_echo("title"); ?><br />
+ <?php
+ //display the topic title input
+ echo elgg_view("input/text", array(
+ "internalname" => "topictitle",
+ "value" => $title,
+ ));
+ ?>
+ </label>
+ </p>
+
+ <!-- display the tag input -->
+ <p>
+ <label><?php echo elgg_echo("tags"); ?><br />
+ <?php
+
+ echo elgg_view("input/tags", array(
+ "internalname" => "topictags",
+ "value" => $tags,
+ ));
+
+ ?>
+ </p>
+
+ <!-- topic message input -->
+ <p>
+ <label><?php echo elgg_echo("groups:topicmessage"); ?><br />
+ <?php
+
+ echo elgg_view("input/longtext",array(
+ "internalname" => "topicmessage",
+ "value" => $messsage_content,
+ ));
+ ?>
+ </label>
+ </p>
+
+ <!-- set the topic status -->
+ <p>
+ <label><?php echo elgg_echo("groups:topicstatus"); ?><br />
+ <select name="status">
+ <option value="open" <?php if($status == "") echo "SELECTED";?>><?php echo elgg_echo('groups:topicopen'); ?></option>
+ <option value="sticky" <?php if($status == "sticky") echo "SELECTED";?>><?php echo elgg_echo('groups:topicsticky'); ?></option>
+ <option value="resolved" <?php if($status == "resolved") echo "SELECTED";?>><?php echo elgg_echo('groups:topicresolved'); ?></option>
+ <option value="closed" <?php if($status == "closed") echo "SELECTED";?>><?php echo elgg_echo('groups:topicclosed'); ?></option>
+ </select>
+ </label>
+ </p>
+
+ <!-- access -->
+ <p>
+ <label>
+ <?php echo elgg_echo('access'); ?><br />
+ <?php echo elgg_view('input/access', array('internalname' => 'access_id','value' => $access_id)); ?>
+ </label>
+ </p>
+
+ <!-- required hidden info and submit button -->
+ <p>
+ <input type="hidden" name="group_guid" value="<?php echo $group_guid; ?>" />
+ <input type="hidden" name="topic" value="<?php echo $topic_guid; ?>" />
+ <input type="hidden" name="message_id" value="<?php echo $message_id; ?>" />
+ <input type="submit" class="submit_button" value="<?php echo elgg_echo('save'); ?>" />
+ </p>
+
+ </form> \ No newline at end of file
diff --git a/mod/groups/views/default/forum/topicposts.php b/mod/groups/views/default/forum/topicposts.php
new file mode 100644
index 000000000..53c45a6d0
--- /dev/null
+++ b/mod/groups/views/default/forum/topicposts.php
@@ -0,0 +1,65 @@
+<?php
+
+ /**
+ * Elgg Topic individual post view. This is all the follow up posts on a particular topic
+ *
+ * @package ElggGroups
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+ * @author Dave Tosh <ben@curverider.co.uk>
+ * @copyright Curverider Ltd 2008
+ * @link http://elgg.com/
+ *
+ * @uses $vars['entity'] The posted comment to view
+ */
+
+?>
+
+ <div class="topic_post"><!-- start the topic_post -->
+
+ <table width="100%">
+ <tr>
+ <td>
+ <?php
+ //get infomation about the owner of the comment
+ $post_owner = get_user($vars['entity']->owner_guid);
+
+ //display the user icon
+ echo "<div class=\"post_icon\">" . elgg_view("profile/icon",array('entity' => $post_owner, 'size' => 'small')) . "</div>";
+
+ //display the user name
+ echo "<p><b>" . $post_owner->name . "</b><br />";
+
+ //display the date of the comment
+ echo "<small>" . friendly_time($vars['entity']->time_created) . "</small></p>";
+ ?>
+ </td>
+ <td width="70%">
+ <?php
+ //display the actual message posted
+ echo "<p>" . parse_urls(elgg_view("output/longtext",array("value" => $vars['entity']->value))) . "</p>";
+ ?>
+ </td>
+ </tr>
+ </table>
+ <?php
+
+ //if the comment owner is looking at it, they can edit
+ if ($vars['entity']->canEdit()) {
+ ?>
+ <p class="topic-post-menu">
+ <?php
+
+ echo elgg_view("output/confirmlink",array(
+ 'href' => $vars['url'] . "action/groups/forums/deletetopic?topic=" . $vars['entity']->entity_guid . "&group=" . (int)get_input('group_guid'),
+ 'text' => elgg_echo('delete'),
+ 'confirm' => elgg_echo('deleteconfirm'),
+ ));
+
+ ?>
+ </p>
+
+ <?php
+ }
+ ?>
+
+ </div><!-- end the topic_post --> \ No newline at end of file
diff --git a/mod/groups/views/default/forum/topics.php b/mod/groups/views/default/forum/topics.php
new file mode 100644
index 000000000..9fa80db79
--- /dev/null
+++ b/mod/groups/views/default/forum/topics.php
@@ -0,0 +1,128 @@
+<?php
+ /**
+ * Elgg groups plugin
+ *
+ * @package ElggGroups
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+ * @author Curverider
+ * @copyright Curverider Ltd 2008
+ * @link http://elgg.com/
+ */
+
+?>
+
+<h2><?php echo elgg_echo("groups:forum"); ?></h2>
+ <div id="forum_topics"><!-- start of the forum_topics div -->
+
+<?php
+ //only show the add link if the user is a member
+ if(page_owner_entity()->isMember($vars['user'])){
+
+?>
+ <!-- display the add a topic link -->
+ <p>[<a href="<?php echo $vars['url']; ?>mod/groups/addtopic.php?group_guid=<?php echo get_input('group_guid'); ?>"><?php echo elgg_echo("groups:addtopic"); ?></a>]</p>
+
+<?php
+ }
+?>
+ <!-- display the forum title -->
+ <h2><?php echo get_entity(get_input("forum"))->title; ?></h2>
+
+ <!-- display the column heading for a forum's topics -->
+ <table width="100%" border="0" id="topic_titles">
+ <tr>
+ <td><b><?php echo elgg_echo("groups:topic"); ?></b></td>
+ <td width="70px"><b><?php echo elgg_echo("groups:posts"); ?></b></td>
+ <td width="130px"><b><?php echo elgg_echo("groups:lastperson"); ?></b></td>
+ <td width="100px"><b><?php echo elgg_echo("groups:when"); ?></b></td>
+ </tr>
+ </table>
+
+
+<?php
+ // If there are any topics to view, view them
+ if (is_array($vars['entity']) && sizeof($vars['entity']) > 0) {
+
+ foreach($vars['entity'] as $topic) {
+
+ //This function controls the alternating background on table cells for topics
+ $even_odd = ( 'odd' != $even_odd ) ? 'odd' : 'even';
+ //get the last reply annotation posted and the user who posted it
+ //this is used to display the time and person who made the last post
+ $last_post = $topic->getAnnotations("group_topic_post", 1, 0, "desc");
+ //get the time and user
+ foreach($last_post as $last){
+ $last_time = $last->time_created;
+ $last_user = $last->owner_guid;
+ }
+
+ //display the divs
+ echo "<div class=\"forum_topics\"><div class=\"{$even_odd}\">";
+?>
+ <table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td>
+ <a href="<?php echo $vars['url']; ?>mod/groups/topicposts.php?topic=<?php echo $topic->guid; ?>&group_guid=<?php echo $topic->container_guid; ?>"><?php echo $topic->title; ?></a>
+ <!-- display edit and delete links if the user has privileges -->
+ <?php
+
+ // check to see if the current user can edit
+ if ($topic->canEdit()) {
+
+ ?>
+ <a href="<?php echo $vars['url']; ?>mod/groups/edittopic.php?topic=<?php echo $topic->guid; ?>&group=<?php echo $topic->container_guid; ?>"><?php echo elgg_echo("edit"); ?></a>
+ <?php
+
+ // display the delete link to those allowed to delete
+ echo elgg_view("output/confirmlink", array(
+ 'href' => $vars['url'] . "action/groups/deletetopic?topic=" . $topic->getGUID() . "&group=" . $topic->container_guid,
+ 'text' => elgg_echo('delete'),
+ 'confirm' => elgg_echo('deleteconfirm'),
+ ));
+
+ ?>
+ <?php
+ }
+
+ ?>
+ </td>
+ <td width="70px" valign="top">
+ <p><?php
+ echo ($topic->countAnnotations("group_topic_post"));
+ ?></p>
+ </td>
+ <td width="130px" valign="top">
+ <p>
+ <?php
+ //display the last user to post
+ echo get_user($last_user)->name;
+ ?>
+ </p>
+ </td>
+ <td width="100px" valign="top">
+ <p><small>
+ <?php
+ //display the time of the last post
+ echo friendly_time($last_time);
+ ?>
+ </small></p>
+ </td>
+ </tr>
+ </table>
+
+ <!-- close the two display divs -->
+ </div></div>
+
+<?php
+ }
+
+ } else {
+
+ // if there are no topics, display a message saying so
+ echo "<p>". elgg_echo("grouptopic:notcreated") . "</p>";
+
+ }
+
+?>
+
+ </div><!-- close the forum_topics div --> \ No newline at end of file
diff --git a/mod/groups/views/default/forum/viewposts.php b/mod/groups/views/default/forum/viewposts.php
new file mode 100644
index 000000000..20f56ec8d
--- /dev/null
+++ b/mod/groups/views/default/forum/viewposts.php
@@ -0,0 +1,44 @@
+<?php
+
+ /**
+ * Elgg groups plugin display topic posts
+ *
+ * @package ElggGroups
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+ * @author Curverider
+ * @copyright Curverider Ltd 2008
+ * @link http://elgg.com/
+ */
+
+?>
+
+<div id="topic_posts"><!-- open the topic_posts div -->
+ <p><a href="<?php echo $vars['url']; ?>pg/groups/forum/<?php echo $vars['entity']->container_guid; ?>/"><?php echo elgg_echo("groups:forum"); ?></a> &raquo; <?php echo $vars['entity']->title; ?></a></p>
+ <!-- grab the topic title -->
+ <h2><?php echo $vars['entity']->title; ?></h2>
+
+<?php
+ //display follow up comments
+ foreach($vars['entity']->getAnnotations('group_topic_post', 50, 0, "asc") as $post) {
+
+ echo elgg_view("forum/topicposts",array('entity' => $post));
+
+ }
+
+ // check to find out the status of the topic and act
+ if($vars['entity']->status != "closed" && page_owner_entity()->isMember($vars['user'])){
+
+ //display the add comment form, this will appear after all the existing comments
+ echo elgg_view("forms/forums/addpost", array('entity' => $vars['entity']));
+
+ } elseif($vars['entity']->status == "closed") {
+
+ //this topic has been closed by the owner
+ echo "<h2>" . elgg_echo("groups:topicisclosed") . "</h2>";
+ echo "<p>" . elgg_echo("groups:topiccloseddesc") . "</p>";
+
+ } else {
+ }
+
+?>
+</div> \ No newline at end of file
diff --git a/mod/groups/views/default/groups/forum_latest.php b/mod/groups/views/default/groups/forum_latest.php
new file mode 100644
index 000000000..f0a62a14f
--- /dev/null
+++ b/mod/groups/views/default/groups/forum_latest.php
@@ -0,0 +1,14 @@
+<h2>Forum latest</h2>
+<?php
+
+//get the latest from the group files
+// Display them
+ // list_entities_from_annotations($entity_type = "", $entity_subtype = "", $name = "", $value = "", $limit = 10, $owner_guid = 0, $group_guid = 0, $asc = false, $fullview = true) {
+
+ set_context('search');
+ // $forum_topics = list_entities_from_annotations("object", "groupforumtopic", "group_topic_post", "", 5, 0, 3, false, true);
+ set_context('forums');
+
+ echo $forum_topics;
+
+?> \ No newline at end of file
diff --git a/mod/groups/views/default/groups/profileitems.php b/mod/groups/views/default/groups/profileitems.php
index d7635979f..b935f6936 100644
--- a/mod/groups/views/default/groups/profileitems.php
+++ b/mod/groups/views/default/groups/profileitems.php
@@ -12,6 +12,7 @@
//right column
echo "<div class=\"right_column\">";
+ echo elgg_view("groups/forum_latest",array('entity' => $vars['entity']));
echo elgg_view("groups/right_column",array('entity' => $vars['entity']));
echo "</div>";