MediaWiki master
WebInstallerUpgrade.php
Go to the documentation of this file.
1<?php
22namespace MediaWiki\Installer;
23
25
29 public function isSlow() {
30 return true;
31 }
32
36 public function execute() {
37 if ( $this->getVar( '_UpgradeDone' ) ) {
38 // Allow regeneration of LocalSettings.php, unless we are working
39 // from a pre-existing LocalSettings.php file and we want to avoid
40 // leaking its contents
41 if ( $this->parent->request->wasPosted() && !$this->getVar( '_ExistingDBSettings' ) ) {
42 // Done message acknowledged
43 return 'continue';
44 }
45 // Back button click
46 // Show the done message again
47 // Make them click back again if they want to do the upgrade again
48 $this->showDoneMessage();
49
50 return 'output';
51 }
52
53 // wgDBtype is generally valid here because otherwise the previous page
54 // (connect) wouldn't have declared its happiness
55 $type = $this->getVar( 'wgDBtype' );
56 $installer = $this->parent->getDBInstaller( $type );
57
58 if ( !$installer->needsUpgrade() ) {
59 return 'skip';
60 }
61
62 if ( $this->parent->request->wasPosted() ) {
63 $installer->preUpgrade();
64
65 $this->startLiveBox();
66 $result = $installer->doUpgrade();
67 $this->endLiveBox();
68
69 if ( $result ) {
70 // If they're going to possibly regenerate LocalSettings, we
71 // need to create the upgrade/secret keys. T28481
72 if ( !$this->getVar( '_ExistingDBSettings' ) ) {
73 $this->parent->generateKeys();
74 }
75 $this->setVar( '_UpgradeDone', true );
76 $this->showDoneMessage();
77 } else {
78 $this->startForm();
79 $this->parent->showError( 'config-upgrade-error' );
80 $this->endForm();
81 }
82
83 return 'output';
84 }
85
86 $this->startForm();
87 $this->addHTML( $this->parent->getInfoBox(
88 wfMessage( 'config-can-upgrade', MW_VERSION )->plain() ) );
89 $this->endForm();
90
91 return null;
92 }
93
94 public function showDoneMessage() {
95 $this->startForm();
96 $regenerate = !$this->getVar( '_ExistingDBSettings' );
97 if ( $regenerate ) {
98 $msg = 'config-upgrade-done';
99 } else {
100 $msg = 'config-upgrade-done-no-regenerate';
101 }
102 $this->parent->disableLinkPopups();
103 $this->addHTML(
104 $this->parent->getInfoBox(
105 wfMessage( $msg,
106 $this->getVar( 'wgServer' ) .
107 $this->getVar( 'wgScriptPath' ) . '/index.php'
108 )->plain(), 'tick-32.png'
109 )
110 );
111 $this->parent->restoreLinkPopups();
112 $this->endForm( $regenerate ? 'regenerate' : false, false );
113 }
114
115}
const MW_VERSION
The running version of MediaWiki.
Definition Defines.php:36
wfMessage( $key,... $params)
This is the function for getting translated interface messages.
Abstract class to define pages for the web installer.
endForm( $continue='continue', $back='back')
startLiveBox()
Opens a textarea used to display the progress of a long operation.
endLiveBox()
Opposite to WebInstallerPage::startLiveBox.