From 5df9a4547337ef90300c21d0f997bc67e43cba9e Mon Sep 17 00:00:00 2001 From: Tristan Darricau Date: Thu, 6 Aug 2015 14:20:06 +0200 Subject: [ticket/13645] Proper OOP for feeds PHPBB3-13645 --- phpBB/phpbb/feed/attachments_base.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'phpBB/phpbb/feed/attachments_base.php') diff --git a/phpBB/phpbb/feed/attachments_base.php b/phpBB/phpbb/feed/attachments_base.php index 04812f1570..b14dafe15a 100644 --- a/phpBB/phpbb/feed/attachments_base.php +++ b/phpBB/phpbb/feed/attachments_base.php @@ -16,7 +16,7 @@ namespace phpbb\feed; /** * Abstract class for feeds displaying attachments */ -abstract class attachments_base extends \phpbb\feed\base +abstract class attachments_base extends base { /** * Attachments that may be displayed -- cgit v1.2.1 From 7cad25e4cbed2efbf891001cd2664f825674d5a7 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Sun, 25 Dec 2016 17:54:11 +0100 Subject: [ticket/14838] Do not query full attachments table in feeds The fetch_attachments() will also now throw a runtime exception if a feed tries to do this nonetheless. PHPBB3-14838 --- phpBB/phpbb/feed/attachments_base.php | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'phpBB/phpbb/feed/attachments_base.php') diff --git a/phpBB/phpbb/feed/attachments_base.php b/phpBB/phpbb/feed/attachments_base.php index 04812f1570..f74560c787 100644 --- a/phpBB/phpbb/feed/attachments_base.php +++ b/phpBB/phpbb/feed/attachments_base.php @@ -25,8 +25,11 @@ abstract class attachments_base extends \phpbb\feed\base /** * Retrieve the list of attachments that may be displayed + * + * @param array $post_ids Specify for which post IDs to fetch the attachments (optional) + * @param array $topic_ids Specify for which topic IDs to fetch the attachments (optional) */ - protected function fetch_attachments() + protected function fetch_attachments($post_ids = array(), $topic_ids = array()) { $sql_array = array( 'SELECT' => 'a.*', @@ -37,7 +40,20 @@ abstract class attachments_base extends \phpbb\feed\base 'ORDER_BY' => 'a.filetime DESC, a.post_msg_id ASC', ); - if (isset($this->topic_id)) + if (!empty($post_ids)) + { + $sql_array['WHERE'] .= 'AND ' . $this->db->sql_in_set('a.post_msg_id', $post_ids); + } + else if (!empty($topic_ids)) + { + if (isset($this->topic_id)) + { + $topic_ids[] = $this->topic_id; + } + + $sql_array['WHERE'] .= 'AND ' . $this->db->sql_in_set('a.topic_id', $topic_ids); + } + else if (isset($this->topic_id)) { $sql_array['WHERE'] .= 'AND a.topic_id = ' . (int) $this->topic_id; } @@ -51,6 +67,11 @@ abstract class attachments_base extends \phpbb\feed\base ); $sql_array['WHERE'] .= 'AND t.forum_id = ' . (int) $this->forum_id; } + else + { + // Do not allow querying the full attachments table + throw new \RuntimeException($this->user->lang('INVALID_FEED_ATTACHMENTS')); + } $sql = $this->db->sql_build_query('SELECT', $sql_array); $result = $this->db->sql_query($sql); @@ -69,7 +90,6 @@ abstract class attachments_base extends \phpbb\feed\base public function open() { parent::open(); - $this->fetch_attachments(); } /** -- cgit v1.2.1 From dd89a369f3166ed4a3730ac8a2fb6eb5608ac284 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Wed, 4 Jan 2017 17:16:36 +0100 Subject: [ticket/14838] Remove obsolete overriding method PHPBB3-14838 --- phpBB/phpbb/feed/attachments_base.php | 8 -------- 1 file changed, 8 deletions(-) (limited to 'phpBB/phpbb/feed/attachments_base.php') diff --git a/phpBB/phpbb/feed/attachments_base.php b/phpBB/phpbb/feed/attachments_base.php index f74560c787..df8f29a626 100644 --- a/phpBB/phpbb/feed/attachments_base.php +++ b/phpBB/phpbb/feed/attachments_base.php @@ -84,14 +84,6 @@ abstract class attachments_base extends \phpbb\feed\base $this->db->sql_freeresult($result); } - /** - * {@inheritDoc} - */ - public function open() - { - parent::open(); - } - /** * Get attachments related to a given post * -- cgit v1.2.1