summaryrefslogtreecommitdiff
path: root/config/index.php
diff options
context:
space:
mode:
Diffstat (limited to 'config/index.php')
-rw-r--r--config/index.php249
1 files changed, 142 insertions, 107 deletions
diff --git a/config/index.php b/config/index.php
index 8fc91f8e..5443614e 100644
--- a/config/index.php
+++ b/config/index.php
@@ -47,6 +47,7 @@ require_once( "includes/Defines.php" );
require_once( "includes/DefaultSettings.php" );
require_once( "includes/MagicWord.php" );
require_once( "includes/Namespace.php" );
+require_once( "includes/ProfilerStub.php" );
## Databases we support:
@@ -55,11 +56,13 @@ $ourdb['mysql']['fullname'] = 'MySQL';
$ourdb['mysql']['havedriver'] = 0;
$ourdb['mysql']['compile'] = 'mysql';
$ourdb['mysql']['bgcolor'] = '#ffe5a7';
+$ourdb['mysql']['rootuser'] = 'root';
$ourdb['postgres']['fullname'] = 'PostgreSQL';
$ourdb['postgres']['havedriver'] = 0;
$ourdb['postgres']['compile'] = 'pgsql';
$ourdb['postgres']['bgcolor'] = '#aaccff';
+$ourdb['postgres']['rootuser'] = 'postgres';
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
@@ -118,7 +121,7 @@ $ourdb['postgres']['bgcolor'] = '#aaccff';
.error-top {
color: red;
background-color: #FFF0F0;
- border: 2px solid red;
+ border: 2px solid red;
font-size: 130%;
font-weight: bold;
padding: 1em 1.5em;
@@ -149,15 +152,22 @@ $ourdb['postgres']['bgcolor'] = '#aaccff';
<!--
function hideall() {
<?php foreach (array_keys($ourdb) as $db) {
- echo "document.getElementById('$db').style.display='none';\n";
+ echo "\n document.getElementById('$db').style.display='none';";
}
?>
+
}
- function togglearea(id) {
+ function toggleDBarea(id,defaultroot) {
hideall();
var dbarea = document.getElementById(id).style;
- dbarea.display = dbarea.display = 'none' ? 'block' : 'none';
- }
+ dbarea.display = (dbarea.display == 'none') ? 'block' : 'none';
+ var db = document.getElementById('RootUser');
+ if (defaultroot) {
+<?php foreach (array_keys($ourdb) as $db) {
+ echo " if (id == '$db') { db.value = '".$ourdb[$db]['rootuser']."';}\n";
+}?>
+ }
+ }
// -->
</script>
</head>
@@ -175,7 +185,7 @@ $ourdb['postgres']['bgcolor'] = '#aaccff';
/* Check for existing configurations and bug out! */
if( file_exists( "../LocalSettings.php" ) ) {
- dieout( " <p><strong>Setup has completed, <a href='../index.php'>your wiki</a> is configured.</strong></p>
+ dieout( "<p><strong>Setup has completed, <a href='../index.php'>your wiki</a> is configured.</strong></p>
<p>Please delete the /config directory for extra security.</p></div></div></div></div>" );
}
@@ -199,10 +209,13 @@ if( !is_writable( "." ) ) {
<pre>
cd <i>/path/to/wiki</i>
chmod a+w config
- </pre>" );
+ </pre>
+
+ <p>Afterwards retry to start the <a href=\"\">setup</a>.</p>" );
}
+require_once( "install-utils.inc" );
require_once( "maintenance/updaters.inc" );
class ConfigData {
@@ -280,7 +293,7 @@ if( ini_get( "register_globals" ) ) {
<li>
<div style="font-size:110%">
<strong class="error">Warning:</strong>
- <strong>PHP's <tt><a href="http://php.net/register_globals">register_globals</a></tt> option is enabled. Disable it if you can.</strong>
+ <strong>PHP's <tt><a href="http://php.net/register_globals">register_globals</a></tt> option is enabled. Disable it if you can.</strong>
</div>
MediaWiki will work, but your server is more exposed to PHP-based security vulnerabilities.
</li>
@@ -407,21 +420,21 @@ if ($conf->apc ) {
$conf->eaccel = function_exists( 'eaccelerator_get' );
if ( $conf->eaccel ) {
- $conf->turck = 'eaccelerator';
- print "<li><a href=\"http://eaccelerator.sourceforge.net/\">eAccelerator</a> installed</li>\n";
+ $conf->turck = 'eaccelerator';
+ print "<li><a href=\"http://eaccelerator.sourceforge.net/\">eAccelerator</a> installed</li>\n";
}
-if (!$conf->turck && !$conf->eaccel && !$conf->apc) {
- print "<li>Neither <a href=\"http://turck-mmcache.sourceforge.net/\">Turck MMCache</a> nor ".
- "<a href=\"http://eaccelerator.sourceforge.net/\">eAccelerator</a> nor ".
- "<a href=\"http://www.php.net/apc\">APC</a> are installed, " .
- "can't use object caching functions</li>\n";
+
+if( !$conf->turck && !$conf->eaccel && !$conf->apc ) {
+ echo( '<li>Couldn\'t find <a href="http://turck-mmcache.sourceforge.net">Turck MMCache</a>,
+ <a href="http://eaccelerator.sourceforge.net">eAccelerator</a> or
+ <a href="http://www.php.net/apc">APC</a>. Object caching functions cannot be used.</li>' );
}
$conf->diff3 = false;
-$diff3locations = array("/usr/bin", "/usr/local/bin", "/opt/csw/bin", "/usr/gnu/bin", "/usr/sfw/bin") + explode($sep, getenv("PATH"));
-$diff3names = array("gdiff3", "diff3", "diff3.exe");
+$diff3locations = array( "/usr/bin", "/usr/local/bin", "/opt/csw/bin", "/usr/gnu/bin", "/usr/sfw/bin" ) + explode( $sep, getenv( "PATH" ) );
+$diff3names = array( "gdiff3", "diff3", "diff3.exe" );
-$diff3versioninfo = array('$1 --version 2>&1', 'diff3 (GNU diffutils)');
+$diff3versioninfo = array( '$1 --version 2>&1', 'diff3 (GNU diffutils)' );
foreach ($diff3locations as $loc) {
$exe = locate_executable($loc, $diff3names, $diff3versioninfo);
if ($exe !== false) {
@@ -487,12 +500,12 @@ print "<li style='font-weight:bold;color:green;font-size:110%'>Environment check
$conf->SysopName = importPost( "SysopName", "WikiSysop" );
$conf->SysopPass = importPost( "SysopPass" );
$conf->SysopPass2 = importPost( "SysopPass2" );
+ $conf->RootUser = importPost( "RootUser", "root" );
+ $conf->RootPW = importPost( "RootPW", "-" );
## MySQL specific:
$conf->DBprefix = importPost( "DBprefix" );
$conf->DBmysql5 = (importPost( "DBmysql5" ) == "true") ? "true" : "false";
- $conf->RootUser = importPost( "RootUser", "root" );
- $conf->RootPW = importPost( "RootPW", "-" );
$conf->LanguageCode = importPost( "LanguageCode", "en" );
## Postgres specific:
@@ -560,10 +573,10 @@ if ( $conf->Shm == 'memcached' && $conf->MCServers ) {
}
/* default values for installation */
-$conf->Email =importRequest("Email", "email_enabled");
-$conf->Emailuser=importRequest("Emailuser", "emailuser_enabled");
-$conf->Enotif =importRequest("Enotif", "enotif_allpages");
-$conf->Eauthent =importRequest("Eauthent", "eauthent_enabled");
+$conf->Email = importRequest("Email", "email_enabled");
+$conf->Emailuser = importRequest("Emailuser", "emailuser_enabled");
+$conf->Enotif = importRequest("Enotif", "enotif_allpages");
+$conf->Eauthent = importRequest("Eauthent", "eauthent_enabled");
if( $conf->posted && ( 0 == count( $errs ) ) ) {
do { /* So we can 'continue' to end prematurely */
@@ -582,6 +595,11 @@ if( $conf->posted && ( 0 == count( $errs ) ) ) {
if ($conf->DBtype === $db)
$conf->DBtypename = $ourdb[$db]['fullname'];
}
+ if ( ! strlen($conf->DBtype)) {
+ $errs["DBpicktype"] = "Please choose a database type";
+ continue;
+ }
+
if (! $conf->DBtypename) {
$errs["DBtype"] = "Unknown database type '$conf->DBtype'";
continue;
@@ -601,15 +619,15 @@ if( $conf->posted && ( 0 == count( $errs ) ) ) {
$wgDBts2schema = $conf->DBts2schema;
$wgCommandLineMode = true;
- $wgUseDatabaseMessages = false; /* FIXME: For database failure */
+ $wgUseDatabaseMessages = false; /* FIXME: For database failure */
require_once( "includes/Setup.php" );
chdir( "config" );
require_once( "maintenance/InitialiseMessages.inc" );
$wgTitle = Title::newFromText( "Installation script" );
-error_reporting( E_ALL );
- print "<li>Loading class: $dbclass";
+ error_reporting( E_ALL );
+ print "<li>Loading class: $dbclass";
$dbc = new $dbclass;
if( $conf->DBtype == 'mysql' ) {
@@ -680,12 +698,26 @@ error_reporting( E_ALL );
if( !$ok ) { continue; }
} else /* not mysql */ {
- echo( "<li>Attempting to connect to database server as $wgDBuser..." );
+ error_reporting( E_ALL );
+ $wgSuperUser = '';
+ ## Possible connect as a superuser
+ if( $conf->RootPW != '-' and strlen($conf->RootPW)) {
+ $wgDBsuperuser = $conf->RootUser;
+ echo( "<li>Attempting to connect to database \"postgres\" as superuser \"$wgDBsuperuser\"..." );
+ $wgDatabase = $dbc->newFromParams($wgDBserver, $wgDBsuperuser, $conf->RootPW, "postgres", 1);
+ if (!$wgDatabase->isOpen()) {
+ print " error: " . $wgDatabase->lastError() . "</li>\n";
+ $errs["DBserver"] = "Could not connect to database as superuser";
+ $errs["RootUser"] = "Check username";
+ $errs["RootPW"] = "and password";
+ continue;
+ }
+ }
+ echo( "<li>Attempting to connect to database \"$wgDBname\" as \"$wgDBuser\"..." );
$wgDatabase = $dbc->newFromParams($wgDBserver, $wgDBuser, $wgDBpassword, $wgDBname, 1);
if (!$wgDatabase->isOpen()) {
print " error: " . $wgDatabase->lastError() . "</li>\n";
} else {
- $wgDatabase->ignoreErrors(true);
$myver = $wgDatabase->getServerVersion();
}
}
@@ -698,14 +730,14 @@ error_reporting( E_ALL );
print "<li>Connected to $myver";
if ($conf->DBtype == 'mysql') {
if( version_compare( $myver, "4.0.14" ) < 0 ) {
- die( " -- mysql 4.0.14 or later required. Aborting." );
+ dieout( " -- mysql 4.0.14 or later required. Aborting." );
}
- $mysqlNewAuth = version_compare( $myver, "4.1.0", "ge" );
+ $mysqlNewAuth = version_compare( $myver, "4.1.0", "ge" );
if( $mysqlNewAuth && $mysqlOldClient ) {
print "; <b class='error'>You are using MySQL 4.1 server, but PHP is linked
- to old client libraries; if you have trouble with authentication, see
- <a href='http://dev.mysql.com/doc/mysql/en/old-client.html'
- >http://dev.mysql.com/doc/mysql/en/old-client.html</a> for help.</b>";
+ to old client libraries; if you have trouble with authentication, see
+ <a href='http://dev.mysql.com/doc/mysql/en/old-client.html'
+ >http://dev.mysql.com/doc/mysql/en/old-client.html</a> for help.</b>";
}
if( $wgDBmysql5 ) {
if( $mysqlNewAuth ) {
@@ -739,6 +771,11 @@ error_reporting( E_ALL );
}
$wgDatabase->selectDB( $wgDBname );
}
+ else if ($conf->DBtype == 'postgres') {
+ if( version_compare( $myver, "PostgreSQL 8.0" ) < 0 ) {
+ dieout( " <b>Postgres 8.0 or later is required</b>. Aborting.</li></ul>" );
+ }
+ }
if( $wgDatabase->tableExists( "cur" ) || $wgDatabase->tableExists( "revision" ) ) {
print "<li>There are already MediaWiki tables in this database. Checking if updates are needed...</li>\n";
@@ -758,14 +795,12 @@ error_reporting( E_ALL );
dbsource( "../maintenance/users.sql", $wgDatabase );
}
}
- if ( $conf->DBtype == 'mysql') {
- print "<pre>\n";
- chdir( ".." );
- flush();
- do_all_updates();
- chdir( "config" );
- print "</pre>\n";
- }
+ print "<pre>\n";
+ chdir( ".." );
+ flush();
+ do_all_updates();
+ chdir( "config" );
+ print "</pre>\n";
print "<li>Finished update checks.</li>\n";
} else {
# FIXME: Check for errors
@@ -780,11 +815,7 @@ error_reporting( E_ALL );
}
dbsource( "../maintenance/interwiki.sql", $wgDatabase );
} else if ($conf->DBtype == 'postgres') {
- dbsource( "../maintenance/postgres/tables.sql", $wgDatabase );
- $wgDatabase->update_interwiki();
- } else if ($conf->DBtype == 'oracle') {
- dbsource( "../maintenance/oracle/tables.sql", $wgDatabase );
- dbsource( "../maintenance/oracle/interwiki.sql", $wgDatabase );
+ $wgDatabase->setup_database();
}
else {
$errs["DBtype"] = "Do not know how to handle database type '$conf->DBtype'";
@@ -795,13 +826,13 @@ error_reporting( E_ALL );
print "<li>Initializing data...";
$wgDatabase->insert( 'site_stats',
- array( 'ss_row_id' => 1,
- 'ss_total_views' => 0,
- 'ss_total_edits' => 0,
- 'ss_good_articles' => 0 ) );
-
+ array ( 'ss_row_id' => 1,
+ 'ss_total_views' => 0,
+ 'ss_total_edits' => 0,
+ 'ss_good_articles' => 0 ) );
+
# Set up the "regular user" account *if we can, and if we need to*
- if( $conf->Root ) {
+ if( $conf->Root and $conf->DBtype == 'mysql') {
# See if we need to
$wgDatabase2 = $dbc->newFromParams( $wgDBserver, $wgDBuser, $wgDBpassword, $wgDBname, 1 );
if( $wgDatabase2->isOpen() ) {
@@ -815,7 +846,7 @@ error_reporting( E_ALL );
echo( "success.</li>" );
}
}
-
+
if( $conf->SysopName ) {
$u = User::newFromName( $conf->getSysopName() );
if ( 0 == $u->idForName() ) {
@@ -848,23 +879,15 @@ error_reporting( E_ALL );
$revid = $revision->insertOn( $wgDatabase );
$article->updateRevisionOn( $wgDatabase, $revision );
- print "<li><pre>";
- initialiseMessages();
- print "</pre></li>\n";
+ initialiseMessages( false, false, 'printListItem' );
}
/* Write out the config file now that all is well */
print "<p>Creating LocalSettings.php...</p>\n\n";
- $localSettings = "<" . "?php$endl$local$endl?" . ">";
+ $localSettings = "<" . "?php$endl$local$endl?" . ">\r\n";
// Fix up a common line-ending problem (due to CVS on Windows)
$localSettings = str_replace( "\r\n", "\n", $localSettings );
-
- if( version_compare( phpversion(), "4.3.2" ) >= 0 ) {
- $xt = "xt"; # Refuse to overwrite an existing file
- } else {
- $xt = "wt"; # 'x' is not available prior to PHP 4.3.2. We did check above, but race conditions blah blah
- }
- $f = fopen( "LocalSettings.php", $xt );
+ $f = fopen( "LocalSettings.php", 'xt' );
if( $f == false ) {
dieout( "<p>Couldn't write out LocalSettings.php. Check that the directory permissions are correct and that there isn't already a file of that name here...</p>\n" .
@@ -978,7 +1001,7 @@ if( count( $errs ) ) {
<?php aField( $conf, "SysopPass2", "Password confirm:", "password" ) ?>
</div>
<p class="config-desc">
- An admin can lock/delete pages, block users from editing, and other maintenance tasks.<br />
+ An admin can lock/delete pages, block users from editing, and do other maintenance tasks.<br />
A new account will be added only when creating a new wiki database.
</p>
@@ -1050,7 +1073,7 @@ if( count( $errs ) ) {
</ul>
</div>
<div class="config-desc">
- <p>
+ <p>
For this feature to work, an e-mail address must be present for the user account, and the notification
options in the user's preferences must be enabled. Also note the
authentication option below. When testing the feature, keep in mind that your own changes will never trigger notifications to be sent to yourself.</p>
@@ -1077,6 +1100,7 @@ if( count( $errs ) ) {
<div class="config-section">
<div class="config-input">
<label class='column'>Database type:</label>
+<?php if (isset($errs['DBpicktype'])) print "<span class='error'>$errs[DBpicktype]</span>\n"; ?>
<ul class='plain'><?php database_picker($conf) ?></ul>
</div>
@@ -1102,13 +1126,28 @@ if( count( $errs ) ) {
<p class="config-desc">
If you only have a single user account and database available,
enter those here. If you have database root access (see below)
- you can specify new accounts/databases to be created.
- </p>
- <p>
- This account will not be created if it pre-exists. If this is the case, ensure that it
+ you can specify new accounts/databases to be created. This account
+ will not be created if it pre-exists. If this is the case, ensure that it
has SELECT, INSERT, UPDATE and DELETE permissions on the MediaWiki database.
</p>
+ <div class="config-input">
+ <?php
+ aField( $conf, "RootUser", "Superuser account:", "superuser" );
+ ?>
+ </div>
+ <div class="config-input">
+ <?php
+ aField( $conf, "RootPW", "Superuser password:", "password" );
+ ?>
+ </div>
+
+ <p class="config-desc">
+ If the database user specified above does not exist, or does not have access to create
+ the database (if needed) or tables within it, please provide details of a superuser account,
+ such as <strong>root</strong>, which does. Leave the password set to <strong>-</strong> if this is not needed.
+ </p>
+
<?php database_switcher('mysql'); ?>
<div class="config-input"><?php
aField( $conf, "DBprefix", "Database table prefix:" );
@@ -1148,27 +1187,10 @@ if( count( $errs ) ) {
?></div>
<div class="config-desc">
<p>The username specified above will have it's search path set to the above schemas,
- so it is recommended that you create a new user.</p>
+ so it is recommended that you create a new user.</p>
</div>
</div>
- <div class="config-input">
- <?php
- aField( $conf, "RootUser", "Superuser account:", "superuser" );
- ?>
- </div>
- <div class="config-input">
- <?php
- aField( $conf, "RootPW", "Superuser password:", "password" );
- ?>
- </div>
-
- <p class="config-desc">
- If the database user specified above does not exist, or does not have access to create
- the database (if needed) or tables within it, please provide details of a superuser account,
- such as <strong>root</strong>, which does. Leave the password set to <strong>-</strong> if this is not needed.
- </p>
-
<div class="config-input" style="padding:2em 0 3em">
<label class='column'>&nbsp;</label>
<input type="submit" value="Install MediaWiki!" class="btn-install" />
@@ -1177,7 +1199,11 @@ if( count( $errs ) ) {
</div>
<script type="text/javascript">
-window.onload = togglearea('<?php echo $conf->DBtype; ?>');
+window.onload = toggleDBarea('<?php echo $conf->DBtype; ?>',
+<?php
+ ## If they passed in a root user name, don't populate it on page load
+ echo strlen(importPost('RootUser', '')) ? 0 : 1;
+?>);
</script>
</form>
@@ -1203,8 +1229,8 @@ which means that anyone on the same server can read your database password! Down
it and uploading it again will hopefully change the ownership to a user ID specific to you.</p>
EOT;
} else {
- echo "<p>Installation successful! Move the config/LocalSettings.php file into the parent directory, then follow
- <a href='../index.php'>this link</a> to your wiki.</p>\n";
+ echo "<p><span style='font-weight:bold;color:green;font-size:110%'>Installation successful!</span> Move the <tt>config/LocalSettings.php</tt> file into the parent directory, then follow
+ <strong><a href='../index.php'>this link</a></strong> to your wiki.</p>\n";
}
}
@@ -1328,7 +1354,7 @@ if ( \$wgCommandLineMode ) {
\$wgSitename = \"{$slconf['Sitename']}\";
-\$wgScriptPath = \"{$slconf['ScriptPath']}\";
+\$wgScriptPath = \"{$slconf['ScriptPath']}\";
\$wgScript = \"\$wgScriptPath/index.php\";
\$wgRedirectScript = \"\$wgScriptPath/redirect.php\";
@@ -1345,11 +1371,11 @@ if ( \$wgCommandLineMode ) {
\$wgUploadPath = \"\$wgScriptPath/images\";
\$wgUploadDirectory = \"\$IP/images\";
-\$wgEnableEmail = $enableemail;
-\$wgEnableUserEmail = $enableuseremail;
+\$wgEnableEmail = $enableemail;
+\$wgEnableUserEmail = $enableuseremail;
\$wgEmergencyContact = \"{$slconf['EmergencyContact']}\";
-\$wgPasswordSender = \"{$slconf['PasswordSender']}\";
+\$wgPasswordSender = \"{$slconf['PasswordSender']}\";
## For a detailed description of the following switches see
## http://meta.wikimedia.org/Enotif and http://meta.wikimedia.org/Eauthent
@@ -1360,13 +1386,17 @@ if ( \$wgCommandLineMode ) {
\$wgEnotifWatchlist = $enotifwatchlist; # UPO
\$wgEmailAuthentication = $eauthent;
+\$wgDBtype = \"{$slconf['DBtype']}\";
\$wgDBserver = \"{$slconf['DBserver']}\";
\$wgDBname = \"{$slconf['DBname']}\";
\$wgDBuser = \"{$slconf['DBuser']}\";
\$wgDBpassword = \"{$slconf['DBpassword']}\";
-\$wgDBprefix = \"{$slconf['DBprefix']}\";
-\$wgDBtype = \"{$slconf['DBtype']}\";
\$wgDBport = \"{$slconf['DBport']}\";
+\$wgDBprefix = \"{$slconf['DBprefix']}\";
+
+# Schemas for Postgres
+\$wgDBmwschema = \"{$slconf['DBmwschema']}\";
+\$wgDBts2schema = \"{$slconf['DBts2schema']}\";
# Experimental charset support for MySQL 4.1/5.0.
\$wgDBmysql5 = {$conf->DBmysql5};
@@ -1377,8 +1407,8 @@ if ( \$wgCommandLineMode ) {
## To enable image uploads, make sure the 'images' directory
## is writable, then set this to true:
-\$wgEnableUploads = false;
-\$wgUseImageResize = {$conf->UseImageResize};
+\$wgEnableUploads = false;
+\$wgUseImageResize = {$conf->UseImageResize};
{$magic}\$wgUseImageMagick = true;
{$magic}\$wgImageMagickConvertCommand = \"{$convert}\";
@@ -1390,7 +1420,7 @@ if ( \$wgCommandLineMode ) {
## If you have the appropriate support software installed
## you can enable inline LaTeX equations:
-\$wgUseTeX = false;
+\$wgUseTeX = false;
\$wgMathPath = \"{\$wgUploadPath}/math\";
\$wgMathDirectory = \"{\$wgUploadDirectory}/math\";
\$wgTmpDirectory = \"{\$wgUploadDirectory}/tmp\";
@@ -1421,7 +1451,8 @@ if ( \$wgCommandLineMode ) {
# sure that cached pages are cleared.
\$configdate = gmdate( 'YmdHis', @filemtime( __FILE__ ) );
\$wgCacheEpoch = max( \$wgCacheEpoch, \$configdate );
-";
+ "; ## End of setting the $localsettings string
+
// Keep things in Unix line endings internally;
// the system will write out as local text type.
return str_replace( "\r\n", "\n", $localsettings );
@@ -1480,7 +1511,7 @@ function aField( &$conf, $field, $text, $type = "text", $value = "", $onclick =
}
echo "\t\t<input $xtype name=\"$field\" id=\"$id\" class=\"iput-$type\" $checked ";
if ($onclick) {
- echo " onclick='togglearea(\"$value\")' " ;
+ echo " onclick='toggleDBarea(\"$value\",1)' " ;
}
echo "value=\"";
if( $type == "radio" ) {
@@ -1507,13 +1538,13 @@ function getLanguageList() {
$codes = array();
- $d = opendir( "../languages" );
+ $d = opendir( "../languages/messages" );
/* In case we are called from the root directory */
if (!$d)
- $d = opendir( "languages");
+ $d = opendir( "languages/messages");
while( false !== ($f = readdir( $d ) ) ) {
$m = array();
- if( preg_match( '/Language([A-Z][a-z_]+)\.php$/', $f, $m ) ) {
+ if( preg_match( '/Messages([A-Z][a-z_]+)\.php$/', $f, $m ) ) {
$code = str_replace( '_', '-', strtolower( $m[1] ) );
if( isset( $wgLanguageNames[$code] ) ) {
$name = $code . ' - ' . $wgLanguageNames[$code];
@@ -1558,7 +1589,7 @@ function testMemcachedServer( $server ) {
if ( !function_exists( 'fsockopen' ) ) {
$errstr = "Can't connect to memcached, fsockopen() not present";
}
- if ( !$errstr && count( $hostport ) != 2 ) {
+ if ( !$errstr && count( $hostport ) != 2 ) {
$errstr = 'Please specify host and port';
var_dump( $hostport );
}
@@ -1616,6 +1647,10 @@ function database_switcher($db) {
print "<h3>$full specific options:</h3>\n";
}
+function printListItem( $item ) {
+ print "<li>$item</li>";
+}
+
?>
<div class="license">