1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-30 21:40:43 +02:00

[feature/soft-delete] Simplification part2: user can see all item visibilities

If the user can see all visibilities, we can simply leave out the query part,
instead of adding a bunch of ANDs.

PHPBB3-9657
This commit is contained in:
Joas Schilling
2012-08-29 22:12:33 +02:00
parent 44ed05f567
commit a1e0690b6b
5 changed files with 36 additions and 14 deletions

View File

@@ -43,9 +43,15 @@ class phpbb_content_visibility
{
$status_ary[] = ITEM_DELETED;
if (sizeof($status_ary) == 3)
{
// The user can see all types, so we simplify this to an empty string,
// as we don't need to restrict anything on the query.
return '';
}
// If the user has m_restore, the rest of the function will not
// make more content visible, so we can return the query here.
// This avoids one OR in all queries
return $db->sql_in_set($table_alias . $mode . '_visibility', $status_ary);
}

View File

@@ -1855,7 +1855,8 @@ function update_forum_tracking_info($forum_id, $forum_last_post_time, $f_mark_ti
// Handle update of unapproved topics info.
// Only update for moderators having m_approve permission for the forum.
$sql_update_unapproved = ($auth->acl_get('m_approve', $forum_id)) ? '': 'AND t.topic_approved = 1';
$sql_update_unapproved = phpbb_content_visibility::get_visibility_sql('topic', $forum_id, 't.');
$sql_update_unapproved = ($sql_update_unapproved) ? ' AND ' . $sql_update_unapproved : '';
// Check the forum for any left unread topics.
// If there are none, we mark the forum as read.