Manual:Wiki family/Drupal-style LocalSettings.php
From MediaWiki.org
< Manual:Wiki family(Redirected from Drupal-style LocalSettings.php)
<?php /** * Taken from Drupal code to tap multisite configuration. */ $confdir = '/home/web/mediawiki/sites'; /** * 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 */ static $conf = ''; $uri = explode('/', $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_FILENAME']); $server = explode('.', implode('.', array_reverse(explode(':', rtrim($_SERVER['HTTP_HOST'], '.'))))); // Ensure that only one file is loaded - otherwise fr.drupal.org matches fr.drupal.org and drupal.org $done = false; $i = count($uri); while (!$done && $i > 0) { $j = count($server); while (!$done && $j > 0) { $dir = implode('.', array_slice($server, -$j)) . implode('.', array_slice($uri, 0, $i)); if (file_exists("$confdir/$dir/LocalSettings.php")) { $done = true; $conf = "$confdir/$dir"; require_once( $conf . '/LocalSettings.php' ); } $j--; } $i--; } if (!$conf) { $IP = '.'; require_once( './includes/DefaultSettings.php' ); # used for printing the version require_once( './includes/templates/NoLocalSettings.php' ); die(); } ?>

