From 4766f36a4d74924f21ff329c4318ce4e069ffa04 Mon Sep 17 00:00:00 2001 From: brettp Date: Wed, 3 Mar 2010 17:53:05 +0000 Subject: Pulled in the interface changes. git-svn-id: http://code.elgg.org/elgg/trunk@5257 36083f99-b078-4883-b0ff-0f9b5a30f544 --- mod/reportedcontent/actions/add.php | 49 ++++++++++++ mod/reportedcontent/actions/archive.php | 38 +++++++++ mod/reportedcontent/actions/delete.php | 41 ++++++++++ mod/reportedcontent/add.php | 36 +++++++++ mod/reportedcontent/index.php | 32 ++++++++ mod/reportedcontent/languages/en.php | 47 +++++++++++ mod/reportedcontent/manifest.xml | 10 +++ mod/reportedcontent/start.php | 69 ++++++++++++++++ .../views/default/reportedcontent/css.php | 91 ++++++++++++++++++++++ .../views/default/reportedcontent/form.php | 74 ++++++++++++++++++ .../views/default/reportedcontent/listing.php | 43 ++++++++++ .../views/default/reportedcontent/owner_block.php | 9 +++ .../views/default/reportedcontent/user_report.php | 6 ++ 13 files changed, 545 insertions(+) create mode 100644 mod/reportedcontent/actions/add.php create mode 100644 mod/reportedcontent/actions/archive.php create mode 100644 mod/reportedcontent/actions/delete.php create mode 100644 mod/reportedcontent/add.php create mode 100644 mod/reportedcontent/index.php create mode 100644 mod/reportedcontent/languages/en.php create mode 100644 mod/reportedcontent/manifest.xml create mode 100644 mod/reportedcontent/start.php create mode 100644 mod/reportedcontent/views/default/reportedcontent/css.php create mode 100644 mod/reportedcontent/views/default/reportedcontent/form.php create mode 100644 mod/reportedcontent/views/default/reportedcontent/listing.php create mode 100644 mod/reportedcontent/views/default/reportedcontent/owner_block.php create mode 100644 mod/reportedcontent/views/default/reportedcontent/user_report.php (limited to 'mod/reportedcontent') diff --git a/mod/reportedcontent/actions/add.php b/mod/reportedcontent/actions/add.php new file mode 100644 index 000000000..76cefa4c8 --- /dev/null +++ b/mod/reportedcontent/actions/add.php @@ -0,0 +1,49 @@ + + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.org/ + */ + + $title = get_input('title'); + $description = get_input('description'); + $address = get_input('address'); + $access = ACCESS_PRIVATE; //this is private and only admins can see it + + if ($title && $address) { + + $entity = new ElggObject; + $entity->subtype = "reported_content"; + $entity->owner_guid = $_SESSION['user']->getGUID(); + $entity->title = $title; + $entity->address = $address; + $entity->description = $description; + $entity->access_id = $access; + + if ($entity->save()) { + if (!trigger_plugin_hook('reportedcontent:add', $reported->type, array('entity'=>$reported), true)) { + $entity->delete(); + register_error(elgg_echo('reportedcontent:failed')); + } else { + system_message(elgg_echo('reportedcontent:success')); + $entity->state = "active"; + } + forward($address); + } else { + register_error(elgg_echo('reportedcontent:failed')); + forward($address); + } + + } else { + + register_error(elgg_echo('reportedcontent:failed')); + forward($address); + + } + +?> \ No newline at end of file diff --git a/mod/reportedcontent/actions/archive.php b/mod/reportedcontent/actions/archive.php new file mode 100644 index 000000000..a550abc2a --- /dev/null +++ b/mod/reportedcontent/actions/archive.php @@ -0,0 +1,38 @@ + + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.org/ + */ + + // Make sure we're logged in and are admin + admin_gatekeeper(); + + // Get input data + $guid = (int) get_input('item'); + + // Make sure we actually have permission to edit + $reported = get_entity($guid); + if ($reported->getSubtype() == "reported_content" && $reported->canEdit()) { + + // change the state + if (!trigger_plugin_hook('reportedcontent:archive', $reported->type, array('entity'=>$reported), true)) { + system_message(elgg_echo("reportedcontent:notarchived")); + forward("pg/reportedcontent/"); + } + $reported->state = "archived"; + + // Success message + system_message(elgg_echo("reportedcontent:archived")); + + // Forward back to the reported content page + forward("pg/reportedcontent/"); + + } + +?> \ No newline at end of file diff --git a/mod/reportedcontent/actions/delete.php b/mod/reportedcontent/actions/delete.php new file mode 100644 index 000000000..cff42b025 --- /dev/null +++ b/mod/reportedcontent/actions/delete.php @@ -0,0 +1,41 @@ + + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.org/ + */ + + // Make sure we're logged in and are admin + admin_gatekeeper(); + + // Get input data + $guid = (int) get_input('item'); + + // Make sure we actually have permission to edit + $reported = get_entity($guid); + if ($reported->getSubtype() == "reported_content" && $reported->canEdit()) { + + // Delete it! + if (!trigger_plugin_hook('reportedcontent:delete', $reported->type, array('entity'=>$reported), true)) { + register_error(elgg_echo("reportedcontent:notdeleted")); + forward("pg/reportedcontent/"); + } + $rowsaffected = $reported->delete(); + if ($rowsaffected > 0) { + // Success message + system_message(elgg_echo("reportedcontent:deleted")); + } else { + register_error(elgg_echo("reportedcontent:notdeleted")); + } + + // Forward back to the reported content page + forward("pg/reportedcontent/"); + + } + +?> \ No newline at end of file diff --git a/mod/reportedcontent/add.php b/mod/reportedcontent/add.php new file mode 100644 index 000000000..02892b4eb --- /dev/null +++ b/mod/reportedcontent/add.php @@ -0,0 +1,36 @@ + + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.org/ + */ + + // Start engine + require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); + + // You need to be logged in for this one + gatekeeper(); + + // Get the current page's owner + $page_owner = page_owner_entity(); + if ($page_owner === false || is_null($page_owner)) { + $page_owner = $_SESSION['user']; + set_page_owner($page_owner->getGUID()); + } + + $area2 .= elgg_view_title(elgg_echo('reportedcontent:this'), false); + + $area2 .= elgg_view('reportedcontent/form'); + + // Format page + $body = elgg_view_layout('two_column_left_sidebar', '', $area2); + + // Draw it + page_draw(elgg_echo('reportedcontent:add'),$body); + +?> \ No newline at end of file diff --git a/mod/reportedcontent/index.php b/mod/reportedcontent/index.php new file mode 100644 index 000000000..45c49866b --- /dev/null +++ b/mod/reportedcontent/index.php @@ -0,0 +1,32 @@ + 'object', 'subtypes' => 'reported_content', 'limit' => 9999)); + + $area2 = elgg_view("reportedcontent/listing", array('entity' => $reported)); + + if(!$reported) + $reported = elgg_echo("reportedcontent:none"); + +// Display main admin menu + page_draw(elgg_echo('reportedcontent'),elgg_view_layout("two_column_left_sidebar", '', $title . $area2)); + +?> \ No newline at end of file diff --git a/mod/reportedcontent/languages/en.php b/mod/reportedcontent/languages/en.php new file mode 100644 index 000000000..00cc73e0e --- /dev/null +++ b/mod/reportedcontent/languages/en.php @@ -0,0 +1,47 @@ + 'Reported items', + 'reportedcontent' => 'Reported content', + 'reportedcontent:this' => 'Report this', + 'reportedcontent:none' => 'There is no reported content', + 'reportedcontent:report' => 'Report to admin', + 'reportedcontent:title' => 'Page title', + 'reportedcontent:deleted' => 'The reported content has been deleted', + 'reportedcontent:notdeleted' => 'We were not able to delete that report', + 'reportedcontent:delete' => 'Delete it', + 'reportedcontent:areyousure' => 'Are you sure you want to delete?', + 'reportedcontent:archive' => 'Archive it', + 'reportedcontent:archived' => 'The report has been archived', + 'reportedcontent:visit' => 'Visit reported item', + 'reportedcontent:by' => 'Report by', + 'reportedcontent:objecttitle' => 'Object title', + 'reportedcontent:objecturl' => 'Object url', + 'reportedcontent:reason' => 'Reason for report', + 'reportedcontent:description' => 'Why are you reporting this?', + 'reportedcontent:address' => 'Location of the item', + 'reportedcontent:success' => 'Your report has been sent to the site admin', + 'reportedcontent:failing' => 'Your report could not be sent', + 'reportedcontent:report' => 'Report this', + 'reportedcontent:moreinfo' => 'More info', + + 'reportedcontent:failed' => 'Sorry, the attempt to report this content has failed.', + 'reportedcontent:notarchived' => 'We were not able to archive that report', + ); + + add_translation("en",$english); +?> \ No newline at end of file diff --git a/mod/reportedcontent/manifest.xml b/mod/reportedcontent/manifest.xml new file mode 100644 index 000000000..1d127cde3 --- /dev/null +++ b/mod/reportedcontent/manifest.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/mod/reportedcontent/start.php b/mod/reportedcontent/start.php new file mode 100644 index 000000000..d8ee7369e --- /dev/null +++ b/mod/reportedcontent/start.php @@ -0,0 +1,69 @@ +wwwroot . 'pg/reportedcontent/'); + } + } + + /** + * Reported content page handler + * + * @param array $page Array of page elements, forwarded by the page handling mechanism + */ + function reportedcontent_page_handler($page) + { + global $CONFIG; + + // only interested in one page for now + include($CONFIG->pluginspath . "reportedcontent/index.php"); + } + + + + // Initialise Reported Content + register_elgg_event_handler('init','system','reportedcontent_init'); + register_elgg_event_handler('pagesetup','system','reportedcontent_pagesetup'); + + //register action + register_action('reportedcontent/add',false,$CONFIG->pluginspath . "reportedcontent/actions/add.php"); + register_action('reportedcontent/delete',false,$CONFIG->pluginspath . "reportedcontent/actions/delete.php"); + register_action('reportedcontent/archive',false,$CONFIG->pluginspath . "reportedcontent/actions/archive.php"); + +?> \ No newline at end of file diff --git a/mod/reportedcontent/views/default/reportedcontent/css.php b/mod/reportedcontent/views/default/reportedcontent/css.php new file mode 100644 index 000000000..061a5e5f6 --- /dev/null +++ b/mod/reportedcontent/views/default/reportedcontent/css.php @@ -0,0 +1,91 @@ + + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.org/ + */ + +?> +/* *************************************** +PAGE-OWNER BLOCK +*************************************** */ +#owner_block_report_this { + padding:5px 0 0 0; +} +#owner_block_report_this a { + font-size: 90%; + color:#999999; + padding:0 0 4px 20px; + background: url(_graphics/icon_reportthis.gif) no-repeat left top; +} +#owner_block_report_this a:hover { + color: #0054a7; +} + +/* *************************************** + ADMIN AREA - REPORTED CONTENT +*************************************** */ +.reportedcontent_content { + margin:0 0 5px 0; + padding:0 7px 4px 10px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; +} +.reportedcontent_content p.reportedcontent_detail, +.reportedcontent_content p { + margin:0; +} +.active_report { + border:1px solid #D3322A; + background:#F7DAD8; +} +.archived_report { + border:1px solid #666666; + background:#dedede; +} +a.archive_report_button { + float:right; + font: 12px/100% Arial, Helvetica, sans-serif; + font-weight: bold; + color: #ffffff; + background:#4690d6; + border: 1px solid #4690d6; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + width: auto; + padding: 4px; + margin:15px 0 0 20px; + cursor: pointer; +} +a.archive_report_button:hover { + background: #0054a7; + border: 1px solid #0054a7; + text-decoration: none; +} +a.delete_report_button { + float:right; + font: 12px/100% Arial, Helvetica, sans-serif; + font-weight: bold; + color: #ffffff; + background:#999999; + border: 1px solid #999999; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + width: auto; + padding: 4px; + margin:15px 0 0 20px; + cursor: pointer; +} +a.delete_report_button:hover { + background: #333333; + border: 1px solid #333333; + text-decoration:none; +} +.reportedcontent_content .collapsible_box { + background: white; +} diff --git a/mod/reportedcontent/views/default/reportedcontent/form.php b/mod/reportedcontent/views/default/reportedcontent/form.php new file mode 100644 index 000000000..73fbd5c93 --- /dev/null +++ b/mod/reportedcontent/views/default/reportedcontent/form.php @@ -0,0 +1,74 @@ + + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.org/ + */ + + $guid = 0; + $title = get_input('title',""); + $description = ""; + $address = get_input('address',""); + if ($address == "previous") + $address = $_SERVER['HTTP_REFERER']; + $tags = array(); + $access_id = ACCESS_PRIVATE; + $shares = array(); + $owner = $vars['user']; + +?> +
+
+ + +

