aboutsummaryrefslogtreecommitdiff
path: root/mod/groups/lib/discussion.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/groups/lib/discussion.php')
-rw-r--r--mod/groups/lib/discussion.php23
1 files changed, 13 insertions, 10 deletions
diff --git a/mod/groups/lib/discussion.php b/mod/groups/lib/discussion.php
index e129e0f9d..874e21b2d 100644
--- a/mod/groups/lib/discussion.php
+++ b/mod/groups/lib/discussion.php
@@ -15,7 +15,7 @@ function discussion_handle_all_page() {
'type' => 'object',
'subtype' => 'groupforumtopic',
'order_by' => 'e.last_action desc',
- 'limit' => 40,
+ 'limit' => 20,
'full_view' => false,
));
@@ -39,9 +39,8 @@ function discussion_handle_list_page($guid) {
elgg_set_page_owner_guid($guid);
$group = get_entity($guid);
- if (!$group) {
- register_error(elgg_echo('group:notfound'));
- forward();
+ if (!elgg_instanceof($group, 'group')) {
+ forward('', '404');
}
elgg_push_breadcrumb($group->name);
@@ -60,6 +59,9 @@ function discussion_handle_list_page($guid) {
'full_view' => false,
);
$content = elgg_list_entities($options);
+ if (!$content) {
+ $content = elgg_echo('discussion:none');
+ }
$params = array(
@@ -89,8 +91,8 @@ function discussion_handle_edit_page($type, $guid) {
forward();
}
- // make sure user has permissions to write to container
- if (!$group->canWriteToContainer()) {
+ // make sure user has permissions to add a topic to container
+ if (!$group->canWriteToContainer(0, 'object', 'groupforumtopic')) {
register_error(elgg_echo('groups:permissions:error'));
forward($group->getURL());
}
@@ -146,8 +148,9 @@ function discussion_handle_view_page($guid) {
$topic = get_entity($guid);
if (!$topic) {
- register_error(elgg_echo('discussion:topic:notfound'));
- forward();
+ register_error(elgg_echo('noaccess'));
+ $_SESSION['last_forward_from'] = current_page_url();
+ forward('');
}
$group = $topic->getContainerEntity();
@@ -170,7 +173,7 @@ function discussion_handle_view_page($guid) {
'show_add_form' => false,
));
$content .= elgg_view('discussion/closed');
- } elseif ($group->canWriteToContainer() || elgg_is_admin_logged_in()) {
+ } elseif ($group->canWriteToContainer(0, 'object', 'groupforumtopic') || elgg_is_admin_logged_in()) {
$content .= elgg_view('discussion/replies', array(
'entity' => $topic,
'show_add_form' => true,
@@ -189,7 +192,7 @@ function discussion_handle_view_page($guid) {
);
$body = elgg_view_layout('content', $params);
- echo elgg_view_page($title, $body);
+ echo elgg_view_page($topic->title, $body);
}
/**