From 9774304b900cf35a6091e7be1761e5c07efa70bb Mon Sep 17 00:00:00 2001 From: Gunnar Wrobel Date: Thu, 4 Mar 2010 12:38:34 +0100 Subject: [PATCH] Allow conf.d style directory configuration overriding (Bug #8172) --- framework/Core/lib/Horde.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/framework/Core/lib/Horde.php b/framework/Core/lib/Horde.php index 569fcd886..f2cbfe832 100644 --- a/framework/Core/lib/Horde.php +++ b/framework/Core/lib/Horde.php @@ -809,6 +809,29 @@ HTML; $was_included = true; } + // Load global configuration stanzas in .d directory + $directory = preg_replace('/\.php$/', '.d', $config_dir . $config_file); + if (file_exists($directory) && is_dir($directory)) { + $sub_files = glob("$directory/*.php"); + if ($sub_files) { + foreach ($sub_files as $sub_file) { + ob_start(); + $success = (is_null($var_names) && !$show_output) + ? include_once $sub_file + : include $sub_file; + $output = ob_get_clean(); + + if (!empty($output) && !$show_output) { + return PEAR::raiseError(sprintf('Failed to import configuration file "%s": ', $sub_file) . strip_tags($output)); + } + + if (!$success) { + return PEAR::raiseError(sprintf('Failed to import configuration file "%s".', $sub_file)); + } + } + } + } + // Load vhost configuration file. if (!empty($conf['vhosts']) || !empty($GLOBALS['conf']['vhosts'])) { $server_name = isset($GLOBALS['conf']) -- 2.11.0