MediaWiki  master
WebInstallerInstall.php
Go to the documentation of this file.
1 <?php
23 
27  public function isSlow() {
28  return true;
29  }
30 
34  public function execute() {
35  if ( $this->getVar( '_UpgradeDone' ) ) {
36  return 'skip';
37  } elseif ( $this->getVar( '_InstallDone' ) ) {
38  return 'continue';
39  } elseif ( $this->parent->request->wasPosted() ) {
40  $this->startForm();
41  $this->addHTML( "<ul>" );
42  $results = $this->parent->performInstallation(
43  [ $this, 'startStage' ],
44  [ $this, 'endStage' ]
45  );
46  $this->addHTML( "</ul>" );
47  // PerformInstallation bails on a fatal, so make sure the last item
48  // completed before giving 'next.' Likewise, only provide back on failure
49  $lastStep = end( $results );
50  $continue = $lastStep->isOK() ? 'continue' : false;
51  $back = $lastStep->isOK() ? false : 'back';
52  $this->endForm( $continue, $back );
53  } else {
54  $this->startForm();
55  $this->addHTML( $this->parent->getInfoBox( wfMessage( 'config-install-begin' )->plain() ) );
56  $this->endForm();
57  }
58 
59  return true;
60  }
61 
65  public function startStage( $step ) {
66  // Messages: config-install-database, config-install-tables, config-install-interwiki,
67  // config-install-stats, config-install-keys, config-install-sysop, config-install-mainpage
68  $this->addHTML( "<li>" . wfMessage( "config-install-$step" )->escaped() .
69  wfMessage( 'ellipsis' )->escaped() );
70 
71  if ( $step == 'extension-tables' ) {
72  $this->startLiveBox();
73  }
74  }
75 
80  public function endStage( $step, $status ) {
81  if ( $step == 'extension-tables' ) {
82  $this->endLiveBox();
83  }
84  $msg = $status->isOK() ? 'config-install-step-done' : 'config-install-step-failed';
85  $html = wfMessage( 'word-separator' )->escaped() . wfMessage( $msg )->escaped();
86  if ( !$status->isOK() ) {
87  $html = "<span class=\"error\">$html</span>";
88  }
89  $this->addHTML( $html . "</li>\n" );
90  if ( !$status->isGood() ) {
91  $this->parent->showStatusBox( $status );
92  }
93  }
94 
95 }
Abstract class to define pages for the web installer.
startLiveBox()
Opens a textarea used to display the progress of a long operation.
endStage( $step, $status)
getVar( $var, $default=null)
endForm( $continue='continue', $back='back')
wfMessage( $key,... $params)
This is the function for getting translated interface messages.
endLiveBox()
Opposite to WebInstallerPage::startLiveBox.