Skip to content

Commit

Permalink
feature(comments): Added separate edit page for generic comments
Browse files Browse the repository at this point in the history
That handles case when user opens edit link in new tab.

Fixes Elgg#6666
  • Loading branch information
Srokap committed Apr 13, 2014
1 parent ce83fc5 commit ad20ab7
Showing 1 changed file with 55 additions and 0 deletions.
55 changes: 55 additions & 0 deletions engine/lib/comments.php
Expand Up @@ -21,9 +21,64 @@ function _elgg_comments_init() {
elgg_register_plugin_hook_handler('entity:url', 'object', '_elgg_comment_url_handler');
elgg_register_plugin_hook_handler('container_permissions_check', 'object', '_elgg_comments_container_permissions_override');

elgg_register_page_handler('comment', '_elgg_comments_page_handler');

elgg_register_ajax_view('core/ajax/edit_comment');
}

/**
* Page handler for generic comments manipulation.
*
* @param array $page
* @return bool
* @access private
*/
function _elgg_comments_page_handler($page) {

switch ($page[0]) {

case 'edit':
elgg_gatekeeper();

$comment = get_entity($page[1]);
if (!($comment instanceof ElggComment) || !$comment->canEdit()) {
register_error(elgg_echo('generic_comment:notfound'));
forward(REFERER);
}

$subject = $comment->getContainerEntity();
if (!($subject instanceof ElggEntity)) {
register_error(elgg_echo('generic_comment:notfound'));
forward(REFERER);
}

$title = elgg_echo('generic_comments:edit');
elgg_push_breadcrumb($subject->getDisplayName(), $subject->getURL());
elgg_push_breadcrumb($title);

$params = array(
'entity' => $subject,
'comment' => $comment,
);
$content = elgg_view_form('comment/save', null, $params);

$params = array(
'content' => $content,
'title' => $title,
'filter' => '',
);
$body = elgg_view_layout('content', $params);
echo elgg_view_page($title, $body);

return true;
break;

default:
return false;
break;
}
}

/**
* Setup the menu shown with a comment
*
Expand Down

0 comments on commit ad20ab7

Please sign in to comment.