aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB')
-rw-r--r--phpBB/config/feed.yml7
-rw-r--r--phpBB/feed.php14
-rw-r--r--phpBB/phpbb/feed/base.php37
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);