mirror of
https://github.com/phpbb/phpbb.git
synced 2025-05-04 06:39:14 +02:00
[feature/soft-delete] Clean the code of hide_post() and rely on postcount
PHPBB3-9567
This commit is contained in:
parent
05f2366755
commit
c22d5bd37c
@ -316,8 +316,7 @@ class phpbb_content_visibility
|
||||
}
|
||||
|
||||
/**
|
||||
* Do the required math to hide a complete topic (going from approved to
|
||||
* unapproved or from approved to deleted)
|
||||
* Do the required math to hide a complete topic (going from approved to deleted)
|
||||
* @param $topic_id - int - the topic to act on
|
||||
* @param $forum_id - int - the forum where the topic resides
|
||||
* @param $topic_row - array - data about the topic, may be empty at call time
|
||||
@ -326,7 +325,7 @@ class phpbb_content_visibility
|
||||
*/
|
||||
static public function hide_topic($topic_id, $forum_id, &$topic_row, &$sql_data)
|
||||
{
|
||||
global $auth, $config, $db;
|
||||
global $db;
|
||||
|
||||
// Do we need to grab some topic informations?
|
||||
if (!sizeof($topic_row))
|
||||
@ -339,9 +338,6 @@ class phpbb_content_visibility
|
||||
$db->sql_freeresult($result);
|
||||
}
|
||||
|
||||
// If this is the only post remaining we do not need to decrement topic_replies.
|
||||
// Also do not decrement if first post - then the topic_replies will not be adjusted if approving the topic again.
|
||||
|
||||
// If this is an edited topic or the first post the topic gets completely disapproved later on...
|
||||
$sql_data[FORUMS_TABLE] = 'forum_topics = forum_topics - 1';
|
||||
$sql_data[FORUMS_TABLE] .= ', forum_posts = forum_posts - ' . ($topic_row['topic_replies'] + 1);
|
||||
@ -363,44 +359,31 @@ class phpbb_content_visibility
|
||||
}
|
||||
|
||||
/**
|
||||
* Do the required math to hide a single post (going from approved to
|
||||
* unapproved or from approved to deleted)
|
||||
* Do the required math to hide a single post (going from approved to deleted)
|
||||
* Notably, we do _not_ need the post ID to do this operation. We're only changing statistic caches
|
||||
* @param $forum_id - int - the forum where the topic resides
|
||||
* @param $current_time - int - passed for consistency instead of calling time() internally
|
||||
* @param $topic_row - array - contains information from the topics table about given topic
|
||||
* @param $data - array - contains information from the topics table about given topic
|
||||
* @param $sql_data - array - populated with the SQL changes, may be empty at call time
|
||||
* @return void
|
||||
*/
|
||||
static public function hide_post($forum_id, $current_time, $topic_row, &$sql_data)
|
||||
//static public function remove_post_from_postcount($forum_id, $current_time, $data, &$sql_data)
|
||||
static public function hide_post($forum_id, $current_time, $data, &$sql_data)
|
||||
{
|
||||
global $auth, $config, $db;
|
||||
|
||||
// initialize the array if needed (php throws E_NOTICE when .= is used
|
||||
// on a non-existing array element)
|
||||
if (empty($sql_data[TOPICS_TABLE]))
|
||||
$sql_data[TOPICS_TABLE] = 'topic_last_view_time = ' . $current_time;
|
||||
if ($data['topic_replies'] > 0)
|
||||
{
|
||||
$sql_data[TOPICS_TABLE] = '';
|
||||
$sql_data[TOPICS_TABLE] .= ', topic_replies = topic_replies - 1,';
|
||||
}
|
||||
|
||||
if ($topic_row['topic_replies'] > 0)
|
||||
{
|
||||
$sql_data[TOPICS_TABLE] = 'topic_replies = topic_replies - 1,';
|
||||
}
|
||||
$sql_data[TOPICS_TABLE] .= ' topic_last_view_time = ' . $current_time;
|
||||
|
||||
$sql_data[FORUMS_TABLE] = 'forum_posts = forum_posts - 1';
|
||||
|
||||
set_config_count('num_posts', -1, true);
|
||||
|
||||
/**
|
||||
* @todo: this is wrong, it should rely on post_postcount
|
||||
*
|
||||
if ($auth->acl_get('f_postcount', $forum_id))
|
||||
if ($data['post_postcount'])
|
||||
{
|
||||
$sql_data[USERS_TABLE] = 'user_posts = user_posts - 1';
|
||||
}
|
||||
*/
|
||||
|
||||
set_config_count('num_posts', -1, true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user