diff options
author | Yaco <franco@reevo.org> | 2020-06-04 11:01:00 -0300 |
---|---|---|
committer | Yaco <franco@reevo.org> | 2020-06-04 11:01:00 -0300 |
commit | fc7369835258467bf97eb64f184b93691f9a9fd5 (patch) | |
tree | daabd60089d2dd76d9f5fb416b005fbe159c799d /www/wiki/mw-config/index.php |
first commit
Diffstat (limited to 'www/wiki/mw-config/index.php')
-rw-r--r-- | www/wiki/mw-config/index.php | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/www/wiki/mw-config/index.php b/www/wiki/mw-config/index.php new file mode 100644 index 00000000..a47822bb --- /dev/null +++ b/www/wiki/mw-config/index.php @@ -0,0 +1,82 @@ +<?php +// phpcs:disable 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+. +// phpcs:ignore MediaWiki.Usage.DirUsage.FunctionFound +require_once dirname( __FILE__ ) . '/../includes/PHPVersionCheck.php'; +wfEntryPointCheck( 'mw-config/index.php' ); + +define( 'MW_CONFIG_CALLBACK', 'Installer::overrideConfig' ); +define( 'MEDIAWIKI_INSTALL', true ); + +// 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 = 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; + } + + $fingerprint = $installer->getFingerprint(); + if ( isset( $_SESSION['installData'][$fingerprint] ) ) { + $session = $_SESSION['installData'][$fingerprint]; + } else { + $session = array(); + } + + if ( !is_null( $wgRequest->getVal( 'uselang' ) ) ) { + $langCode = $wgRequest->getVal( 'uselang' ); + } elseif ( isset( $session['settings']['_UserLang'] ) ) { + $langCode = $session['settings']['_UserLang']; + } else { + $langCode = 'en'; + } + $wgLang = Language::factory( $langCode ); + RequestContext::getMain()->setLanguage( $wgLang ); + + $installer->setParserLanguage( $wgLang ); + + $wgMetaNamespace = $wgCanonicalNamespaceNames[NS_PROJECT]; + + $session = $installer->execute( $session ); + + $_SESSION['installData'][$fingerprint] = $session; +} |