aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/functions_content.php
diff options
context:
space:
mode:
authorMarc Alexander <admin@m-a-styles.de>2016-09-17 12:58:18 +0200
committerMarc Alexander <admin@m-a-styles.de>2016-09-17 12:58:18 +0200
commit73b932763188ddff98f9271bbca31f66526278e2 (patch)
tree3397c0ae35101a54c8edd249115100f699870ed8 /phpBB/includes/functions_content.php
parentbd59241110261a7878f700941e0a42ab74e423c6 (diff)
parent3bf64de247f23f701e92d17ccb7c055fb019623d (diff)
downloadforums-73b932763188ddff98f9271bbca31f66526278e2.tar
forums-73b932763188ddff98f9271bbca31f66526278e2.tar.gz
forums-73b932763188ddff98f9271bbca31f66526278e2.tar.bz2
forums-73b932763188ddff98f9271bbca31f66526278e2.tar.xz
forums-73b932763188ddff98f9271bbca31f66526278e2.zip
Merge pull request #4403 from rxu/ticket/14738
[ticket/14738] Add core events to improve modifying forum lists
Diffstat (limited to 'phpBB/includes/functions_content.php')
-rw-r--r--phpBB/includes/functions_content.php22
1 files changed, 19 insertions, 3 deletions
diff --git a/phpBB/includes/functions_content.php b/phpBB/includes/functions_content.php
index 87dd306e8a..8e60804d6e 100644
--- a/phpBB/includes/functions_content.php
+++ b/phpBB/includes/functions_content.php
@@ -163,16 +163,33 @@ function make_jumpbox($action, $forum_id = false, $select_all = false, $acl_list
ORDER BY left_id ASC';
$result = $db->sql_query($sql, 600);
+ $rowset = array();
+ while ($row = $db->sql_fetchrow($result))
+ {
+ $rowset[(int) $row['forum_id']] = $row;
+ }
+ $db->sql_freeresult($result);
+
$right = $padding = 0;
$padding_store = array('0' => 0);
$display_jumpbox = false;
$iteration = 0;
+ /**
+ * Modify the jumpbox forum list data
+ *
+ * @event core.make_jumpbox_modify_forum_list
+ * @var array rowset Array with the forums list data
+ * @since 3.1.10-RC1
+ */
+ $vars = array('rowset');
+ extract($phpbb_dispatcher->trigger_event('core.make_jumpbox_modify_forum_list', compact($vars)));
+
// Sometimes it could happen that forums will be displayed here not be displayed within the index page
// This is the result of forums not displayed at index, having list permissions and a parent of a forum with no permissions.
// If this happens, the padding could be "broken"
- while ($row = $db->sql_fetchrow($result))
+ foreach ($rowset as $row)
{
if ($row['left_id'] < $right)
{
@@ -254,8 +271,7 @@ function make_jumpbox($action, $forum_id = false, $select_all = false, $acl_list
}
$iteration++;
}
- $db->sql_freeresult($result);
- unset($padding_store);
+ unset($padding_store, $rowset);
$url_parts = $phpbb_path_helper->get_url_parts($action);