diff options
Diffstat (limited to 'mod/messageboard/start.php')
| -rw-r--r-- | mod/messageboard/start.php | 52 |
1 files changed, 41 insertions, 11 deletions
diff --git a/mod/messageboard/start.php b/mod/messageboard/start.php index f8dcd8266..0c65edc4f 100644 --- a/mod/messageboard/start.php +++ b/mod/messageboard/start.php @@ -26,6 +26,9 @@ function messageboard_init() { $action_path = dirname(__FILE__) . '/actions'; elgg_register_action("messageboard/add", "$action_path/add.php"); elgg_register_action("messageboard/delete", "$action_path/delete.php"); + + // delete annotations for posts + elgg_register_plugin_hook_handler('register', 'menu:annotation', 'messageboard_annotation_menu_setup'); } /** @@ -33,10 +36,10 @@ function messageboard_init() { * Profile (and eventually group) widgets handle their own. * * URLs take the form of - * User's messageboard: pg/messageboard/owner/<username> - * Y's history of posts on X's board: pg/messageboard/owner/<X>/history/<Y> - * New post: pg/messageboard/add/<guid> (container: user or group) - * Group messageboard: pg/messageboard/group/<guid>/owner + * User's messageboard: messageboard/owner/<username> + * Y's history of posts on X's board: messageboard/owner/<X>/history/<Y> + * New post: messageboard/add/<guid> (container: user or group) + * Group messageboard: messageboard/group/<guid>/all (not implemented) * * @param array $page Array of page elements * @return bool @@ -47,11 +50,11 @@ function messageboard_page_handler($page) { // if the first part is a username, forward to new format if (isset($page[0]) && !in_array($page[0], $new_section_one) && get_user_by_username($page[0])) { register_error(elgg_echo("changebookmark")); - $url = "pg/messageboard/owner/{$page[0]}"; + $url = "messageboard/owner/{$page[0]}"; forward($url); } - $pages = dirname(__FILE__) . '/pages'; + $pages = dirname(__FILE__) . '/pages/messageboard'; switch ($page[0]) { case 'owner': @@ -81,11 +84,10 @@ function messageboard_page_handler($page) { set_input('page_owner_guid', $owner_guid); include "$pages/owner.php"; break; - } - - // Include the standard messageboard index - include(elgg_get_plugins_path() . "messageboard/index.php"); + default: + return false; + } return true; } @@ -119,7 +121,7 @@ function messageboard_add($poster, $owner, $message, $access_id = ACCESS_PUBLIC) $body = elgg_echo('messageboard:email:body', array( $poster->name, $message, - elgg_get_site_url() . "pg/messageboard/" . $owner->username, + elgg_get_site_url() . "messageboard/" . $owner->username, $poster->name, $poster->getURL() )); @@ -130,4 +132,32 @@ function messageboard_add($poster, $owner, $message, $access_id = ACCESS_PUBLIC) return $result; } + +/** + * Add edit and delete links for forum replies + */ +function messageboard_annotation_menu_setup($hook, $type, $return, $params) { + $annotation = $params['annotation']; + if ($annotation->name != 'messageboard') { + return $return; + } + + if ($annotation->canEdit()) { + $url = elgg_http_add_url_query_elements('action/messageboard/delete', array( + 'annotation_id' => $annotation->id, + )); + + $options = array( + 'name' => 'delete', + 'href' => $url, + 'text' => "<span class=\"elgg-icon elgg-icon-delete\"></span>", + 'confirm' => elgg_echo('deleteconfirm'), + 'encode_text' => false + ); + $return[] = ElggMenuItem::factory($options); + } + + return $return; +} + elgg_register_event_handler('init', 'system', 'messageboard_init');
\ No newline at end of file |
