aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/functions_mcp.php
diff options
context:
space:
mode:
authorMarc Alexander <admin@m-a-styles.de>2015-03-06 14:30:11 +0100
committerMarc Alexander <admin@m-a-styles.de>2015-03-06 14:30:11 +0100
commit3d7def4196808277025a021399e01ab64bde9e89 (patch)
tree9d51e74841d5600bf520e703b11ab75441e6db28 /phpBB/includes/functions_mcp.php
parentd087d856182242a4ec06d703dfc631d70751440b (diff)
parentc37d5f9b7c3c03a8f1dd4c130054caa922f8b34b (diff)
downloadforums-3d7def4196808277025a021399e01ab64bde9e89.tar
forums-3d7def4196808277025a021399e01ab64bde9e89.tar.gz
forums-3d7def4196808277025a021399e01ab64bde9e89.tar.bz2
forums-3d7def4196808277025a021399e01ab64bde9e89.tar.xz
forums-3d7def4196808277025a021399e01ab64bde9e89.zip
Merge pull request #3450 from brunoais/ticket/13142
[ticket/13142] Before query to get the total number of reports
Diffstat (limited to 'phpBB/includes/functions_mcp.php')
-rw-r--r--phpBB/includes/functions_mcp.php74
1 files changed, 51 insertions, 23 deletions
diff --git a/phpBB/includes/functions_mcp.php b/phpBB/includes/functions_mcp.php
index eb4fc6d44b..ed96dcf338 100644
--- a/phpBB/includes/functions_mcp.php
+++ b/phpBB/includes/functions_mcp.php
@@ -423,28 +423,6 @@ function phpbb_mcp_sorting($mode, &$sort_days, &$sort_key, &$sort_dir, &$sort_by
AND t.topic_id = p.topic_id
AND t.topic_visibility <> p.post_visibility';
- /**
- * This event allows you to control the SQL query to retrieve the list of unapproved and deleted posts
- *
- * @event core.mcp_sorting_unapproved_deleted_posts_query_before
- * @var string sql The current SQL search string
- * @var int forum_id The forum id of the posts the user is trying to access
- * @var int topic_id The topic id of the posts the user is trying to access
- * @var int min_time Integer with the minimum post time that the user is searching for
- * @var int visibility_const Integer with one of the possible ITEM_* constant values
- * @var string where_sql Extra information included in the WHERE clause. It must end with "WHERE" or "AND" or "OR"
- * @since 3.1.4-RC1
- */
- $vars = array(
- 'sql',
- 'forum_id',
- 'topic_id',
- 'min_time',
- 'visibility_const',
- 'where_sql',
- );
- extract($phpbb_dispatcher->trigger_event('core.mcp_sorting_unapproved_deleted_posts_query_before', compact($vars)));
-
if ($min_time)
{
$sql .= ' AND post_time >= ' . $min_time;
@@ -575,6 +553,56 @@ function phpbb_mcp_sorting($mode, &$sort_days, &$sort_key, &$sort_dir, &$sort_by
break;
}
+ // Default total to -1 to allow editing by the event
+ $total = -1;
+
+ /**
+ * This event allows you to control the SQL query used to get the total number
+ * of reports the user can access.
+ *
+ * This total is used for the pagination and for displaying the total number
+ * of reports to the user
+ *
+ *
+ * @event core.mcp_sorting_query_before
+ * @var string sql The current SQL search string
+ * @var string mode An id related to the module(s) the user is viewing
+ * @var string type Which kind of information is this being used for displaying. Posts, topics, etc...
+ * @var int forum_id The forum id of the posts the user is trying to access, if not 0
+ * @var int topic_id The topic id of the posts the user is trying to access, if not 0
+ * @var int sort_days The max age of the oldest report to be shown, in days
+ * @var string sort_key The way the user has decided to sort the data.
+ * The valid values must be in the keys of the sort_by_* variables
+ * @var string sort_dir Either 'd' for "DESC" or 'a' for 'ASC' in the SQL query
+ * @var int limit_days The possible max ages of the oldest report for the user to choose, in days.
+ * @var array sort_by_sql SQL text (values) for the possible names of the ways of sorting data (keys).
+ * @var array sort_by_text Language text (values) for the possible names of the ways of sorting data (keys).
+ * @var int min_time Integer with the minimum post time that the user is searching for
+ * @var int limit_time_sql Time limiting options used in the SQL query.
+ * @var int total The total number of reports that exist. Only set if you want to override the result
+ * @var string where_sql Extra information included in the WHERE clause. It must end with "WHERE" or "AND" or "OR".
+ * Set to "WHERE" and set total above -1 to override the total value
+ * @since 3.1.4-RC1
+ */
+ $vars = array(
+ 'sql',
+ 'mode',
+ 'type',
+ 'forum_id',
+ 'topic_id',
+ 'sort_days',
+ 'sort_key',
+ 'sort_dir',
+ 'limit_days',
+ 'sort_by_sql',
+ 'sort_by_text',
+ 'min_time',
+ 'limit_time_sql',
+ 'total',
+ 'where_sql',
+ );
+ extract($phpbb_dispatcher->trigger_event('core.mcp_sorting_query_before', compact($vars)));
+
if (!isset($sort_by_sql[$sort_key]))
{
$sort_key = $default_key;
@@ -606,7 +634,7 @@ function phpbb_mcp_sorting($mode, &$sort_days, &$sort_key, &$sort_dir, &$sort_by
$total = (int) $db->sql_fetchfield('total');
$db->sql_freeresult($result);
}
- else
+ else if ($total < -1)
{
$total = -1;
}