aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/mcp/mcp_forum.php
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/includes/mcp/mcp_forum.php')
-rw-r--r--phpBB/includes/mcp/mcp_forum.php21
1 files changed, 15 insertions, 6 deletions
diff --git a/phpBB/includes/mcp/mcp_forum.php b/phpBB/includes/mcp/mcp_forum.php
index cf41df646d..2f02a21a3f 100644
--- a/phpBB/includes/mcp/mcp_forum.php
+++ b/phpBB/includes/mcp/mcp_forum.php
@@ -117,6 +117,7 @@ function mcp_forum_view($id, $mode, $action, $forum_info)
ORDER BY t.topic_type DESC, $sort_order_sql";
$result = $db->sql_query_limit($sql, $topics_per_page, $start);
+ $topic_list = $topic_tracking_info = array();
while ($row = $db->sql_fetchrow($result))
{
$topic_rows[$row['topic_id']] = $row;
@@ -124,15 +125,23 @@ function mcp_forum_view($id, $mode, $action, $forum_info)
}
$db->sql_freeresult($result);
- $topic_tracking_info = array();
- // Get topic tracking info
- if ($config['load_db_lastread'])
+ // If there is more than one page, but we have no topic list, then the start parameter is... erm... out of sync
+ if (!sizeof($topic_list) && $forum_topics && $start > 0)
{
- $topic_tracking_info = get_topic_tracking($forum_id, $topic_list, $topic_rows, array($forum_id => $forum_info['mark_time']), array());
+ redirect($url . "&i=$id&action=$action&mode=$mode");
}
- else
+
+ // Get topic tracking info
+ if (sizeof($topic_list))
{
- $topic_tracking_info = get_complete_topic_tracking($forum_id, $topic_list, array());
+ if ($config['load_db_lastread'])
+ {
+ $topic_tracking_info = get_topic_tracking($forum_id, $topic_list, $topic_rows, array($forum_id => $forum_info['mark_time']), array());
+ }
+ else
+ {
+ $topic_tracking_info = get_complete_topic_tracking($forum_id, $topic_list, array());
+ }
}
foreach ($topic_rows as $topic_id => $row)