diff options
| author | Joas Schilling <nickvergessen@gmx.de> | 2014-08-09 11:43:56 +0200 |
|---|---|---|
| committer | Joas Schilling <nickvergessen@gmx.de> | 2014-08-09 11:43:56 +0200 |
| commit | 7a016572bdc57d46624042abdbb47195033aaea6 (patch) | |
| tree | cc9913c8c47be7b1af3ff7720f97aa686c24853a /phpBB/includes | |
| parent | deaa0a8c758acb14a1944c5d3c1fa24364f503c4 (diff) | |
| parent | ced76b5f4daed59f7b58fadc8c955c7b76373cf5 (diff) | |
| download | forums-7a016572bdc57d46624042abdbb47195033aaea6.tar forums-7a016572bdc57d46624042abdbb47195033aaea6.tar.gz forums-7a016572bdc57d46624042abdbb47195033aaea6.tar.bz2 forums-7a016572bdc57d46624042abdbb47195033aaea6.tar.xz forums-7a016572bdc57d46624042abdbb47195033aaea6.zip | |
Merge pull request #2724 from VSEphpbb/ticket/12841
[ticket/12841] Allow extensions to position new config vars
* VSEphpbb/ticket/12841:
[ticket/12841] Make config position default to after
[ticket/12841] Update comments in tests making after default
[ticket/12841] prefix function name with phpbb_
[ticket/12841] Add a tests for the new function
[ticket/12841] Fix white space issues reported by sniffer
[ticket/12841] Allow extensions to position new config vars
Diffstat (limited to 'phpBB/includes')
| -rw-r--r-- | phpBB/includes/functions_acp.php | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/phpBB/includes/functions_acp.php b/phpBB/includes/functions_acp.php index ad5a359710..abf726581d 100644 --- a/phpBB/includes/functions_acp.php +++ b/phpBB/includes/functions_acp.php @@ -655,3 +655,30 @@ function validate_range($value_ary, &$error) } } } + +/** +* Inserts new config display_vars into an exisiting display_vars array +* at the given position. +* +* @param array $display_vars An array of existing config display vars +* @param array $add_config_vars An array of new config display vars +* @param array $where Where to place the new config vars, +* before or after an exisiting config, as an array +* of the form: array('after' => 'config_name') or +* array('before' => 'config_name'). +* @return array The array of config display vars +*/ +function phpbb_insert_config_array($display_vars, $add_config_vars, $where) +{ + if (is_array($where) && array_key_exists(current($where), $display_vars)) + { + $position = array_search(current($where), array_keys($display_vars)) + ((key($where) == 'before') ? 0 : 1); + $display_vars = array_merge( + array_slice($display_vars, 0, $position), + $add_config_vars, + array_slice($display_vars, $position) + ); + } + + return $display_vars; +} |
