]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - mw-config/index.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / mw-config / index.php
index c00a0d013561d782f99fd33e354451ca396eb8c5..10b8d973cdd884f9b807d5f23ec6c5b441501439 100644 (file)
@@ -1,24 +1,57 @@
 <?php
+// @codingStandardsIgnoreFile Generic.Arrays.DisallowLongArraySyntax
 /**
  * New version of MediaWiki web-based config/installation
  *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
  * @file
  */
 
+// Bail on old versions of PHP, or if composer has not been run yet to install
+// dependencies. Using dirname( __FILE__ ) here because __DIR__ is PHP5.3+.
+// @codingStandardsIgnoreStart MediaWiki.Usage.DirUsage.FunctionFound
+require_once dirname( __FILE__ ) . '/../includes/PHPVersionCheck.php';
+// @codingStandardsIgnoreEnd
+wfEntryPointCheck( 'mw-config/index.php' );
+
 define( 'MW_CONFIG_CALLBACK', 'Installer::overrideConfig' );
 define( 'MEDIAWIKI_INSTALL', true );
 
-chdir( dirname( dirname( __FILE__ ) ) );
-require( dirname( dirname( __FILE__ ) ) . '/includes/WebStart.php' );
+// Resolve relative to regular MediaWiki root
+// instead of mw-config subdirectory.
+chdir( dirname( __DIR__ ) );
+require dirname( __DIR__ ) . '/includes/WebStart.php';
 
 wfInstallerMain();
 
 function wfInstallerMain() {
        global $wgRequest, $wgLang, $wgMetaNamespace, $wgCanonicalNamespaceNames;
 
-       $installer = new WebInstaller( $wgRequest );
+       $installer = InstallerOverrides::getWebInstaller( $wgRequest );
 
        if ( !$installer->startSession() ) {
+               if ( $installer->request->getVal( "css" ) ) {
+                       // Do not display errors on css pages
+                       $installer->outputCss();
+                       exit;
+               }
+
+               $errors = $installer->getPhpErrors();
+               $installer->showError( 'config-session-error', $errors[0] );
                $installer->finish();
                exit;
        }
@@ -30,14 +63,15 @@ function wfInstallerMain() {
                $session = array();
        }
 
-       if ( isset( $session['settings']['_UserLang'] ) ) {
+       if ( !is_null( $wgRequest->getVal( 'uselang' ) ) ) {
+               $langCode = $wgRequest->getVal( 'uselang' );
+       } elseif ( isset( $session['settings']['_UserLang'] ) ) {
                $langCode = $session['settings']['_UserLang'];
-       } elseif ( !is_null( $wgRequest->getVal( 'UserLang' ) ) ) {
-               $langCode = $wgRequest->getVal( 'UserLang' );
        } else {
                $langCode = 'en';
        }
        $wgLang = Language::factory( $langCode );
+       RequestContext::getMain()->setLanguage( $wgLang );
 
        $installer->setParserLanguage( $wgLang );