Commit 2c3864d3 authored by Dries's avatar Dries
Browse files

- Patch #147324 by Eaton: make multi-site installations work again.

parent c33da7d5
...@@ -217,11 +217,22 @@ function timer_stop($name) { ...@@ -217,11 +217,22 @@ function timer_stop($name) {
* 12. $confdir/org * 12. $confdir/org
* *
* 13. $confdir/default * 13. $confdir/default
*
* @param $require_settings
* Only configuration directories with an existing settings.php file
* will be recognized. Defaults to TRUE. During initial installation,
* this is set to FALSE so that Drupal can detect a matching directory,
* then create a new settings.php file in it.
* @param reset
* Force a full search for matching directories even if one had been
* found previously.
* @return
* The path of the matching directory.
*/ */
function conf_path() { function conf_path($require_settings = TRUE, $reset = FALSE) {
static $conf = ''; static $conf = '';
if ($conf) { if ($conf && !$reset) {
return $conf; return $conf;
} }
...@@ -231,7 +242,7 @@ function conf_path() { ...@@ -231,7 +242,7 @@ function conf_path() {
for ($i = count($uri) - 1; $i > 0; $i--) { for ($i = count($uri) - 1; $i > 0; $i--) {
for ($j = count($server); $j > 0; $j--) { for ($j = count($server); $j > 0; $j--) {
$dir = implode('.', array_slice($server, -$j)) . implode('.', array_slice($uri, 0, $i)); $dir = implode('.', array_slice($server, -$j)) . implode('.', array_slice($uri, 0, $i));
if (file_exists("$confdir/$dir/settings.php")) { if (file_exists("$confdir/$dir/settings.php") || (!$require_settings && file_exists("$confdir/$dir"))) {
$conf = "$confdir/$dir"; $conf = "$confdir/$dir";
return $conf; return $conf;
} }
......
...@@ -166,7 +166,7 @@ function drupal_detect_database_types() { ...@@ -166,7 +166,7 @@ function drupal_detect_database_types() {
*/ */
function drupal_rewrite_settings($settings = array(), $prefix = '') { function drupal_rewrite_settings($settings = array(), $prefix = '') {
$default_settings = './sites/default/default.settings.php'; $default_settings = './sites/default/default.settings.php';
$settings_file = './'. conf_path() .'/'. $prefix .'settings.php'; $settings_file = './'. conf_path(FALSE, TRUE) .'/'. $prefix .'settings.php';
// Build list of setting names and insert the values into the global namespace. // Build list of setting names and insert the values into the global namespace.
$keys = array(); $keys = array();
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment