From b629b2cd95a9da67376f7a628c15199007e2ebd6 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Mon, 1 Oct 2012 22:44:39 +0200 Subject: [feature/soft-delete] Add unit tests for get_global_visibility_sql() PHPBB3-9657 --- phpBB/includes/content_visibility.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'phpBB/includes') diff --git a/phpBB/includes/content_visibility.php b/phpBB/includes/content_visibility.php index a598d863a4..e927460a49 100644 --- a/phpBB/includes/content_visibility.php +++ b/phpBB/includes/content_visibility.php @@ -135,12 +135,20 @@ class phpbb_content_visibility * @param $table_alias string - Table alias to prefix in SQL queries * @return string with the appropriate combination SQL logic for topic/post_visibility */ - static public function get_visibility_sql_global($mode, $exclude_forum_ids = array(), $table_alias = '') + static public function get_global_visibility_sql($mode, $exclude_forum_ids = array(), $table_alias = '') { global $auth, $db, $user; // users can always see approved posts - $where_sql = "($table_alias{$mode}_visibility = " . ITEM_APPROVED; + if (sizeof($exclude_forum_ids)) + { + $where_sql = '((' . $db->sql_in_set($table_alias . 'forum_id', $exclude_forum_ids, true, true) . " + AND $table_alias{$mode}_visibility = " . ITEM_APPROVED . ')'; + } + else + { + $where_sql = "($table_alias{$mode}_visibility = " . ITEM_APPROVED; + } // in set notation: {approve_forums} = {m_approve} - {exclude_forums} $approve_forums = array_diff(array_keys($auth->acl_getf('m_approve', true)), $exclude_forum_ids); -- cgit v1.2.1