diff options
| -rw-r--r-- | phpBB/config/feed.yml | 7 | ||||
| -rw-r--r-- | phpBB/feed.php | 14 | ||||
| -rw-r--r-- | phpBB/phpbb/feed/base.php | 37 | 
3 files changed, 56 insertions, 2 deletions
| diff --git a/phpBB/config/feed.yml b/phpBB/config/feed.yml index 48bd9fe76f..b69f80b2c5 100644 --- a/phpBB/config/feed.yml +++ b/phpBB/config/feed.yml @@ -25,6 +25,7 @@ services:              - @user              - @auth              - @content.visibility +            - @dispatcher              - %core.php_ext%      feed.forums: @@ -38,6 +39,7 @@ services:              - @user              - @auth              - @content.visibility +            - @dispatcher              - %core.php_ext%      feed.news: @@ -51,6 +53,7 @@ services:              - @user              - @auth              - @content.visibility +            - @dispatcher              - %core.php_ext%      feed.overall: @@ -64,6 +67,7 @@ services:              - @user              - @auth              - @content.visibility +            - @dispatcher              - %core.php_ext%      feed.topic: @@ -77,6 +81,7 @@ services:              - @user              - @auth              - @content.visibility +            - @dispatcher              - %core.php_ext%      feed.topics: @@ -90,6 +95,7 @@ services:              - @user              - @auth              - @content.visibility +            - @dispatcher              - %core.php_ext%      feed.topics_active: @@ -103,4 +109,5 @@ services:              - @user              - @auth              - @content.visibility +            - @dispatcher              - %core.php_ext% diff --git a/phpBB/feed.php b/phpBB/feed.php index e0c0b01db6..6fd0ed800f 100644 --- a/phpBB/feed.php +++ b/phpBB/feed.php @@ -84,6 +84,20 @@ $feed->open();  // Iterate through items  while ($row = $feed->get_item())  { +	/** +	* Event to modify the feed row +	* +	* @event core.feed_modify_feed_row +	* @var	int		forum_id	Forum ID +	* @var	string	mode		Feeds mode (forums|topics|topics_new|topics_active|news) +	* @var	array	row			Array with feed data +	* @var	int		topic_id	Topic ID +	* +	* @since 3.1.10-RC1 +	*/ +	$vars = array('forum_id', 'mode', 'row', 'topic_id'); +	extract($phpbb_dispatcher->trigger_event('core.feed_modify_feed_row', compact($vars))); +  	// BBCode options to correctly disable urls, smilies, bbcode...  	if ($feed->get('options') === NULL)  	{ diff --git a/phpBB/phpbb/feed/base.php b/phpBB/phpbb/feed/base.php index 322e2ee9f1..eeea0a55df 100644 --- a/phpBB/phpbb/feed/base.php +++ b/phpBB/phpbb/feed/base.php @@ -39,6 +39,12 @@ abstract class base  	/** @var \phpbb\auth\auth */  	protected $auth; +	/** @var \phpbb\content_visibility */ +	protected $content_visibility; + +	/** @var \phpbb\event\dispatcher_interface */ +	protected $phpbb_dispatcher; +  	/** @var string */  	protected $phpEx; @@ -79,10 +85,21 @@ abstract class base  	* @param \phpbb\cache\driver\driver_interface	$cache	Cache object  	* @param \phpbb\user						$user		User object  	* @param \phpbb\auth\auth					$auth		Auth object -	* @param \phpbb\content_visibility			$content_visibility		Auth object +	* @param \phpbb\content_visibility			$content_visibility		Content visibility object +	* @param \phpbb\event\dispatcher_interface	$phpbb_dispatcher		Event dispatcher object  	* @param string								$phpEx		php file extension  	*/ -	function __construct(\phpbb\feed\helper $helper, \phpbb\config\config $config, \phpbb\db\driver\driver_interface $db, \phpbb\cache\driver\driver_interface $cache, \phpbb\user $user, \phpbb\auth\auth $auth, \phpbb\content_visibility $content_visibility, $phpEx) +	function __construct( +		\phpbb\feed\helper $helper, +		\phpbb\config\config $config, +		\phpbb\db\driver\driver_interface $db, +		\phpbb\cache\driver\driver_interface $cache, +		\phpbb\user $user, +		\phpbb\auth\auth $auth, +		\phpbb\content_visibility $content_visibility, +		\phpbb\event\dispatcher_interface $phpbb_dispatcher, +		$phpEx +	)  	{  		$this->config = $config;  		$this->helper = $helper; @@ -91,6 +108,7 @@ abstract class base  		$this->user = $user;  		$this->auth = $auth;  		$this->content_visibility = $content_visibility; +		$this->phpbb_dispatcher = $phpbb_dispatcher;  		$this->phpEx = $phpEx;  		$this->set_keys(); @@ -239,6 +257,21 @@ abstract class base  				return false;  			} +			$sql_ary = $this->sql; + +			/** +			* Event to modify the feed item sql +			* +			* @event core.feed_base_modify_item_sql +			* @var	array	sql_ary		The SQL array to get the feed item data +			* +			* @since 3.1.10-RC1 +			*/ +			$vars = array('sql_ary'); +			extract($this->phpbb_dispatcher->trigger_event('core.feed_base_modify_item_sql', compact($vars))); +			$this->sql = $sql_ary; +			unset($sql_ary); +  			// Query database  			$sql = $this->db->sql_build_query('SELECT', $this->sql);  			$this->result = $this->db->sql_query_limit($sql, $this->num_items); | 
