aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/functions_posting.php
diff options
context:
space:
mode:
authorNils Adermann <naderman@naderman.de>2007-04-15 10:59:26 +0000
committerNils Adermann <naderman@naderman.de>2007-04-15 10:59:26 +0000
commitfb2454314450ad36dc5c1480749dad51d9d1c87e (patch)
treedd503ebacd6c8b112193fb3739e779fce81333b8 /phpBB/includes/functions_posting.php
parent5cde784419c77fe808e03b47007ef8f12fa83049 (diff)
downloadforums-fb2454314450ad36dc5c1480749dad51d9d1c87e.tar
forums-fb2454314450ad36dc5c1480749dad51d9d1c87e.tar.gz
forums-fb2454314450ad36dc5c1480749dad51d9d1c87e.tar.bz2
forums-fb2454314450ad36dc5c1480749dad51d9d1c87e.tar.xz
forums-fb2454314450ad36dc5c1480749dad51d9d1c87e.zip
- m_warn is no longer a local moderation permission
- magic urls should properly use html entities - speed up posting on big boards, MAX(post_id) query can be simplified a lot in certain cases - user IP list should be labelled with "Other users" [Bug #9707] git-svn-id: file:///svn/phpbb/trunk@7355 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes/functions_posting.php')
-rw-r--r--phpBB/includes/functions_posting.php20
1 files changed, 13 insertions, 7 deletions
diff --git a/phpBB/includes/functions_posting.php b/phpBB/includes/functions_posting.php
index 9e4a5c0843..c5eb47a6ac 100644
--- a/phpBB/includes/functions_posting.php
+++ b/phpBB/includes/functions_posting.php
@@ -99,10 +99,12 @@ function generate_smilies($mode, $forum_id)
* Update last post information
* Should be used instead of sync() if only the last post information are out of sync... faster
*
-* @param string $type Can be forum|topic
-* @param mixed $ids topic/forum ids
+* @param string $type Can be forum|topic
+* @param mixed $ids topic/forum ids
+* @param bool $return_update_sql true: SQL query shall be returned, false: execute SQL
+* @param int $min_post_id 0: no bottom limit known, 1..n: MAX(post_id) >= n
*/
-function update_post_information($type, $ids, $return_update_sql = false)
+function update_post_information($type, $ids, $return_update_sql = false, $min_post_id = 0)
{
global $db;
@@ -113,6 +115,8 @@ function update_post_information($type, $ids, $return_update_sql = false)
$update_sql = $empty_forums = $not_empty_forums = array();
+ $min_post_id_sql = ($min_post_id) ? ' AND p.post_id >= ' . $min_post_id : '';
+
if ($type != 'topic')
{
$topic_join = ', ' . TOPICS_TABLE . ' t';
@@ -130,7 +134,8 @@ function update_post_information($type, $ids, $return_update_sql = false)
FROM ' . POSTS_TABLE . " p $topic_join
WHERE " . $db->sql_in_set('p.' . $type . '_id', $ids) . "
$topic_condition
- AND p.post_approved = 1";
+ AND p.post_approved = 1
+ $min_post_id_sql";
}
else
{
@@ -139,6 +144,7 @@ function update_post_information($type, $ids, $return_update_sql = false)
WHERE " . $db->sql_in_set('p.' . $type . '_id', $ids) . "
$topic_condition
AND p.post_approved = 1
+ $min_post_id_sql
GROUP BY p.{$type}_id";
}
$result = $db->sql_query($sql);
@@ -1872,14 +1878,14 @@ function submit_post($mode, $subject, $username, $topic_type, &$poll, &$data, $u
{
if ($topic_type != POST_GLOBAL)
{
- $update_sql = update_post_information('forum', $data['forum_id'], true);
+ $update_sql = update_post_information('forum', $data['forum_id'], true, $data['post_id']);
if (sizeof($update_sql))
{
$sql_data[FORUMS_TABLE]['stat'][] = implode(', ', $update_sql[$data['forum_id']]);
}
}
- $update_sql = update_post_information('topic', $data['topic_id'], true);
+ $update_sql = update_post_information('topic', $data['topic_id'], true, $data['post_id']);
if (sizeof($update_sql))
{
$sql_data[TOPICS_TABLE]['stat'][] = implode(', ', $update_sql[$data['topic_id']]);
@@ -1888,7 +1894,7 @@ function submit_post($mode, $subject, $username, $topic_type, &$poll, &$data, $u
if ($make_global)
{
- $update_sql = update_post_information('forum', $data['forum_id'], true);
+ $update_sql = update_post_information('forum', $data['forum_id'], true, $data['post_id']);
if (sizeof($update_sql))
{
$sql_data[FORUMS_TABLE]['stat'][] = implode(', ', $update_sql[$data['forum_id']]);