From 918fcc1d131a60df5ba01212d61d82d753014468 Mon Sep 17 00:00:00 2001 From: pdontthink Date: Fri, 22 Sep 2006 09:29:04 +0000 Subject: [PATCH] Move sqm_array_merge to arrays.php and subsequently move inclusion of arrays.php to init.php for global access. git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@11736 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- functions/arrays.php | 62 +++++++++++++++++++++++++++++++++++++++++++ functions/global.php | 58 ---------------------------------------- functions/plugin.php | 2 +- include/init.php | 1 + src/options_order.php | 3 +-- src/read_body.php | 1 - 6 files changed, 65 insertions(+), 62 deletions(-) diff --git a/functions/arrays.php b/functions/arrays.php index bec4c986..57eb30a2 100644 --- a/functions/arrays.php +++ b/functions/arrays.php @@ -139,3 +139,65 @@ if (!function_exists('array_combine')) { return $r; } } + + + /** + * Merges two variables into a single array + * + * Similar to PHP array_merge function, but provides same + * functionality as array_merge without losing array values + * with same key names. If the values under identical array + * keys are both strings and $concat_strings is TRUE, those + * values are concatenated together, otherwise they are placed + * in a sub-array and are merged (recursively) in the same manner. + * + * If either of the elements being merged is not an array, + * it will simply be added to the returned array. + * + * If both values are strings and $concat_strings is TRUE, + * a concatenated string is returned instead of an array. + * + * @param mixed $a First element to be merged + * @param mixed $b Second element to be merged + * @param boolean $concat_strings Whether or not string values + * should be concatenated instead + * of added to different array + * keys (default TRUE) + * + * @return array The merged $a and $b in one array + * + * @since 1.5.2 + * @author Paul Lesniewski + * + */ +function sqm_array_merge($a, $b, $concat_strings=true) { + + $ret = array(); + + if (is_array($a)) { + $ret = $a; + } else { + if (is_string($a) && is_string($b) && $concat_strings) { + return $a . $b; + } + $ret[] = $a; + } + + + if (is_array($b)) { + foreach ($b as $key => $value) { + if (isset($ret[$key])) { + $ret[$key] = sqm_array_merge($ret[$key], $value, $concat_strings); + } else { + $ret[$key] = $value; + } + } + } else { + $ret[] = $b; + } + + return $ret; + +} + + diff --git a/functions/global.php b/functions/global.php index 2ee2b837..3e7e0ec4 100644 --- a/functions/global.php +++ b/functions/global.php @@ -83,64 +83,6 @@ function sqstripslashes(&$array) { } } -/** - * Merges two variables into a single array - * - * Similar to PHP array_merge function, but provides same - * functionality as array_merge without losing array values - * with same key names. If the values under identical array - * keys are both strings and $concat_strings is TRUE, those - * values are concatenated together, otherwise they are placed - * in a sub-array and are merged (recursively) in the same manner. - * - * If either of the elements being merged is not an array, - * it will simply be added to the returned array. - * - * If both values are strings and $concat_strings is TRUE, - * a concatenated string is returned instead of an array. - * - * @param mixed $a First element to be merged - * @param mixed $b Second element to be merged - * @param boolean $concat_strings Whether or not string values - * should be concatenated instead - * of added to different array - * keys (default TRUE) - * - * @return array The merged $a and $b in one array - * - * @since 1.5.2 - * - */ -function sq_array_merge($a, $b, $concat_strings=true) { - - $ret = array(); - - if (is_array($a)) { - $ret = $a; - } else { - if (is_string($a) && is_string($b) && $concat_strings) { - return $a . $b; - } - $ret[] = $a; - } - - - if (is_array($b)) { - foreach ($b as $key => $value) { - if (isset($ret[$key])) { - $ret[$key] = sq_array_merge($ret[$key], $value, $concat_strings); - } else { - $ret[$key] = $value; - } - } - } else { - $ret[] = $b; - } - - return $ret; - -} - /** * Add a variable to the session. * @param mixed $var the variable to register diff --git a/functions/plugin.php b/functions/plugin.php index c5b206fe..062021c9 100644 --- a/functions/plugin.php +++ b/functions/plugin.php @@ -118,7 +118,7 @@ function concat_hook_function($name,$parm=NULL) { /* Add something to set correct gettext domain for plugin. */ if (function_exists($function)) { // $ret .= $function($parm); - $ret = sq_array_merge($ret, $function($parm)); + $ret = sqm_array_merge($ret, $function($parm)); } } } diff --git a/include/init.php b/include/init.php index b0fc1e25..93551521 100644 --- a/include/init.php +++ b/include/init.php @@ -134,6 +134,7 @@ $color[15] = '#002266'; /* (dark blue) Unselectable folders */ $color[16] = '#ff9933'; /* (orange) Highlight color */ require(SM_PATH . 'functions/global.php'); +require(SM_PATH . 'functions/arrays.php'); /* load default configuration */ require(SM_PATH . 'config/config_default.php'); diff --git a/src/options_order.php b/src/options_order.php index 76980b47..b643a0ca 100644 --- a/src/options_order.php +++ b/src/options_order.php @@ -18,7 +18,6 @@ require('../include/init.php'); /* SquirrelMail required files. */ require_once(SM_PATH . 'functions/forms.php'); -require_once(SM_PATH . 'functions/arrays.php'); /* get globals */ if (sqgetGlobalVar('num', $num, SQ_GET)) { @@ -160,4 +159,4 @@ $oTemplate->assign('addField_action', $PHP_SELF); $oTemplate->display('options_order.tpl'); $oTemplate->display('footer.tpl'); -?> \ No newline at end of file +?> diff --git a/src/read_body.php b/src/read_body.php index b04812b0..1b65b912 100644 --- a/src/read_body.php +++ b/src/read_body.php @@ -26,7 +26,6 @@ require_once(SM_PATH . 'functions/mime.php'); require_once(SM_PATH . 'functions/date.php'); require_once(SM_PATH . 'functions/url_parser.php'); require_once(SM_PATH . 'functions/identity.php'); -require_once(SM_PATH . 'functions/arrays.php'); require_once(SM_PATH . 'functions/mailbox_display.php'); require_once(SM_PATH . 'functions/forms.php'); require_once(SM_PATH . 'functions/attachment_common.php'); -- 2.25.1