+ +

+

+ +

+

+ +

+

+ +

+ +
+
diff --git a/mod/reportedcontent/views/default/reportedcontent/listing.php b/mod/reportedcontent/views/default/reportedcontent/listing.php new file mode 100644 index 000000000..5d3d3d997 --- /dev/null +++ b/mod/reportedcontent/views/default/reportedcontent/listing.php @@ -0,0 +1,43 @@ + +"; + + if($vars['entity']){ + + foreach($vars['entity'] as $report){ + + //get the user making the report + $user = get_user($report->owner_guid)->name; + $user_url = get_user($report->owner_guid)->getURL(); + + //find out if the report is current or archive + if($report->state == 'archived'){ + $reportedcontent_background = "archived_report"; + }else{ + $reportedcontent_background = "active_report"; + } + + echo "
"; + echo "

"; + if($report->state != 'archived') { + $url = elgg_add_action_tokens_to_url($vars['url'] . "action/reportedcontent/archive?item=" . $report->guid ); + echo "" . elgg_echo('reportedcontent:archive') . ""; + } + $url = elgg_add_action_tokens_to_url($vars['url'] . "action/reportedcontent/delete?item=" . $report->guid); + echo "" . elgg_echo('reportedcontent:delete') . "

"; + + echo "

" . elgg_echo('reportedcontent:by') . ": " . $user . ", " . friendly_time($report->time_created) . "

