diff options
author | Joas Schilling <nickvergessen@gmx.de> | 2012-10-01 22:44:39 +0200 |
---|---|---|
committer | Joas Schilling <nickvergessen@gmx.de> | 2012-10-01 22:44:39 +0200 |
commit | b629b2cd95a9da67376f7a628c15199007e2ebd6 (patch) | |
tree | 2d6f56ea3bf15d17e1cba873d506bf3e1d3d1698 /phpBB/includes | |
parent | 4a65940e6206aef6b85a0aacfb5324ecabf76e12 (diff) | |
download | forums-b629b2cd95a9da67376f7a628c15199007e2ebd6.tar forums-b629b2cd95a9da67376f7a628c15199007e2ebd6.tar.gz forums-b629b2cd95a9da67376f7a628c15199007e2ebd6.tar.bz2 forums-b629b2cd95a9da67376f7a628c15199007e2ebd6.tar.xz forums-b629b2cd95a9da67376f7a628c15199007e2ebd6.zip |
[feature/soft-delete] Add unit tests for get_global_visibility_sql()
PHPBB3-9657
Diffstat (limited to 'phpBB/includes')
-rw-r--r-- | phpBB/includes/content_visibility.php | 12 |
1 files changed, 10 insertions, 2 deletions
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); |