diff options
Diffstat (limited to 'phpBB/phpbb/feed')
| -rw-r--r-- | phpBB/phpbb/feed/helper.php | 55 | ||||
| -rw-r--r-- | phpBB/phpbb/feed/quote_helper.php | 36 | 
2 files changed, 67 insertions, 24 deletions
| diff --git a/phpBB/phpbb/feed/helper.php b/phpBB/phpbb/feed/helper.php index e15d1e131e..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\user */ -	protected $user; +	/** @var ContainerInterface */ +	protected $container; -	/** @var string */ -	protected $phpbb_root_path; +	/** @var path_helper */ +	protected $path_helper; -	/** @var string */ -	protected $phpEx; +	/** @var renderer */ +	protected $renderer; + +	/** @var user */ +	protected $user;  	/**  	 * 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	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\user $user, $phpbb_root_path, $phpEx) +	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; -		$this->phpbb_root_path = $phpbb_root_path; -		$this->phpEx = $phpEx;  	}  	/** -	 * 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()  	{ @@ -104,16 +115,12 @@ class helper  			return '';  		} -		// Prepare some bbcodes for better parsing -		$content	= preg_replace("#\[quote(=".*?")?:$uid\]\s*(.*?)\s*\[/quote:$uid\]#si", "[quote$1:$uid]<br />$2<br />[/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($this->container->get('feed.quote_helper')); -		// Add newlines -		$content = str_replace('<br />', '<br />' . "\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->phpbb_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('<a href="#" onclick="selectCode(this); return false;">' . $this->user->lang['SELECT_ALL_CODE'] . '</a>', '', $content); @@ -152,7 +159,7 @@ class helper  			$content .= implode('<br />', $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->path_helper->get_php_ext(), $this->get_board_url() . '/download/file.' . $this->path_helper->get_php_ext(), $content);  		}  		// Remove Comments from inline attachments [ia] diff --git a/phpBB/phpbb/feed/quote_helper.php b/phpBB/phpbb/feed/quote_helper.php new file mode 100644 index 0000000000..843d075028 --- /dev/null +++ b/phpBB/phpbb/feed/quote_helper.php @@ -0,0 +1,36 @@ +<?php +/** + * + * This file is part of the phpBB Forum Software package. + * + * @copyright (c) phpBB Limited <https://www.phpbb.com> + * @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; + +/** + * Modified quote_helper for feeds (basically just removing all attributes) + */ +class quote_helper extends \phpbb\textformatter\s9e\quote_helper +{ +	/** +	 * {@inheritdoc} +	 */ +	public function inject_metadata($xml) +	{ +		// In feeds we don't want any attributes, so delete all of them +		return \s9e\TextFormatter\Utils::replaceAttributes( +			$xml, +			'QUOTE', +			function () +			{ +				return []; +			} +		); +	} +} | 
