aboutsummaryrefslogtreecommitdiff
path: root/mod/messageboard/start.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/messageboard/start.php')
-rw-r--r--mod/messageboard/start.php52
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