function better_exposed_filters_exposed_form_plugin::_bef_set_defaults in Better Exposed Filters 7.3
Fills in missing settings with default values.
Similar to array_merge_recursive, but later numeric keys overwrites earlier values. Use this to set defaults for missing values in a multi-dimensional array. Eg:
$existing = $this->_bef_set_defaults($defaults, $existing);
Return value
array The resulting settings array
1 call to better_exposed_filters_exposed_form_plugin::_bef_set_defaults()
- better_exposed_filters_exposed_form_plugin::_bef_get_settings in ./
better_exposed_filters_exposed_form_plugin.inc - Returns an array of default or current existing values for BEF settings.
File
- ./
better_exposed_filters_exposed_form_plugin.inc, line 1866 - Provides an Better Exposed Filters exposed form plugin for View 3.x.
Class
- better_exposed_filters_exposed_form_plugin
- Better exposed filter form plugin class.
Code
function _bef_set_defaults() {
$count = func_num_args();
if (!$count) {
return;
}
elseif (1 == $count) {
return func_get_arg(0);
}
// First array is the default values.
$params = func_get_args();
$return = array_shift($params);
// Merge the rest of the arrays onto the default array.
foreach ($params as $array) {
foreach ($array as $key => $value) {
// Numeric keyed values are added (unless already there).
if (is_numeric($key) && !in_array($value, $return)) {
if (is_array($value)) {
$return[] = $this
->_bef_set_defaults($return[$key], $value);
}
else {
$return[] = $value;
}
}
else {
if (isset($return[$key]) && is_array($value) && is_array($return[$key])) {
$return[$key] = $this
->_bef_set_defaults($return[$key], $value);
}
else {
$return[$key] = $value;
}
}
}
}
return $return;
}