From 5dfb9a97cd5d99479610339f1c613f1468b96687 Mon Sep 17 00:00:00 2001 From: cash Date: Thu, 13 Jan 2011 12:03:27 +0000 Subject: discussion topics using new page handler git-svn-id: http://code.elgg.org/elgg/trunk@7880 36083f99-b078-4883-b0ff-0f9b5a30f544 --- mod/groups/actions/discussion/delete.php | 29 ++++++++++++ mod/groups/actions/discussion/save.php | 75 ++++++++++++++++++++++++++++++ mod/groups/actions/forums/addtopic.php | 76 ------------------------------- mod/groups/actions/forums/deletetopic.php | 38 ---------------- mod/groups/actions/forums/edittopic.php | 66 --------------------------- 5 files changed, 104 insertions(+), 180 deletions(-) create mode 100644 mod/groups/actions/discussion/delete.php create mode 100644 mod/groups/actions/discussion/save.php delete mode 100644 mod/groups/actions/forums/addtopic.php delete mode 100644 mod/groups/actions/forums/deletetopic.php delete mode 100644 mod/groups/actions/forums/edittopic.php (limited to 'mod/groups/actions') diff --git a/mod/groups/actions/discussion/delete.php b/mod/groups/actions/discussion/delete.php new file mode 100644 index 000000000..c3de612d7 --- /dev/null +++ b/mod/groups/actions/discussion/delete.php @@ -0,0 +1,29 @@ +getSubtype() == "groupforumtopic") { + register_error(elgg_echo('discussion:error:notdeleted')); + forward(REFERER); +} + +if (!$topic->canEdit()) { + register_error(elgg_echo('discussion:error:permissions')); + forward(REFERER); +} + +$container = $topic->getContainerEntity(); + +$result = $topic->delete(); +if ($result) { + system_message(elgg_echo('discussion:topic:deleted')); +} else { + register_error(elgg_echo('discussion:error:notdeleted')); +} + +forward("pg/discussion/owner/$container->guid"); diff --git a/mod/groups/actions/discussion/save.php b/mod/groups/actions/discussion/save.php new file mode 100644 index 000000000..8e8f08a50 --- /dev/null +++ b/mod/groups/actions/discussion/save.php @@ -0,0 +1,75 @@ +isMember() && !$container->canEdit())) { + register_error(elgg_echo('discussion:error:permissions')); + forward(REFERER); +} + +// check whether this is a new topic or an edit +$new_topic = true; +if ($guid > 0) { + $new_topic = false; +} + +if ($new_topic) { + $topic = new ElggObject(); + $topic->subtype = 'groupforumtopic'; +} else { + // load original file object + $topic = new ElggObject($guid); + if (!$topic || !$topic->canEdit()) { + register_error(elgg_echo('discussion:topic:notfound')); + forward(REFERER); + } +} + +$topic->title = $title; +$topic->description = $desc; +$topic->status = $status; +$topic->access_id = $access_id; +$topic->container_guid = $container_guid; + +$tags = explode(",", $tags); +$topic->tags = $tags; + +$result = $topic->save(); + +if (!$result) { + register_error(elgg_echo('discussion:error:notsaved')); + forward(REFERER); +} + +// topic saved so clear sticky form +elgg_clear_sticky_form('topic'); + + +// handle results differently for new topics and topic edits +if ($new_topic) { + system_message(elgg_echo('discussion:topic:created')); + add_to_river('river/forum/topic/create', 'create', get_loggedin_userid(), $topic->guid); +} else { + system_message(elgg_echo('discussion:topic:updated')); +} + +forward($topic->getURL()); diff --git a/mod/groups/actions/forums/addtopic.php b/mod/groups/actions/forums/addtopic.php deleted file mode 100644 index 0b8a0f590..000000000 --- a/mod/groups/actions/forums/addtopic.php +++ /dev/null @@ -1,76 +0,0 @@ -isMember(get_loggedin_user())) forward(); - - // Get input data - $title = strip_tags(get_input('topictitle')); - $message = get_input('topicmessage'); - $tags = get_input('topictags'); - $access = get_input('access_id'); - $group_guid = (int) get_input('group_guid'); - $user = get_loggedin_userid(); // you need to be logged in to comment on a group forum - $status = get_input('status'); // sticky, resolved, closed - - // Convert string of tags into a preformatted array - $tagarray = string_to_tag_array($tags); - - // Make sure the title / message aren't blank - if (empty($title) || empty($message)) { - register_error(elgg_echo("grouptopic:blank")); - forward("pg/groups/forum/{$group_guid}/"); - - // Otherwise, save the topic - } else { - - // Initialise a new ElggObject - $grouptopic = new ElggObject(); - // Tell the system it's a group forum topic - $grouptopic->subtype = "groupforumtopic"; - // Set its owner to the current user - $grouptopic->owner_guid = $user; - // Set the group it belongs to - $grouptopic->container_guid = $group_guid; - // For now, set its access to public (we'll add an access dropdown shortly) - $grouptopic->access_id = $access; - // Set its title and description appropriately - $grouptopic->title = $title; - // Set its title and description appropriately - $grouptopic->description = $message; - // Before we can set metadata, we need to save the topic - if (!$grouptopic->save()) { - register_error(elgg_echo("grouptopic:error")); - forward("pg/groups/forum/{$group_guid}/"); - } - // Now let's add tags. We can pass an array directly to the object property! Easy. - if (is_array($tagarray)) { - $grouptopic->tags = $tagarray; - } - // add metadata - $grouptopic->status = $status; // the current status i.e sticky, closed, resolved, open - - // add to river - add_to_river('river/forum/topic/create','create',get_loggedin_userid(),$grouptopic->guid); - - // Success message - system_message(elgg_echo("grouptopic:created")); - - // Forward to the group forum page - global $CONFIG; - $url = elgg_get_site_url() . "pg/groups/forum/{$group_guid}/"; - forward($url); - - } - -?> - diff --git a/mod/groups/actions/forums/deletetopic.php b/mod/groups/actions/forums/deletetopic.php deleted file mode 100644 index c67228a2f..000000000 --- a/mod/groups/actions/forums/deletetopic.php +++ /dev/null @@ -1,38 +0,0 @@ -getSubtype() == "groupforumtopic") { - - // Make sure we actually have permission to edit - if (!$topic->canEdit()) { - register_error(elgg_echo("groupstopic:notdeleted")); - forward(REFERER); - } - - // Delete it! - $rowsaffected = $topic->delete(); - if ($rowsaffected > 0) { - // Success message - system_message(elgg_echo("groupstopic:deleted")); - } else { - register_error(elgg_echo("groupstopic:notdeleted")); - } - // Forward to the group forum page - $url = elgg_get_site_url() . "pg/groups/forum/{$group_guid}/"; - forward($url); - - } - -?> \ No newline at end of file diff --git a/mod/groups/actions/forums/edittopic.php b/mod/groups/actions/forums/edittopic.php deleted file mode 100644 index b032e37d7..000000000 --- a/mod/groups/actions/forums/edittopic.php +++ /dev/null @@ -1,66 +0,0 @@ -isMember(get_loggedin_user())) forward(); - -// Get input data -$title = strip_tags(get_input('topictitle')); -$message = get_input('topicmessage'); -$message_id = get_input('message_id'); -$tags = get_input('topictags'); -$topic_guid = get_input('topic'); -$access = get_input('access_id'); -$group_guid = get_input('group_guid'); -$status = get_input('status'); // open, closed - -// Convert string of tags into a preformatted array -$tagarray = string_to_tag_array($tags); - -// Make sure we actually have permission to edit -$topic = get_entity($topic_guid); -if ($topic){ - $user = $topic->getOwnerGUID(); - if ($topic->getSubtype() == "groupforumtopic") { - - // Convert string of tags into a preformatted array - $tagarray = string_to_tag_array($tags); - - // Make sure the title isn't blank - if (empty($title) || empty($message)) { - register_error(elgg_echo("groupstopic:blank")); - - // Otherwise, save the forum - } else { - $topic->access_id = $access; - // Set its title - $topic->title = $title; - // Set the message - $topic->description = $message; - // if no tags are present, clear existing ones - if (is_array($tagarray)) { - $topic->tags = $tagarray; - } else $topic->clearMetadata('tags'); - // edit metadata - $topic->status = $status; // the current status i.e sticky, closed, resolved - - // save the changes - if (!$topic->save()) { - // register_error(elgg_echo("forumtopic:error")); - } - // Success message - system_message(elgg_echo("groups:forumtopic:edited")); - } - } -} -// Forward to the discussion -global $CONFIG; -$url = elgg_get_site_url() . "mod/groups/topicposts.php?topic={$topic_guid}&group_guid={$group_guid}/"; -forward($url); - -- cgit v1.2.3