mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-21 18:44:37 +02:00
[feature/soft-delete] Fix a bug in sync() and set_post_visibility()
PHPBB3-9657
This commit is contained in:
@ -242,12 +242,6 @@ class phpbb_content_visibility
|
||||
{
|
||||
global $db;
|
||||
|
||||
// if we're changing the starter, we need to change the rest of the topic
|
||||
if ($is_starter && !$is_latest)
|
||||
{
|
||||
return self::set_topic_visibility($visibility, $topic_id, $forum_id);
|
||||
}
|
||||
|
||||
if ($post_id)
|
||||
{
|
||||
$where_sql = 'post_id = ' . (int) $post_id;
|
||||
@ -274,8 +268,9 @@ class phpbb_content_visibility
|
||||
$db->sql_query($sql);
|
||||
|
||||
// Sync the first/last topic information if needed
|
||||
if ($is_starter || $is_latest)
|
||||
if (!$is_starter && $is_latest)
|
||||
{
|
||||
// update_post_information can only update the last post info ...
|
||||
if ($topic_id)
|
||||
{
|
||||
update_post_information('topic', $topic_id, false);
|
||||
@ -285,6 +280,12 @@ class phpbb_content_visibility
|
||||
update_post_information('forum', $forum_id, false);
|
||||
}
|
||||
}
|
||||
else if (($is_starter || $is_latest) && $topic_id)
|
||||
{
|
||||
// ... so we need to use sync, if the first post is changed.
|
||||
// The forum is resynced recursive by sync() itself.
|
||||
sync('topic', 'topic_id', $topic_id, true);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1908,12 +1908,12 @@ function sync($mode, $where_type = '', $where_ids = '', $resync_parents = false,
|
||||
unset($delete_topics[$topic_id]);
|
||||
|
||||
$topic_data[$topic_id]['replies_real'] += $row['total_posts'];
|
||||
$topic_data[$topic_id]['first_post_id'] = (!$topic_data[$topic_id]['first_post_id']) ? $row['first_post_id'] : min($topic_data[$topic_id]['first_post_id'], $row['first_post_id']);
|
||||
|
||||
if ($row['post_visibility'] || !$topic_data[$topic_id]['last_post_id'])
|
||||
if ($row['post_visibility'] == ITEM_APPROVED)
|
||||
{
|
||||
$topic_data[$topic_id]['replies'] = $row['total_posts'] - 1;
|
||||
$topic_data[$topic_id]['first_post_id'] = $row['first_post_id'];
|
||||
$topic_data[$topic_id]['last_post_id'] = $row['last_post_id'];
|
||||
$topic_data[$topic_id]['replies'] = $row['total_posts'] - 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user