conf_path
includes/bootstrap.inc, строка 241
- Версии
- 5
conf_path()
- 6
conf_path($require_settings = TRUE, $reset = FALSE)
Find the appropriate configuration directory.
Try finding a matching configuration directory by stripping the website's
hostname from left to right and pathname from right to left. The first
configuration file found will be used; the remaining will ignored. If no
configuration file is found, return a default value '$confdir
/default'.
Example for a fictitious site installed at
http://www.drupal.org:8080/mysite/test/ the 'settings.php'
is searched in
the following directories:
1. $confdir
/8080.www.drupal.org.mysite.test
2. $confdir
/www.drupal.org.mysite.test
3. $confdir
/drupal.org.mysite.test
4. $confdir
/org.mysite.test
5. $confdir
/8080.www.drupal.org.mysite
6. $confdir
/www.drupal.org.mysite
7. $confdir
/drupal.org.mysite
8. $confdir
/org.mysite
9. $confdir
/8080.www.drupal.org
10. $confdir
/www.drupal.org
11. $confdir
/drupal.org
12. $confdir
/org
13. $confdir
/default
Параметры
$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.
reset Force a full search for matching directories even if one had been found previously.
Возвращаемое значение
The path of the matching directory.
Код
<?php
function conf_path($require_settings = TRUE, $reset = FALSE) {
static $conf = '';
if ($conf && !$reset) {
return $conf;
}
$confdir = 'sites';
$uri = explode('/', $_SERVER['SCRIPT_NAME'] ? $_SERVER['SCRIPT_NAME'] : $_SERVER['SCRIPT_FILENAME']);
$server = explode('.', implode('.', array_reverse(explode(':', rtrim($_SERVER['HTTP_HOST'], '.')))));
for ($i = count($uri) - 1; $i > 0; $i--) {
for ($j = count($server); $j > 0; $j--) {
$dir = implode('.', array_slice($server, -$j)) . implode('.', array_slice($uri, 0, $i));
if (file_exists("$confdir/$dir/settings.php") || (!$require_settings && file_exists("$confdir/$dir"))) {
$conf = "$confdir/$dir";
return $conf;
}
}
}
$conf = "$confdir/default";
return $conf;
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии