Index: Horde/Horde.php
===================================================================
RCS file: /repository/framework/Horde/Horde.php,v
retrieving revision 1.716
diff -u -r1.716 Horde.php
--- Horde/Horde.php 17 Jun 2009 03:56:20 -0000 1.716
+++ Horde/Horde.php 17 Jun 2009 15:38:29 -0000
@@ -653,6 +653,8 @@
: $registry->get('fileroot', $app) . '/config/';
$file = $config_dir . $config_file;
+ $output = '';
+
if (file_exists($file)) {
/* If we are not exporting variables located in the configuration
* file, or we are not capturing the output, then there is no
@@ -661,7 +663,7 @@
$success = (is_null($var_names) && !$show_output)
? include_once $file
: include $file;
- $output = ob_get_clean();
+ $output .= ob_get_clean();
if (!empty($output) && !$show_output) {
return PEAR::raiseError(sprintf('Failed to import configuration file "%s": ', $file) . strip_tags($output));
@@ -673,6 +675,31 @@
$was_included = true;
}
+
+ // Load global configuration stanzas in .d directory
+ $directory = preg_replace('/\.php$/', '.d', $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'])) {
@@ -686,7 +713,7 @@
$success = (is_null($var_names) && !$show_output)
? include_once $file
: include $file;
- $output = ob_get_clean();
+ $output .= ob_get_clean();
if (!empty($output) && !$show_output) {
return PEAR::raiseError(sprintf('Failed to import configuration file "%s": ', $file) . strip_tags($output));
@@ -698,6 +725,29 @@
$was_included = true;
}
+ // Load vhost configuration stanzas in .d directory
+ $directory = preg_replace('/\.php$/', '.d', $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 config