Line 368 | Line 368 |
---|
*/ function phpbb_mcp_sorting($mode, &$sort_days, &$sort_key, &$sort_dir, &$sort_by_sql, &$sort_order_sql, &$total, $forum_id = 0, $topic_id = 0, $where_sql = 'WHERE') {
|
*/ function phpbb_mcp_sorting($mode, &$sort_days, &$sort_key, &$sort_dir, &$sort_by_sql, &$sort_order_sql, &$total, $forum_id = 0, $topic_id = 0, $where_sql = 'WHERE') {
|
global $db, $user, $auth, $template;
| global $db, $user, $auth, $template, $phpbb_dispatcher;
|
$sort_days = request_var('st', 0); $min_time = ($sort_days) ? time() - ($sort_days * 86400) : 0;
| $sort_days = request_var('st', 0); $min_time = ($sort_days) ? time() - ($sort_days * 86400) : 0;
|
Line 388 | Line 388 |
---|
if (!$auth->acl_get('m_approve', $forum_id)) {
|
if (!$auth->acl_get('m_approve', $forum_id)) {
|
$sql .= 'AND topic_visibility = ' . ITEM_APPROVED;
| $sql .= ' AND topic_visibility = ' . ITEM_APPROVED;
|
} break;
| } break;
|
Line 404 | Line 404 |
---|
if (!$auth->acl_get('m_approve', $forum_id)) {
|
if (!$auth->acl_get('m_approve', $forum_id)) {
|
$sql .= 'AND post_visibility = ' . ITEM_APPROVED;
| $sql .= ' AND post_visibility = ' . ITEM_APPROVED;
|
} break;
| } break;
|
Line 552 | Line 552 |
---|
$limit_time_sql = ($min_time) ? "AND l.log_time >= $min_time" : ''; break; }
|
$limit_time_sql = ($min_time) ? "AND l.log_time >= $min_time" : ''; 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])) {
| if (!isset($sort_by_sql[$sort_key])) {
|
Line 584 | Line 634 |
---|
$total = (int) $db->sql_fetchfield('total'); $db->sql_freeresult($result); }
|
$total = (int) $db->sql_fetchfield('total'); $db->sql_freeresult($result); }
|
else
| else if ($total < -1)
|
{ $total = -1; }
| { $total = -1; }
|