aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/posting.php
diff options
context:
space:
mode:
authorMeik Sievertsen <acydburn@phpbb.com>2003-11-22 12:44:01 +0000
committerMeik Sievertsen <acydburn@phpbb.com>2003-11-22 12:44:01 +0000
commit755c0d845c40f9eead94e7d2e293565e3974722f (patch)
tree8197ea6e6f7cdd1d192d35ba89747349e2e30d9d /phpBB/posting.php
parent97d5bdb5d969fc54e0fb9edbeb9a11e352293e0a (diff)
downloadforums-755c0d845c40f9eead94e7d2e293565e3974722f.tar
forums-755c0d845c40f9eead94e7d2e293565e3974722f.tar.gz
forums-755c0d845c40f9eead94e7d2e293565e3974722f.tar.bz2
forums-755c0d845c40f9eead94e7d2e293565e3974722f.tar.xz
forums-755c0d845c40f9eead94e7d2e293565e3974722f.zip
some performance/bug fixes
git-svn-id: file:///svn/phpbb/trunk@4678 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/posting.php')
-rw-r--r--phpBB/posting.php32
1 files changed, 18 insertions, 14 deletions
diff --git a/phpBB/posting.php b/phpBB/posting.php
index 708f2fc7eb..e45bc497bf 100644
--- a/phpBB/posting.php
+++ b/phpBB/posting.php
@@ -136,7 +136,8 @@ if ($sql)
if ($forum_password)
{
- login_forum_box($row);
+ $forum_data = array('forum_id' => $forum_id, 'forum_password' => $forum_password);
+ login_forum_box($forum_data);
}
$post_subject = (in_array($mode, array('quote', 'edit', 'delete'))) ? $post_subject : $topic_title;
@@ -222,7 +223,7 @@ if ($sql)
$enable_magic_url = $drafts = FALSE;
// User own some drafts?
- if ($user->data['user_id'] != ANONYMOUS && $auth->acl_get('u_savedrafts'))
+ if ($user->data['user_id'] != ANONYMOUS && $auth->acl_get('u_savedrafts') && $mode != 'delete')
{
$sql = 'SELECT draft_id
FROM ' . DRAFTS_TABLE . '
@@ -1566,16 +1567,6 @@ function delete_post($mode, $post_id, $topic_id, $forum_id, $data)
break;
case 'delete_last_post':
- $sql = 'SELECT post_id
- FROM ' . POSTS_TABLE . "
- WHERE topic_id = $topic_id " .
- (($auth->acl_get('m_approve')) ? 'AND post_approved = 1' : '') . '
- ORDER BY post_time DESC';
- $result = $db->sql_query_limit($sql, 1);
-
- $row = $db->sql_fetchrow($result);
- $db->sql_freeresult($result);
-
if ($data['topic_type'] != POST_GLOBAL)
{
$sql_data['forum'] = 'forum_posts = forum_posts - 1';
@@ -1588,11 +1579,24 @@ function delete_post($mode, $post_id, $topic_id, $forum_id, $data)
}
$sql_data['topic'] = 'topic_bumped = 0, topic_bumper = 0, topic_replies_real = topic_replies_real - 1' . (($data['post_approved']) ? ', topic_replies = topic_replies - 1' : '');
$update = update_last_post_information('topic', $topic_id);
+
if (sizeof($update))
{
$sql_data['topic'] .= ', ' . implode(', ', $update);
+ $next_post_id = (int) str_replace('topic_last_post_id = ', '', $update[0]);
+ }
+ else
+ {
+ $sql = 'SELECT MAX(post_id) as last_post_id
+ FROM ' . POSTS_TABLE . "
+ WHERE topic_id = $topic_id " .
+ (($auth->acl_get('m_approve')) ? 'AND post_approved = 1' : '');
+ $result = $db->sql_query($sql);
+ $row = $db->sql_fetchrow($result);
+ $db->sql_freeresult($result);
+
+ $next_post_id = (int) $row['last_post_id'];
}
- $next_post_id = (int) $row['post_id'];
break;
case 'delete':
@@ -2015,7 +2019,7 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
{
$sql_data['forum']['stat'][] = implode(', ', update_last_post_information('forum', $data['forum_id']));
}
- else
+ else if (!$auth->acl_get('f_moderate', $data['forum_id']))
{
$update_sql = 'forum_last_post_id = ' . $data['post_id'];
$update_sql .= ", forum_last_post_time = $current_time";