Index: Horde/Horde.php =================================================================== RCS file: /repository/framework/Horde/Horde.php,v retrieving revision 1.489.2.113 diff -u -r1.489.2.113 Horde.php --- Horde/Horde.php 14 Feb 2009 18:02:06 -0000 1.489.2.113 +++ Horde/Horde.php 17 Jun 2009 15:46:31 -0000 @@ -526,7 +526,7 @@ } else { $success = include $config_dir . $config_file; } - $output = ob_get_clean(); + $output .= ob_get_clean(); if (!empty($output) && !$show_output) { return PEAR::raiseError(sprintf('Failed to import configuration file "%s": ', $config_dir . $config_file) . strip_tags($output)); } @@ -537,6 +537,31 @@ $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)); + } + } + } + } + + $output = ''; + // Load vhost configuration file. if (!empty($conf['vhosts']) || !empty($GLOBALS['conf']['vhosts'])) { $server_name = isset($GLOBALS['conf']) ? $GLOBALS['conf']['server']['name'] : $conf['server']['name']; @@ -549,7 +574,7 @@ } else { $success = include $config_dir . $config_file; } - $output = ob_get_clean(); + $output .= ob_get_clean(); if (!empty($output) && !$show_output) { return PEAR::raiseError(sprintf('Failed to import configuration file "%s": ', $config_dir . $config_file) . strip_tags($output)); } @@ -559,6 +584,28 @@ $was_included = true; } + // Load vhost 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 ($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)); + } + } + } + } } // Return an error if neither main or vhosted versions of the