diff options
author | rxu <rxu@mail.ru> | 2016-08-07 16:10:49 +0700 |
---|---|---|
committer | rxu <rxu@mail.ru> | 2016-08-07 16:10:49 +0700 |
commit | 3bf64de247f23f701e92d17ccb7c055fb019623d (patch) | |
tree | 5a7951d0ca08ad7b63ec208a31edd3cf999c9f73 /phpBB/includes/functions_content.php | |
parent | 2dae36e3fbde62c73c0ea08f5acd4e1629ebae34 (diff) | |
download | forums-3bf64de247f23f701e92d17ccb7c055fb019623d.tar forums-3bf64de247f23f701e92d17ccb7c055fb019623d.tar.gz forums-3bf64de247f23f701e92d17ccb7c055fb019623d.tar.bz2 forums-3bf64de247f23f701e92d17ccb7c055fb019623d.tar.xz forums-3bf64de247f23f701e92d17ccb7c055fb019623d.zip |
[ticket/14738] Add core events to improve modifying forum lists
PHPBB3-14738
Diffstat (limited to 'phpBB/includes/functions_content.php')
-rw-r--r-- | phpBB/includes/functions_content.php | 22 |
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); |