"; + echo "

" . elgg_echo('reportedcontent:objecttitle') . ": " . $report->title . "

"; + echo "

" . elgg_echo('reportedcontent:objecturl') . ": address}\">" . elgg_echo('reportedcontent:visit') . "

"; + echo "

" . elgg_echo('reportedcontent:moreinfo') . "

"; + echo "
"; + echo "

" . elgg_echo('reportedcontent:reason') . ": " .$report->description . "

"; + echo "
"; + + + } + + } + echo ""; +?> diff --git a/mod/reportedcontent/views/default/reportedcontent/owner_block.php b/mod/reportedcontent/views/default/reportedcontent/owner_block.php new file mode 100644 index 000000000..3624a86d2 --- /dev/null +++ b/mod/reportedcontent/views/default/reportedcontent/owner_block.php @@ -0,0 +1,9 @@ + +
+ +
diff --git a/mod/reportedcontent/views/default/reportedcontent/user_report.php b/mod/reportedcontent/views/default/reportedcontent/user_report.php new file mode 100644 index 000000000..ee6c7cbf8 --- /dev/null +++ b/mod/reportedcontent/views/default/reportedcontent/user_report.php @@ -0,0 +1,6 @@ + +

+wwwroot . "mod/reportedcontent/add.php?address='+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title)\">" . elgg_echo('reportedcontent:report') . ""; +?> +

\ No newline at end of file -- cgit v1.2.3