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/helper.php | 78 ++++++++++++++++++++++----------------------- 1 file changed, 39 insertions(+), 39 deletions(-) (limited to 'phpBB/phpbb/feed/helper.php') diff --git a/phpBB/phpbb/feed/helper.php b/phpBB/phpbb/feed/helper.php index 198134cdcf..75736bc981 100644 --- a/phpBB/phpbb/feed/helper.php +++ b/phpBB/phpbb/feed/helper.php @@ -1,21 +1,21 @@ -* @license GNU General Public License, version 2 (GPL-2.0) -* -* For full copyright and license information, please see -* the docs/CREDITS.txt file. -* -*/ + * + * This file is part of the phpBB Forum Software package. + * + * @copyright (c) phpBB Limited + * @license GNU General Public License, version 2 (GPL-2.0) + * + * For full copyright and license information, please see + * the docs/CREDITS.txt file. + * + */ namespace phpbb\feed; /** -* Class with some helpful functions used in feeds -*/ + * Class with some helpful functions used in feeds + */ class helper { /** @var \phpbb\config\config */ @@ -31,13 +31,13 @@ class helper protected $phpEx; /** - * Constructor - * - * @param \phpbb\config\config $config Config object - * @param \phpbb\user $user User object - * @param string $phpbb_root_path Root path - * @param string $phpEx PHP file extension - */ + * Constructor + * + * @param \phpbb\config\config $config Config object + * @param \phpbb\user $user User object + * @param string $phpbb_root_path Root path + * @param string $phpEx PHP file extension + */ public function __construct(\phpbb\config\config $config, \phpbb\user $user, $phpbb_root_path, $phpEx) { $this->config = $config; @@ -47,8 +47,8 @@ class helper } /** - * Run links through append_sid(), prepend generate_board_url() and remove session id - */ + * Run links through append_sid(), prepend generate_board_url() and remove session id + */ public function get_board_url() { static $board_url; @@ -62,16 +62,16 @@ class helper } /** - * Run links through append_sid(), prepend generate_board_url() and remove session id - */ + * Run links through append_sid(), prepend generate_board_url() and remove session id + */ public function append_sid($url, $params) { return append_sid($this->get_board_url() . '/' . $url, $params, true, ''); } /** - * Generate ISO 8601 date string (RFC 3339) - */ + * Generate ISO 8601 date string (RFC 3339) + */ public function format_date($time) { static $zone_offset; @@ -87,16 +87,16 @@ class helper } /** - * Generate text content - * - * @param string $content is feed text content - * @param string $uid is bbcode_uid - * @param string $bitfield is bbcode bitfield - * @param int $options bbcode flag options - * @param int $forum_id is the forum id - * @param array $post_attachments is an array containing the attachments and their respective info - * @return string the html content to be printed for the feed - */ + * Generate text content + * + * @param string $content is feed text content + * @param string $uid is bbcode_uid + * @param string $bitfield is bbcode bitfield + * @param int $options bbcode flag options + * @param int $forum_id is the forum id + * @param array $post_attachments is an array containing the attachments and their respective info + * @return string the html content to be printed for the feed + */ public function generate_content($content, $uid, $bitfield, $options, $forum_id, $post_attachments) { if (empty($content)) @@ -122,16 +122,16 @@ class helper // Firefox does not support CSS for feeds, though // Remove font sizes - // $content = preg_replace('#([^>]+)#iU', '\1', $content); + // $content = preg_replace('#([^>]+)#iU', '\1', $content); // Make text strong :P - // $content = preg_replace('#(.*?)#iU', '\1', $content); + // $content = preg_replace('#(.*?)#iU', '\1', $content); // Italic - // $content = preg_replace('#([^<]+)#iU', '\1', $content); + // $content = preg_replace('#([^<]+)#iU', '\1', $content); // Underline - // $content = preg_replace('#([^<]+)#iU', '\1', $content); + // $content = preg_replace('#([^<]+)#iU', '\1', $content); // Remove embed Windows Media Streams $content = preg_replace( '#<\!--\[if \!IE\]>-->([^[]+)<\!--#si', '', $content); -- cgit v1.2.1 From 27ae01c27a99b0f0674ad4f0e82f1b018365926d Mon Sep 17 00:00:00 2001 From: Oliver Schramm Date: Fri, 22 Sep 2017 13:03:14 +0200 Subject: [ticket/15245] Fix images in feeds when accessing via app.php PHPBB3-15245 --- phpBB/phpbb/feed/helper.php | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'phpBB/phpbb/feed/helper.php') diff --git a/phpBB/phpbb/feed/helper.php b/phpBB/phpbb/feed/helper.php index e15d1e131e..2d9a623895 100644 --- a/phpBB/phpbb/feed/helper.php +++ b/phpBB/phpbb/feed/helper.php @@ -21,6 +21,9 @@ class helper /** @var \phpbb\config\config */ protected $config; + /** @var \phpbb\path_helper */ + protected $path_helper; + /** @var \phpbb\user */ protected $user; @@ -33,14 +36,16 @@ class helper /** * Constructor * - * @param \phpbb\config\config $config Config object - * @param \phpbb\user $user User object - * @param string $phpbb_root_path Root path - * @param string $phpEx PHP file extension + * @param \phpbb\config\config $config Config object + * @param \phpbb\path_helper $path_helper Path helper object + * @param \phpbb\user $user User object + * @param string $phpbb_root_path Root path + * @param string $phpEx PHP file extension */ - public function __construct(\phpbb\config\config $config, \phpbb\user $user, $phpbb_root_path, $phpEx) + public function __construct(\phpbb\config\config $config, \phpbb\path_helper $path_helper, \phpbb\user $user, $phpbb_root_path, $phpEx) { $this->config = $config; + $this->path_helper = $path_helper; $this->user = $user; $this->phpbb_root_path = $phpbb_root_path; $this->phpEx = $phpEx; @@ -113,7 +118,7 @@ class helper $content = str_replace('
', '
' . "\n", $content); // Convert smiley Relative paths to Absolute path, Windows style - $content = str_replace($this->phpbb_root_path . $this->config['smilies_path'], $this->get_board_url() . '/' . $this->config['smilies_path'], $content); + $content = str_replace($this->path_helper->get_web_root_path() . $this->config['smilies_path'], $this->get_board_url() . '/' . $this->config['smilies_path'], $content); // Remove "Select all" link and mouse events $content = str_replace('' . $this->user->lang['SELECT_ALL_CODE'] . '', '', $content); @@ -152,7 +157,7 @@ class helper $content .= implode('
', $post_attachments); // Convert attachments' relative path to absolute path - $content = str_replace($this->phpbb_root_path . 'download/file.' . $this->phpEx, $this->get_board_url() . '/download/file.' . $this->phpEx, $content); + $content = str_replace($this->path_helper->get_web_root_path() . 'download/file.' . $this->phpEx, $this->get_board_url() . '/download/file.' . $this->phpEx, $content); } // Remove Comments from inline attachments [ia] -- cgit v1.2.1 From 4a7ead0239179d4257c074b755cd4a5f765a513b Mon Sep 17 00:00:00 2001 From: Oliver Schramm Date: Fri, 22 Sep 2017 13:33:42 +0200 Subject: [ticket/15245] Remove unnecessary arguments and fix whitespace PHPBB3-15245 --- phpBB/phpbb/feed/helper.php | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) (limited to 'phpBB/phpbb/feed/helper.php') diff --git a/phpBB/phpbb/feed/helper.php b/phpBB/phpbb/feed/helper.php index 2d9a623895..3bca8598a5 100644 --- a/phpBB/phpbb/feed/helper.php +++ b/phpBB/phpbb/feed/helper.php @@ -27,28 +27,18 @@ class helper /** @var \phpbb\user */ protected $user; - /** @var string */ - protected $phpbb_root_path; - - /** @var string */ - protected $phpEx; - /** * Constructor * - * @param \phpbb\config\config $config Config object - * @param \phpbb\path_helper $path_helper Path helper object - * @param \phpbb\user $user User object - * @param string $phpbb_root_path Root path - * @param string $phpEx PHP file extension + * @param \phpbb\config\config $config Config object + * @param \phpbb\path_helper $path_helper Path helper object + * @param \phpbb\user $user User object */ - public function __construct(\phpbb\config\config $config, \phpbb\path_helper $path_helper, \phpbb\user $user, $phpbb_root_path, $phpEx) + public function __construct(\phpbb\config\config $config, \phpbb\path_helper $path_helper, \phpbb\user $user) { $this->config = $config; $this->path_helper = $path_helper; $this->user = $user; - $this->phpbb_root_path = $phpbb_root_path; - $this->phpEx = $phpEx; } /** @@ -110,7 +100,7 @@ class helper } // Prepare some bbcodes for better parsing - $content = preg_replace("#\[quote(=".*?")?:$uid\]\s*(.*?)\s*\[/quote:$uid\]#si", "[quote$1:$uid]
$2
[/quote:$uid]", $content); + $content = preg_replace("#\[quote(=".*?")?:$uid\]\s*(.*?)\s*\[/quote:$uid\]#si", "[quote$1:$uid]
$2
[/quote:$uid]", $content); $content = generate_text_for_display($content, $uid, $bitfield, $options); @@ -157,7 +147,7 @@ class helper $content .= implode('
', $post_attachments); // Convert attachments' relative path to absolute path - $content = str_replace($this->path_helper->get_web_root_path() . 'download/file.' . $this->phpEx, $this->get_board_url() . '/download/file.' . $this->phpEx, $content); + $content = str_replace($this->path_helper->get_web_root_path() . 'download/file.' . $this->path_helper->get_php_ext(), $this->get_board_url() . '/download/file.' . $this->path_helper->get_php_ext(), $content); } // Remove Comments from inline attachments [ia] -- cgit v1.2.1 From 3da67ce581d35f53b1b7e0ef7bce10f9261f8c6c Mon Sep 17 00:00:00 2001 From: Oliver Schramm Date: Thu, 28 Sep 2017 20:02:15 +0200 Subject: [ticket/15245] Configure TextFormatter before rendering feeds PHPBB3-15245 --- phpBB/phpbb/feed/helper.php | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) (limited to 'phpBB/phpbb/feed/helper.php') diff --git a/phpBB/phpbb/feed/helper.php b/phpBB/phpbb/feed/helper.php index 3bca8598a5..df7388331c 100644 --- a/phpBB/phpbb/feed/helper.php +++ b/phpBB/phpbb/feed/helper.php @@ -24,20 +24,25 @@ class helper /** @var \phpbb\path_helper */ protected $path_helper; + /** @var \phpbb\textformatter\s9e\renderer */ + protected $renderer; + /** @var \phpbb\user */ protected $user; /** * Constructor * - * @param \phpbb\config\config $config Config object - * @param \phpbb\path_helper $path_helper Path helper object - * @param \phpbb\user $user User object + * @param \phpbb\config\config $config Config object + * @param \phpbb\path_helper $path_helper Path helper object + * @param \phpbb\textformatter\s9e\renderer $renderer TextFormatter renderer object + * @param \phpbb\user $user User object */ - public function __construct(\phpbb\config\config $config, \phpbb\path_helper $path_helper, \phpbb\user $user) + public function __construct(\phpbb\config\config $config, \phpbb\path_helper $path_helper, \phpbb\textformatter\s9e\renderer $renderer, \phpbb\user $user) { $this->config = $config; $this->path_helper = $path_helper; + $this->renderer = $renderer; $this->user = $user; } @@ -99,16 +104,12 @@ class helper return ''; } - // Prepare some bbcodes for better parsing - $content = preg_replace("#\[quote(=".*?")?:$uid\]\s*(.*?)\s*\[/quote:$uid\]#si", "[quote$1:$uid]
$2
[/quote:$uid]", $content); - - $content = generate_text_for_display($content, $uid, $bitfield, $options); + // Setup our own quote_helper to remove all attributes from quotes + $this->renderer->configure_quote_helper(new feed_quote_helper($this->user, $this->path_helper->get_phpbb_root_path(), $this->path_helper->get_php_ext())); - // Add newlines - $content = str_replace('
', '
' . "\n", $content); + $this->renderer->set_smilies_path($this->get_board_url() . '/' . $this->config['smilies_path']); - // Convert smiley Relative paths to Absolute path, Windows style - $content = str_replace($this->path_helper->get_web_root_path() . $this->config['smilies_path'], $this->get_board_url() . '/' . $this->config['smilies_path'], $content); + $content = generate_text_for_display($content, $uid, $bitfield, $options); // Remove "Select all" link and mouse events $content = str_replace('' . $this->user->lang['SELECT_ALL_CODE'] . '', '', $content); -- cgit v1.2.1 From 221e5a01b1cf3369fcb7807c30a8f05ead20076d Mon Sep 17 00:00:00 2001 From: Oliver Schramm Date: Thu, 28 Sep 2017 23:55:28 +0200 Subject: [ticket/15245] Fix comments, class names and code style PHPBB3-15245 --- phpBB/phpbb/feed/helper.php | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) (limited to 'phpBB/phpbb/feed/helper.php') diff --git a/phpBB/phpbb/feed/helper.php b/phpBB/phpbb/feed/helper.php index df7388331c..7d50b7ce7d 100644 --- a/phpBB/phpbb/feed/helper.php +++ b/phpBB/phpbb/feed/helper.php @@ -13,41 +13,52 @@ namespace phpbb\feed; +use phpbb\config\config; +use phpbb\path_helper; +use phpbb\textformatter\s9e\renderer; +use phpbb\user; +use Symfony\Component\DependencyInjection\ContainerInterface; + /** * Class with some helpful functions used in feeds */ class helper { - /** @var \phpbb\config\config */ + /** @var config */ protected $config; - /** @var \phpbb\path_helper */ + /** @var ContainerInterface */ + protected $container; + + /** @var path_helper */ protected $path_helper; - /** @var \phpbb\textformatter\s9e\renderer */ + /** @var renderer */ protected $renderer; - /** @var \phpbb\user */ + /** @var user */ protected $user; /** * Constructor * - * @param \phpbb\config\config $config Config object - * @param \phpbb\path_helper $path_helper Path helper object - * @param \phpbb\textformatter\s9e\renderer $renderer TextFormatter renderer object - * @param \phpbb\user $user User object + * @param config $config Config object + * @param ContainerInterface $container Service container object + * @param path_helper $path_helper Path helper object + * @param renderer $renderer TextFormatter renderer object + * @param user $user User object */ - public function __construct(\phpbb\config\config $config, \phpbb\path_helper $path_helper, \phpbb\textformatter\s9e\renderer $renderer, \phpbb\user $user) + public function __construct(config $config, ContainerInterface $container, path_helper $path_helper, renderer $renderer, user $user) { $this->config = $config; + $this->container = $container; $this->path_helper = $path_helper; $this->renderer = $renderer; $this->user = $user; } /** - * Run links through append_sid(), prepend generate_board_url() and remove session id + * Returns the board url (and caches it in the function) */ public function get_board_url() { @@ -105,7 +116,7 @@ class helper } // Setup our own quote_helper to remove all attributes from quotes - $this->renderer->configure_quote_helper(new feed_quote_helper($this->user, $this->path_helper->get_phpbb_root_path(), $this->path_helper->get_php_ext())); + $this->renderer->configure_quote_helper($this->container->get('feed.quote_helper')); $this->renderer->set_smilies_path($this->get_board_url() . '/' . $this->config['smilies_path']); -- cgit v1.2.1