aboutsummaryrefslogtreecommitdiff
path: root/mod/reportedcontent/start.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/reportedcontent/start.php')
-rw-r--r--mod/reportedcontent/start.php69
1 files changed, 56 insertions, 13 deletions
diff --git a/mod/reportedcontent/start.php b/mod/reportedcontent/start.php
index b947927d9..8b18a4d64 100644
--- a/mod/reportedcontent/start.php
+++ b/mod/reportedcontent/start.php
@@ -5,7 +5,7 @@
* @package ElggReportedContent
*/
-elgg_register_event_handler('init','system','reportedcontent_init');
+elgg_register_event_handler('init', 'system', 'reportedcontent_init');
/**
* Initialize the plugin
@@ -13,23 +13,42 @@ elgg_register_event_handler('init','system','reportedcontent_init');
function reportedcontent_init() {
// Register a page handler, so we can have nice URLs
- register_page_handler('reportedcontent', 'reportedcontent_page_handler');
+ elgg_register_page_handler('reportedcontent', 'reportedcontent_page_handler');
// Extend CSS
- elgg_extend_view('css/screen', 'reportedcontent/css');
+ elgg_extend_view('css/elgg', 'reportedcontent/css');
elgg_extend_view('css/admin', 'reportedcontent/admin_css');
- // Extend context menu and footer with report content link
- if (isloggedin()) {
- elgg_extend_view('profile/menu/links', 'reportedcontent/user_report');
- elgg_extend_view('footer/links', 'reportedcontent/footer_link');
+ // Extend footer with report content link
+ if (elgg_is_logged_in()) {
+ $href = "javascript:elgg.forward('reportedcontent/add'";
+ $href .= "+'?address='+encodeURIComponent(location.href)";
+ $href .= "+'&title='+encodeURIComponent(document.title));";
+
+ elgg_register_menu_item('footer', array(
+ 'name' => 'report_this',
+ 'href' => $href,
+ 'title' => elgg_echo('reportedcontent:this:tooltip'),
+ 'text' => elgg_view_icon('report-this') . elgg_echo('reportedcontent:this'),
+ 'priority' => 500,
+ 'section' => 'alt',
+ ));
}
+ elgg_register_plugin_hook_handler('register', 'menu:user_hover', 'reportedcontent_user_hover_menu');
+
// Add admin menu item
- elgg_add_admin_submenu_item('reportedcontent', elgg_echo('reportedcontent'), 'overview');
+ // @todo Might want to move this to a 'feedback' section. something other than utils
+ elgg_register_admin_menu_item('administer', 'reportedcontent', 'administer_utilities');
+
+ elgg_register_widget_type(
+ 'reportedcontent',
+ elgg_echo('reportedcontent'),
+ elgg_echo('reportedcontent:widget:description'),
+ 'admin');
// Register actions
- $action_path = elgg_get_plugin_path() . "reportedcontent/actions";
+ $action_path = elgg_get_plugins_path() . "reportedcontent/actions/reportedcontent";
elgg_register_action('reportedcontent/add', "$action_path/add.php");
elgg_register_action('reportedcontent/delete', "$action_path/delete.php", 'admin');
elgg_register_action('reportedcontent/archive', "$action_path/archive.php", 'admin');
@@ -41,20 +60,44 @@ function reportedcontent_init() {
* Serves the add report page
*
* @param array $page Array of page routing elements
+ * @return bool
*/
function reportedcontent_page_handler($page) {
// only logged in users can report things
gatekeeper();
$content .= elgg_view_title(elgg_echo('reportedcontent:this'));
- $content .= elgg_view('reportedcontent/form');
- $sidebar .= elgg_echo('reportedcontent:instructions');
+ $content .= elgg_view_form('reportedcontent/add');
+ $sidebar = elgg_echo('reportedcontent:instructions');
$params = array(
'content' => $content,
- 'sidebar' => $sidebar
+ 'sidebar' => $sidebar,
);
- $body = elgg_view_layout('one_column_with_sidebar', $params);
+ $body = elgg_view_layout('one_sidebar', $params);
echo elgg_view_page(elgg_echo('reportedcontent:this'), $body);
+ return true;
}
+
+/**
+ * Add report user link to hover menu
+ */
+function reportedcontent_user_hover_menu($hook, $type, $return, $params) {
+ $user = $params['entity'];
+
+ $profile_url = urlencode($user->getURL());
+ $name = urlencode($user->name);
+ $url = "reportedcontent/add?address=$profile_url&title=$name";
+
+ if (elgg_is_logged_in() && elgg_get_logged_in_user_guid() != $user->guid) {
+ $item = new ElggMenuItem(
+ 'reportuser',
+ elgg_echo('reportedcontent:user'),
+ $url);
+ $item->setSection('action');
+ $return[] = $item;
+ }
+
+ return $return;
+} \ No newline at end of file