mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-27 21:58:52 +00:00
Added: fetch posts the other way (see forum)
git-svn-id: file:///svn/phpbb/trunk@4472 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
parent
23a98e5530
commit
e1ba6d3c52
1 changed files with 37 additions and 5 deletions
|
@ -289,7 +289,7 @@ if ($forum_data['forum_type'] == FORUM_POST)
|
||||||
|
|
||||||
// Grab all topic data
|
// Grab all topic data
|
||||||
$total_topics = 0;
|
$total_topics = 0;
|
||||||
$row_ary = array();
|
$rowset = array();
|
||||||
|
|
||||||
switch (SQL_LAYER)
|
switch (SQL_LAYER)
|
||||||
{
|
{
|
||||||
|
@ -303,6 +303,23 @@ if ($forum_data['forum_type'] == FORUM_POST)
|
||||||
$sql_approved = ($auth->acl_get('m_approve', $forum_id)) ? '' : 'AND t.topic_approved = 1';
|
$sql_approved = ($auth->acl_get('m_approve', $forum_id)) ? '' : 'AND t.topic_approved = 1';
|
||||||
$sql_select = (($config['load_db_lastread'] || $config['load_db_track']) && $user->data['user_id'] != ANONYMOUS) ? ', tt.mark_type, tt.mark_time' : '';
|
$sql_select = (($config['load_db_lastread'] || $config['load_db_track']) && $user->data['user_id'] != ANONYMOUS) ? ', tt.mark_type, tt.mark_time' : '';
|
||||||
|
|
||||||
|
// If the user is trying to reach late pages, start searching from the end
|
||||||
|
$store_reverse = FALSE;
|
||||||
|
$limit = $config['topics_per_page'];
|
||||||
|
|
||||||
|
if ($start > $topics_count / 2)
|
||||||
|
{
|
||||||
|
$store_reverse = TRUE;
|
||||||
|
|
||||||
|
if ($start + $config['topics_per_page'] > $topics_count)
|
||||||
|
{
|
||||||
|
$limit = min($config['topics_per_page'], max(0, $topics_count - $start));
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql_sort_order = preg_replace('/(ASC|DESC)/e', "('\$1' == 'ASC') ? 'DESC' : 'ASC'", $sql_sort_order);
|
||||||
|
$start = max(0, $topics_count - $limit - $start);
|
||||||
|
}
|
||||||
|
|
||||||
$sql = "SELECT t.* $sql_select
|
$sql = "SELECT t.* $sql_select
|
||||||
FROM $sql_from
|
FROM $sql_from
|
||||||
WHERE t.forum_id IN ($forum_id, 0)
|
WHERE t.forum_id IN ($forum_id, 0)
|
||||||
|
@ -311,8 +328,15 @@ if ($forum_data['forum_type'] == FORUM_POST)
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
while($row = $db->sql_fetchrow($result))
|
while($row = $db->sql_fetchrow($result))
|
||||||
|
{
|
||||||
|
if ($store_reverse)
|
||||||
|
{
|
||||||
|
array_unshift($rowset, $row);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
$rowset[] = $row;
|
$rowset[] = $row;
|
||||||
|
}
|
||||||
$total_topics++;
|
$total_topics++;
|
||||||
}
|
}
|
||||||
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
||||||
|
@ -324,11 +348,18 @@ if ($forum_data['forum_type'] == FORUM_POST)
|
||||||
$sql_approved
|
$sql_approved
|
||||||
$sql_limit_time
|
$sql_limit_time
|
||||||
ORDER BY t.topic_type DESC, $sql_sort_order";
|
ORDER BY t.topic_type DESC, $sql_sort_order";
|
||||||
$result = $db->sql_query_limit($sql, $config['topics_per_page'], $start);
|
$result = $db->sql_query_limit($sql, $limit, $start);
|
||||||
|
|
||||||
while($row = $db->sql_fetchrow($result))
|
while($row = $db->sql_fetchrow($result))
|
||||||
|
{
|
||||||
|
if ($store_reverse)
|
||||||
|
{
|
||||||
|
array_unshift($rowset, $row);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
$rowset[] = $row;
|
$rowset[] = $row;
|
||||||
|
}
|
||||||
$total_topics++;
|
$total_topics++;
|
||||||
}
|
}
|
||||||
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
||||||
|
@ -526,7 +557,8 @@ if ($forum_data['forum_type'] == FORUM_POST)
|
||||||
'S_TOPIC_UNAPPROVED' => (!$row['topic_approved'] && $auth->acl_gets('m_approve', $forum_id)) ? TRUE : FALSE,
|
'S_TOPIC_UNAPPROVED' => (!$row['topic_approved'] && $auth->acl_gets('m_approve', $forum_id)) ? TRUE : FALSE,
|
||||||
|
|
||||||
'U_VIEW_TOPIC' => $view_topic_url,
|
'U_VIEW_TOPIC' => $view_topic_url,
|
||||||
'U_MCP_REPORT' => "mcp.$phpEx$SID&mode=reports&t=$topic_id")
|
'U_MCP_REPORT' => "mcp.$phpEx?sid={$user->session_id}&mode=reports&t=$topic_id",
|
||||||
|
'U_MCP_QUEUE' => "mcp.$phpEx?sid={$user->session_id}&mode=mod_queue&t=$topic_id")
|
||||||
);
|
);
|
||||||
|
|
||||||
$s_type_switch = ($row['topic_type'] == POST_ANNOUNCE || $row['topic_type'] == POST_GLOBAL) ? 1 : 0;
|
$s_type_switch = ($row['topic_type'] == POST_ANNOUNCE || $row['topic_type'] == POST_GLOBAL) ? 1 : 0;
|
||||||
|
|
Loading…
Add table
Reference in a new issue