From bb7d294190fec9f0ef83787d6ae5a57266ad7091 Mon Sep 17 00:00:00 2001 From: brunoais Date: Mon, 9 Feb 2015 10:44:12 +0000 Subject: [PATCH] [ticket/13592] Allow full override of get_visibility_sql() PHPBB3-13592 --- phpBB/phpbb/content_visibility.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/phpBB/phpbb/content_visibility.php b/phpBB/phpbb/content_visibility.php index 8db8bcc3be..a324c6b8b5 100644 --- a/phpBB/phpbb/content_visibility.php +++ b/phpBB/phpbb/content_visibility.php @@ -145,6 +145,7 @@ class content_visibility { $where_sql = ''; + $get_visibility_sql_overwrite = false; /** * Allow changing the result of calling get_visibility_sql * @@ -153,6 +154,9 @@ class content_visibility * @var string mode Either "topic" or "post" depending on the query this is being used in * @var array forum_id The forum id in which the search is made. * @var string table_alias Table alias to prefix in SQL queries + * @var mixed get_visibility_sql_overwrite If a string, forces the function to return get_forums_visibility_sql_overwrite after executing the event + * If false, get_visibility_sql continues normally + * It must be either boolean or string * @since 3.1.4-RC1 */ $vars = array( @@ -160,9 +164,15 @@ class content_visibility 'mode', 'forum_id', 'table_alias', + 'get_visibility_sql_overwrite', ); extract($this->phpbb_dispatcher->trigger_event('core.phpbb_content_get_visibility_sql_visibility_before', compact($vars))); + if ($get_visibility_sql_overwrite !== false) + { + return $get_visibility_sql_overwrite; + } + if ($this->auth->acl_get('m_approve', $forum_id)) { return $where_sql . '1 = 1';