diff options
author | Luke Shumaker <LukeShu@sbcglobal.net> | 2014-01-28 09:50:25 -0500 |
---|---|---|
committer | Luke Shumaker <LukeShu@sbcglobal.net> | 2014-01-28 09:50:25 -0500 |
commit | 5744df39e15f85c6cc8a9faf8924d77e76d2b216 (patch) | |
tree | a8c8dd40a94d1fa0d5377566aa5548ae55a163da /includes/installer/WebInstallerPage.php | |
parent | 4bb2aeca1d198391ca856aa16c40b8559c68daec (diff) | |
parent | 224b22a051051f6c2e494c3a2fb4adb42898e2d1 (diff) |
Merge branch 'archwiki'
Conflicts:
extensions/FluxBBAuthPlugin.php
extensions/SyntaxHighlight_GeSHi/README
extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.class.php
extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.i18n.php
extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php
extensions/SyntaxHighlight_GeSHi/geshi/docs/CHANGES
extensions/SyntaxHighlight_GeSHi/geshi/docs/THANKS
extensions/SyntaxHighlight_GeSHi/geshi/docs/TODO
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/AbstractClass.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/AbstractClass_logo.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/AbstractMethod.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/AbstractPrivateClass.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/AbstractPrivateClass_logo.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/AbstractPrivateMethod.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Class.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Class_logo.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Constant.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Constructor.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Destructor.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Function.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Global.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/I.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Index.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Interface.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Interface_logo.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/L.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Lminus.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Lplus.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Method.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Page.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Page_logo.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/PrivateClass.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/PrivateClass_logo.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/PrivateMethod.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/PrivateVariable.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/StaticMethod.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/StaticVariable.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/T.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Tminus.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Tplus.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/Variable.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/blank.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/class_folder.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/file.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/folder.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/function_folder.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/next_button.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/next_button_disabled.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/package.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/package_folder.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/previous_button.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/previous_button_disabled.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/private_class_logo.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/tutorial.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/tutorial_folder.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/api/media/images/up_button.png
extensions/SyntaxHighlight_GeSHi/geshi/docs/geshi-doc.html
extensions/SyntaxHighlight_GeSHi/geshi/docs/geshi-doc.txt
extensions/SyntaxHighlight_GeSHi/geshi/geshi.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/4cs.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/6502acme.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/6502kickass.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/6502tasm.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/68000devpac.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/abap.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/actionscript.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/actionscript3.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/ada.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/algol68.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/apache.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/applescript.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/apt_sources.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/asm.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/asp.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/autoconf.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/autohotkey.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/autoit.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/avisynth.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/awk.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/bascomavr.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/bash.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/basic4gl.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/bf.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/bibtex.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/blitzbasic.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/bnf.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/boo.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/c.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/c_loadrunner.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/c_mac.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/caddcl.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/cadlisp.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/cfdg.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/cfm.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/chaiscript.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/cil.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/clojure.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/cmake.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/cobol.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/coffeescript.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/cpp-qt.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/cpp.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/csharp.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/css.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/cuesheet.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/d.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/dcs.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/delphi.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/diff.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/div.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/dos.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/dot.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/e.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/ecmascript.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/eiffel.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/email.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/epc.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/erlang.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/euphoria.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/f1.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/falcon.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/fo.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/fortran.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/freebasic.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/fsharp.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/gambas.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/gdb.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/genero.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/genie.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/gettext.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/glsl.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/gml.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/gnuplot.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/go.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/groovy.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/gwbasic.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/haskell.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/hicest.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/hq9plus.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/html4strict.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/html5.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/icon.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/idl.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/ini.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/inno.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/intercal.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/io.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/j.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/java.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/java5.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/javascript.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/jquery.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/kixtart.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/klonec.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/klonecpp.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/latex.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/lb.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/lisp.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/llvm.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/locobasic.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/logtalk.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/lolcode.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/lotusformulas.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/lotusscript.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/lscript.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/lsl2.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/lua.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/m68k.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/magiksf.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/make.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/mapbasic.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/matlab.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/mirc.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/mmix.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/modula2.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/modula3.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/mpasm.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/mxml.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/mysql.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/newlisp.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/nsis.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/oberon2.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/objc.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/objeck.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/ocaml-brief.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/ocaml.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/oobas.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/oracle11.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/oracle8.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/oxygene.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/oz.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/pascal.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/pcre.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/per.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/perl.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/perl6.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/pf.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/php-brief.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/php.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/pic16.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/pike.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/pixelbender.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/pli.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/plsql.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/postgresql.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/povray.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/powerbuilder.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/powershell.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/proftpd.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/progress.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/prolog.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/properties.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/providex.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/purebasic.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/pycon.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/python.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/q.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/qbasic.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/rails.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/rebol.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/reg.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/robots.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/rpmspec.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/rsplus.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/ruby.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/sas.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/scala.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/scheme.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/scilab.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/sdlbasic.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/smalltalk.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/smarty.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/sql.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/systemverilog.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/tcl.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/teraterm.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/text.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/thinbasic.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/tsql.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/typoscript.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/unicon.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/uscript.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/vala.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/vb.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/vbnet.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/verilog.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/vhdl.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/vim.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/visualfoxpro.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/visualprolog.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/whitespace.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/whois.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/winbatch.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/xbasic.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/xml.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/xorg_conf.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/xpp.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/yaml.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/z80.php
extensions/SyntaxHighlight_GeSHi/geshi/geshi/zxbasic.php
Diffstat (limited to 'includes/installer/WebInstallerPage.php')
-rw-r--r-- | includes/installer/WebInstallerPage.php | 309 |
1 files changed, 204 insertions, 105 deletions
diff --git a/includes/installer/WebInstallerPage.php b/includes/installer/WebInstallerPage.php index a193afb7..ad399133 100644 --- a/includes/installer/WebInstallerPage.php +++ b/includes/installer/WebInstallerPage.php @@ -36,7 +36,7 @@ abstract class WebInstallerPage { */ public $parent; - public abstract function execute(); + abstract public function execute(); /** * Constructor. @@ -74,6 +74,10 @@ abstract class WebInstallerPage { ); } + /** + * @param string|bool $continue + * @param string|bool $back + */ public function endForm( $continue = 'continue', $back = 'back' ) { $s = "<div class=\"config-submit\">\n"; $id = $this->getId(); @@ -84,25 +88,36 @@ abstract class WebInstallerPage { if ( $continue ) { // Fake submit button for enter keypress (bug 26267) - $s .= Xml::submitButton( wfMessage( "config-$continue" )->text(), - array( 'name' => "enter-$continue", 'style' => - 'visibility:hidden;overflow:hidden;width:1px;margin:0' ) ) . "\n"; + // Messages: config-continue, config-restart, config-regenerate + $s .= Xml::submitButton( + wfMessage( "config-$continue" )->text(), + array( + 'name' => "enter-$continue", + 'style' => 'visibility:hidden;overflow:hidden;width:1px;margin:0' + ) + ) . "\n"; } if ( $back ) { - $s .= Xml::submitButton( wfMessage( "config-$back" )->text(), + // Message: config-back + $s .= Xml::submitButton( + wfMessage( "config-$back" )->text(), array( 'name' => "submit-$back", 'tabindex' => $this->parent->nextTabIndex() - ) ) . "\n"; + ) + ) . "\n"; } if ( $continue ) { - $s .= Xml::submitButton( wfMessage( "config-$continue" )->text(), + // Messages: config-continue, config-restart, config-regenerate + $s .= Xml::submitButton( + wfMessage( "config-$continue" )->text(), array( 'name' => "submit-$continue", 'tabindex' => $this->parent->nextTabIndex(), - ) ) . "\n"; + ) + ) . "\n"; } $s .= "</div></form></div>\n"; @@ -128,7 +143,7 @@ abstract class WebInstallerPage { /** * Get the starting tags of a fieldset. * - * @param $legend String: message name + * @param string $legend message name * * @return string */ @@ -204,6 +219,7 @@ class WebInstaller_Language extends WebInstallerPage { if ( isset( $languages[$contLang] ) ) { $this->setVar( 'wgLanguageCode', $contLang ); } + return 'continue'; } } elseif ( $this->parent->showSessionWarning ) { @@ -251,13 +267,15 @@ class WebInstaller_Language extends WebInstallerPage { $languages = Language::fetchLanguageNames(); ksort( $languages ); foreach ( $languages as $code => $lang ) { - if ( isset( $wgDummyLanguageCodes[$code] ) ) continue; + if ( isset( $wgDummyLanguageCodes[$code] ) ) { + continue; + } $s .= "\n" . Xml::option( "$code - $lang", $code, $code == $selectedCode ); } $s .= "\n</select>\n"; + return $this->parent->label( $label, $name, $s ); } - } class WebInstaller_ExistingWiki extends WebInstallerPage { @@ -271,8 +289,8 @@ class WebInstaller_ExistingWiki extends WebInstallerPage { // Check if the upgrade key supplied to the user has appeared in LocalSettings.php if ( $vars['wgUpgradeKey'] !== false && $this->getVar( '_UpgradeKeySupplied' ) - && $this->getVar( 'wgUpgradeKey' ) === $vars['wgUpgradeKey'] ) - { + && $this->getVar( 'wgUpgradeKey' ) === $vars['wgUpgradeKey'] + ) { // It's there, so the user is authorized $status = $this->handleExistingUpgrade( $vars ); if ( $status->isOK() ) { @@ -281,6 +299,7 @@ class WebInstaller_ExistingWiki extends WebInstallerPage { $this->startForm(); $this->parent->showStatusBox( $status ); $this->endForm( 'continue' ); + return 'output'; } } @@ -299,6 +318,7 @@ class WebInstaller_ExistingWiki extends WebInstallerPage { $this->getVar( 'wgUpgradeKey' ) . "';</pre>" )->plain() ) ); $this->endForm( 'continue' ); + return 'output'; } @@ -307,9 +327,10 @@ class WebInstaller_ExistingWiki extends WebInstallerPage { $r = $this->parent->request; if ( $r->wasPosted() ) { $key = $r->getText( 'config_wgUpgradeKey' ); - if( !$key || $key !== $vars['wgUpgradeKey'] ) { + if ( !$key || $key !== $vars['wgUpgradeKey'] ) { $this->parent->showError( 'config-localsettings-badkey' ); $this->showKeyForm(); + return 'output'; } // Key was OK @@ -319,10 +340,12 @@ class WebInstaller_ExistingWiki extends WebInstallerPage { } else { $this->parent->showStatusBox( $status ); $this->showKeyForm(); + return 'output'; } } else { $this->showKeyForm(); + return 'output'; } } @@ -333,7 +356,7 @@ class WebInstaller_ExistingWiki extends WebInstallerPage { protected function showKeyForm() { $this->startForm(); $this->addHTML( - $this->parent->getInfoBox( wfMessage( 'config-localsettings-upgrade' )->plain() ). + $this->parent->getInfoBox( wfMessage( 'config-localsettings-upgrade' )->plain() ) . '<br />' . $this->parent->getTextBox( array( 'var' => 'wgUpgradeKey', @@ -352,24 +375,26 @@ class WebInstaller_ExistingWiki extends WebInstallerPage { } $this->setVar( $name, $vars[$name] ); } + return $status; } /** * Initiate an upgrade of the existing database - * @param $vars array Variables from LocalSettings.php and AdminSettings.php + * @param array $vars Variables from LocalSettings.php and AdminSettings.php * @return Status */ protected function handleExistingUpgrade( $vars ) { // Check $wgDBtype if ( !isset( $vars['wgDBtype'] ) || - !in_array( $vars['wgDBtype'], Installer::getDBTypes() ) ) { + !in_array( $vars['wgDBtype'], Installer::getDBTypes() ) + ) { return Status::newFatal( 'config-localsettings-connection-error', '' ); } // Set the relevant variables from LocalSettings.php $requiredVars = array( 'wgDBtype' ); - $status = $this->importVariables( $requiredVars , $vars ); + $status = $this->importVariables( $requiredVars, $vars ); $installer = $this->parent->getDBInstaller(); $status->merge( $this->importVariables( $installer->getGlobalNames(), $vars ) ); if ( !$status->isOK() ) { @@ -393,11 +418,13 @@ class WebInstaller_ExistingWiki extends WebInstallerPage { // Adjust the error message to explain things correctly $status->replaceMessage( 'config-connection-error', 'config-localsettings-connection-error' ); + return $status; } // All good $this->setVar( '_ExistingDBSettings', true ); + return $status; } } @@ -422,8 +449,9 @@ class WebInstaller_Welcome extends WebInstallerPage { } else { $this->parent->showStatusMessage( $status ); } - } + return ''; + } } class WebInstaller_DBConnect extends WebInstallerPage { @@ -439,6 +467,7 @@ class WebInstaller_DBConnect extends WebInstallerPage { if ( $status->isGood() ) { $this->setVar( '_UpgradeDone', false ); + return 'continue'; } else { $this->parent->showStatusBox( $status ); @@ -451,15 +480,23 @@ class WebInstaller_DBConnect extends WebInstallerPage { $settings = ''; $defaultType = $this->getVar( 'wgDBtype' ); + // Messages: config-dbsupport-mysql, config-dbsupport-postgres, config-dbsupport-oracle, + // config-dbsupport-sqlite $dbSupport = ''; - foreach( $this->parent->getDBTypes() as $type ) { - $link = DatabaseBase::factory( $type )->getSoftwareLink(); - $dbSupport .= wfMessage( "config-support-$type", $link )->plain() . "\n"; + foreach ( $this->parent->getDBTypes() as $type ) { + $dbSupport .= wfMessage( "config-dbsupport-$type" )->plain() . "\n"; } $this->addHTML( $this->parent->getInfoBox( wfMessage( 'config-support-info', trim( $dbSupport ) )->text() ) ); - foreach ( $this->parent->getVar( '_CompiledDBs' ) as $type ) { + // It's possible that the library for the default DB type is not compiled in. + // In that case, instead select the first supported DB type in the list. + $compiledDBs = $this->parent->getCompiledDBs(); + if ( !in_array( $defaultType, $compiledDBs ) ) { + $defaultType = $compiledDBs[0]; + } + + foreach ( $compiledDBs as $type ) { $installer = $this->parent->getDBInstaller( $type ); $types .= '<li>' . @@ -473,34 +510,40 @@ class WebInstaller_DBConnect extends WebInstallerPage { ) . "</li>\n"; - $settings .= - Html::openElement( 'div', array( 'id' => 'DB_wrapper_' . $type, - 'class' => 'dbWrapper' ) ) . + // Messages: config-header-mysql, config-header-postgres, config-header-oracle, + // config-header-sqlite + $settings .= Html::openElement( + 'div', + array( + 'id' => 'DB_wrapper_' . $type, + 'class' => 'dbWrapper' + ) + ) . Html::element( 'h3', array(), wfMessage( 'config-header-' . $type )->text() ) . $installer->getConnectForm() . "</div>\n"; } - $types .= "</ul><br style=\"clear: left\"/>\n"; - $this->addHTML( - $this->parent->label( 'config-db-type', false, $types ) . - $settings - ); + $types .= "</ul><br style=\"clear: left\"/>\n"; + $this->addHTML( $this->parent->label( 'config-db-type', false, $types ) . $settings ); $this->endForm(); } public function submit() { $r = $this->parent->request; $type = $r->getVal( 'DBType' ); + if ( !$type ) { + return Status::newFatal( 'config-invalid-db-type' ); + } $this->setVar( 'wgDBtype', $type ); $installer = $this->parent->getDBInstaller( $type ); if ( !$installer ) { return Status::newFatal( 'config-invalid-db-type' ); } + return $installer->submitConnectForm(); } - } class WebInstaller_Upgrade extends WebInstallerPage { @@ -521,6 +564,7 @@ class WebInstaller_Upgrade extends WebInstallerPage { // Show the done message again // Make them click back again if they want to do the upgrade again $this->showDoneMessage(); + return 'output'; } } @@ -544,11 +588,12 @@ class WebInstaller_Upgrade extends WebInstallerPage { if ( $result ) { // If they're going to possibly regenerate LocalSettings, we // need to create the upgrade/secret keys. Bug 26481 - if( !$this->getVar( '_ExistingDBSettings' ) ) { + if ( !$this->getVar( '_ExistingDBSettings' ) ) { $this->parent->generateKeys(); } $this->setVar( '_UpgradeDone', true ); $this->showDoneMessage(); + return 'output'; } } @@ -572,15 +617,14 @@ class WebInstaller_Upgrade extends WebInstallerPage { $this->parent->getInfoBox( wfMessage( $msg, $this->getVar( 'wgServer' ) . - $this->getVar( 'wgScriptPath' ) . '/index' . - $this->getVar( 'wgScriptExtension' ) + $this->getVar( 'wgScriptPath' ) . '/index' . + $this->getVar( 'wgScriptExtension' ) )->plain(), 'tick-32.png' ) ); $this->parent->restoreLinkPopups(); $this->endForm( $regenerate ? 'regenerate' : false, false ); } - } class WebInstaller_DBSettings extends WebInstallerPage { @@ -609,7 +653,6 @@ class WebInstaller_DBSettings extends WebInstallerPage { $this->addHTML( $form ); $this->endForm(); } - } class WebInstaller_Name extends WebInstallerPage { @@ -644,8 +687,11 @@ class WebInstaller_Name extends WebInstallerPage { $this->parent->getTextBox( array( 'var' => 'wgSitename', 'label' => 'config-site-name', - 'help' => $this->parent->getHelpBox( 'config-site-name-help' ) + 'help' => $this->parent->getHelpBox( 'config-site-name-help' ) ) ) . + // getRadioSet() builds a set of labeled radio buttons. + // For grep: The following messages are used as the item labels: + // config-ns-site-name, config-ns-generic, config-ns-other $this->parent->getRadioSet( array( 'var' => '_NamespaceType', 'label' => 'config-project-namespace', @@ -657,9 +703,8 @@ class WebInstaller_Name extends WebInstallerPage { ) ) . $this->parent->getTextBox( array( 'var' => 'wgMetaNamespace', - 'label' => '', //TODO: Needs a label? - 'attribs' => array( 'readonly' => 'readonly', 'class' => 'enabledByOther' ), - + 'label' => '', // @todo Needs a label? + 'attribs' => array( 'readonly' => 'readonly', 'class' => 'enabledByOther' ) ) ) . $this->getFieldSetStart( 'config-admin-box' ) . $this->parent->getTextBox( array( @@ -687,6 +732,9 @@ class WebInstaller_Name extends WebInstallerPage { ) ) . $this->getFieldSetEnd() . $this->parent->getInfoBox( wfMessage( 'config-almost-done' )->text() ) . + // getRadioSet() builds a set of labeled radio buttons. + // For grep: The following messages are used as the item labels: + // config-optional-continue, config-optional-skip $this->parent->getRadioSet( array( 'var' => '_SkipOptional', 'itemLabelPrefix' => 'config-optional-', @@ -698,6 +746,7 @@ class WebInstaller_Name extends WebInstallerPage { $this->setVar( 'wgMetaNamespace', $metaNS ); $this->endForm(); + return 'output'; } @@ -750,7 +799,7 @@ class WebInstaller_Name extends WebInstallerPage { // Make sure it won't conflict with any existing namespaces global $wgContLang; $nsIndex = $wgContLang->getNsIndex( $name ); - if( $nsIndex !== false && $nsIndex !== NS_PROJECT ) { + if ( $nsIndex !== false && $nsIndex !== NS_PROJECT ) { $this->parent->showError( 'config-ns-conflict', $name ); $retVal = false; } @@ -798,24 +847,22 @@ class WebInstaller_Name extends WebInstallerPage { // Validate e-mail if provided $email = $this->getVar( '_AdminEmail' ); - if( $email && !Sanitizer::validateEmail( $email ) ) { + if ( $email && !Sanitizer::validateEmail( $email ) ) { $this->parent->showError( 'config-admin-error-bademail' ); $retVal = false; } // If they asked to subscribe to mediawiki-announce but didn't give // an e-mail, show an error. Bug 29332 - if( !$email && $this->getVar( '_Subscribe' ) ) { + if ( !$email && $this->getVar( '_Subscribe' ) ) { $this->parent->showError( 'config-subscribe-noemail' ); $retVal = false; } return $retVal; } - } class WebInstaller_Options extends WebInstallerPage { - public function execute() { if ( $this->getVar( '_SkipOptional' ) == 'skip' ) { return 'skip'; @@ -830,6 +877,9 @@ class WebInstaller_Options extends WebInstallerPage { $this->startForm(); $this->addHTML( # User Rights + // getRadioSet() builds a set of labeled radio buttons. + // For grep: The following messages are used as the item labels: + // config-profile-wiki, config-profile-no-anon, config-profile-fishbowl, config-profile-private $this->parent->getRadioSet( array( 'var' => '_RightsProfile', 'label' => 'config-profile', @@ -839,6 +889,11 @@ class WebInstaller_Options extends WebInstallerPage { $this->parent->getInfoBox( wfMessage( 'config-profile-help' )->plain() ) . # Licensing + // getRadioSet() builds a set of labeled radio buttons. + // For grep: The following messages are used as the item labels: + // config-license-cc-by, config-license-cc-by-sa, config-license-cc-by-nc-sa, + // config-license-cc-0, config-license-pd, config-license-gfdl, + // config-license-none, config-license-cc-choose $this->parent->getRadioSet( array( 'var' => '_LicenseCode', 'label' => 'config-license', @@ -889,18 +944,27 @@ class WebInstaller_Options extends WebInstallerPage { $extensions = $this->parent->findExtensions(); - if( $extensions ) { + if ( $extensions ) { $extHtml = $this->getFieldSetStart( 'config-extensions' ); - foreach( $extensions as $ext ) { + /* Force a recache, so we load extensions descriptions */ + global $wgLang; + $lc = Language::getLocalisationCache(); + $lc->setInitialisedLanguages( array() ); + $lc->getItem( $wgLang->mCode, '' ); + LinkCache::singleton()->useDatabase( false ); + + foreach ( $extensions as $ext ) { $extHtml .= $this->parent->getCheckBox( array( - 'var' => "ext-$ext", - 'rawtext' => $ext, - ) ); + 'var' => "ext-{$ext['name']}", + 'rawtext' => "<b>{$ext['name']}</b>: " . + wfMessage( $ext['descriptionmsg'] )->useDatabase( false )->parse(), + ) ); + } $extHtml .= $this->parent->getHelpBox( 'config-extensions-help' ) . - $this->getFieldSetEnd(); + $this->getFieldSetEnd(); $this->addHTML( $extHtml ); } @@ -911,6 +975,10 @@ class WebInstaller_Options extends WebInstallerPage { $this->getVar( 'wgDeletedDirectory' ) ) ); + // If we're using the default, let the user set it relative to $wgScriptPath + $curLogo = $this->getVar( 'wgLogo' ); + $logoString = ( $curLogo == "/wiki/skins/common/images/wiki.png" ) ? + '$wgStylePath/common/images/wiki.png' : $curLogo; $uploadwrapperStyle = $this->getVar( 'wgEnableUploads' ) ? '' : 'display: none'; $this->addHTML( @@ -932,6 +1000,7 @@ class WebInstaller_Options extends WebInstallerPage { '</div>' . $this->parent->getTextBox( array( 'var' => 'wgLogo', + 'value' => $logoString, 'label' => 'config-logo', 'attribs' => array( 'dir' => 'ltr' ), 'help' => $this->parent->getHelpBox( 'config-logo-help' ) @@ -947,24 +1016,27 @@ class WebInstaller_Options extends WebInstallerPage { ); $caches = array( 'none' ); - if( count( $this->getVar( '_Caches' ) ) ) { + if ( count( $this->getVar( '_Caches' ) ) ) { $caches[] = 'accel'; } $caches[] = 'memcached'; // We'll hide/show this on demand when the value changes, see config.js. $cacheval = $this->getVar( 'wgMainCacheType' ); - if (!$cacheval) { + if ( !$cacheval ) { // We need to set a default here; but don't hardcode it // or we lose it every time we reload the page for validation // or going back! $cacheval = 'none'; } - $hidden = ($cacheval == 'memcached') ? '' : 'display: none'; + $hidden = ( $cacheval == 'memcached' ) ? '' : 'display: none'; $this->addHTML( # Advanced settings $this->getFieldSetStart( 'config-advanced-settings' ) . # Object cache settings + // getRadioSet() builds a set of labeled radio buttons. + // For grep: The following messages are used as the item labels: + // config-cache-none, config-cache-accel, config-cache-memcached $this->parent->getRadioSet( array( 'var' => 'wgMainCacheType', 'label' => 'config-cache-options', @@ -1001,12 +1073,13 @@ class WebInstaller_Options extends WebInstallerPage { $styleUrl = $server . dirname( dirname( $this->parent->getUrl() ) ) . '/skins/common/config-cc.css'; $iframeUrl = 'http://creativecommons.org/license/?' . - wfArrayToCGI( array( + wfArrayToCgi( array( 'partner' => 'MediaWiki', 'exit_url' => $exitUrl, 'lang' => $this->getVar( '_UserLang' ), 'stylesheet' => $styleUrl, ) ); + return $iframeUrl; } @@ -1024,10 +1097,9 @@ class WebInstaller_Options extends WebInstallerPage { } else { $iframeAttribs['src'] = $this->getCCPartnerUrl(); } - $wrapperStyle = ($this->getVar('_LicenseCode') == 'cc-choose') ? '' : 'display: none'; + $wrapperStyle = ( $this->getVar( '_LicenseCode' ) == 'cc-choose' ) ? '' : 'display: none'; - return - "<div class=\"config-cc-wrapper\" id=\"config-cc-wrapper\" style=\"$wrapperStyle\">\n" . + return "<div class=\"config-cc-wrapper\" id=\"config-cc-wrapper\" style=\"$wrapperStyle\">\n" . Html::element( 'iframe', $iframeAttribs, '', false /* not short */ ) . "</div>\n"; } @@ -1037,13 +1109,13 @@ class WebInstaller_Options extends WebInstallerPage { // If you change this height, also change it in config.css $expandJs = str_replace( '$1', '54em', $js ); $reduceJs = str_replace( '$1', '70px', $js ); - return - '<p>'. + + return '<p>' . Html::element( 'img', array( 'src' => $this->getVar( 'wgRightsIcon' ) ) ) . '  ' . htmlspecialchars( $this->getVar( 'wgRightsText' ) ) . "</p>\n" . - "<p style=\"text-align: center\">" . + "<p style=\"text-align: center;\">" . Html::element( 'a', array( 'href' => $this->getCCPartnerUrl(), @@ -1052,7 +1124,7 @@ class WebInstaller_Options extends WebInstallerPage { wfMessage( 'config-cc-again' )->text() ) . "</p>\n" . - "<script type=\"text/javascript\">\n" . + "<script>\n" . # Reduce the wrapper div height htmlspecialchars( $reduceJs ) . "\n" . @@ -1064,6 +1136,7 @@ class WebInstaller_Options extends WebInstallerPage { array( 'wgRightsUrl', 'wgRightsText', 'wgRightsIcon' ) ); if ( count( $newValues ) != 3 ) { $this->parent->showError( 'config-cc-error' ); + return; } $this->setVar( '_CCDone', true ); @@ -1078,8 +1151,8 @@ class WebInstaller_Options extends WebInstallerPage { 'wgUseInstantCommons' ) ); if ( !in_array( $this->getVar( '_RightsProfile' ), - array_keys( $this->parent->rightsProfiles ) ) ) - { + array_keys( $this->parent->rightsProfiles ) ) + ) { reset( $this->parent->rightsProfiles ); $this->setVar( '_RightsProfile', key( $this->parent->rightsProfiles ) ); } @@ -1088,9 +1161,14 @@ class WebInstaller_Options extends WebInstallerPage { if ( $code == 'cc-choose' ) { if ( !$this->getVar( '_CCDone' ) ) { $this->parent->showError( 'config-cc-not-chosen' ); + return false; } } elseif ( in_array( $code, array_keys( $this->parent->licenses ) ) ) { + // Messages: + // config-license-cc-by, config-license-cc-by-sa, config-license-cc-by-nc-sa, + // config-license-cc-0, config-license-pd, config-license-gfdl, config-license-none, + // config-license-cc-choose $entry = $this->parent->licenses[$code]; if ( isset( $entry['text'] ) ) { $this->setVar( 'wgRightsText', $entry['text'] ); @@ -1105,41 +1183,51 @@ class WebInstaller_Options extends WebInstallerPage { $this->setVar( 'wgRightsIcon', '' ); } - $extsAvailable = $this->parent->findExtensions(); + $extsAvailable = array_map( + function( $e ) { + if( isset( $e['name'] ) ) { + return $e['name']; + } + }, $this->parent->findExtensions() ); $extsToInstall = array(); - foreach( $extsAvailable as $ext ) { - if( $this->parent->request->getCheck( 'config_ext-' . $ext ) ) { - $extsToInstall[] = $ext; + foreach ( $extsAvailable as $key => $ext ) { + if ( $this->parent->request->getCheck( 'config_ext-' . $ext ) ) { + $extsToInstall[] = $extsAvailable[ $key ]; } } $this->parent->setVar( '_Extensions', $extsToInstall ); - if( $this->getVar( 'wgMainCacheType' ) == 'memcached' ) { + if ( $this->getVar( 'wgMainCacheType' ) == 'memcached' ) { $memcServers = explode( "\n", $this->getVar( '_MemCachedServers' ) ); - if( !$memcServers ) { + if ( !$memcServers ) { $this->parent->showError( 'config-memcache-needservers' ); + return false; } - foreach( $memcServers as $server ) { + foreach ( $memcServers as $server ) { $memcParts = explode( ":", $server, 2 ); if ( !isset( $memcParts[0] ) - || ( !IP::isValid( $memcParts[0] ) - && ( gethostbyname( $memcParts[0] ) == $memcParts[0] ) ) ) { + || ( !IP::isValid( $memcParts[0] ) + && ( gethostbyname( $memcParts[0] ) == $memcParts[0] ) ) + ) { $this->parent->showError( 'config-memcache-badip', $memcParts[0] ); + return false; - } elseif( !isset( $memcParts[1] ) ) { + } elseif ( !isset( $memcParts[1] ) ) { $this->parent->showError( 'config-memcache-noport', $memcParts[0] ); + return false; - } elseif( $memcParts[1] < 1 || $memcParts[1] > 65535 ) { + } elseif ( $memcParts[1] < 1 || $memcParts[1] > 65535 ) { $this->parent->showError( 'config-memcache-badport', 1, 65535 ); + return false; } } } + return true; } - } class WebInstaller_Install extends WebInstallerPage { @@ -1148,18 +1236,18 @@ class WebInstaller_Install extends WebInstallerPage { } public function execute() { - if( $this->getVar( '_UpgradeDone' ) ) { + if ( $this->getVar( '_UpgradeDone' ) ) { return 'skip'; - } elseif( $this->getVar( '_InstallDone' ) ) { + } elseif ( $this->getVar( '_InstallDone' ) ) { return 'continue'; - } elseif( $this->parent->request->wasPosted() ) { + } elseif ( $this->parent->request->wasPosted() ) { $this->startForm(); - $this->addHTML("<ul>"); + $this->addHTML( "<ul>" ); $results = $this->parent->performInstallation( - array( $this, 'startStage'), + array( $this, 'startStage' ), array( $this, 'endStage' ) ); - $this->addHTML("</ul>"); + $this->addHTML( "</ul>" ); // PerformInstallation bails on a fatal, so make sure the last item // completed before giving 'next.' Likewise, only provide back on failure $lastStep = end( $results ); @@ -1171,11 +1259,16 @@ class WebInstaller_Install extends WebInstallerPage { $this->addHTML( $this->parent->getInfoBox( wfMessage( 'config-install-begin' )->plain() ) ); $this->endForm(); } + return true; } public function startStage( $step ) { - $this->addHTML( "<li>" . wfMessage( "config-install-$step" )->escaped() . wfMessage( 'ellipsis')->escaped() ); + // Messages: config-install-database, config-install-tables, config-install-interwiki, + // config-install-stats, config-install-keys, config-install-sysop, config-install-mainpage + $this->addHTML( "<li>" . wfMessage( "config-install-$step" )->escaped() . + wfMessage( 'ellipsis' )->escaped() ); + if ( $step == 'extension-tables' ) { $this->startLiveBox(); } @@ -1195,25 +1288,23 @@ class WebInstaller_Install extends WebInstallerPage { $html = "<span class=\"error\">$html</span>"; } $this->addHTML( $html . "</li>\n" ); - if( !$status->isGood() ) { + if ( !$status->isGood() ) { $this->parent->showStatusBox( $status ); } } - } class WebInstaller_Complete extends WebInstallerPage { - public function execute() { // Pop up a dialog box, to make it difficult for the user to forget // to download the file $lsUrl = $this->getVar( 'wgServer' ) . $this->parent->getURL( array( 'localsettings' => 1 ) ); if ( isset( $_SERVER['HTTP_USER_AGENT'] ) && - strpos( $_SERVER['HTTP_USER_AGENT'], 'MSIE' ) !== false ) { - // JS appears the only method that works consistently with IE7+ - $this->addHtml( "\n<script type=\"" . $GLOBALS['wgJsMimeType'] . - '">jQuery( document ).ready( function() { document.location=' . - Xml::encodeJsVar( $lsUrl) . "; } );</script>\n" ); + strpos( $_SERVER['HTTP_USER_AGENT'], 'MSIE' ) !== false + ) { + // JS appears to be the only method that works consistently with IE7+ + $this->addHtml( "\n<script>jQuery( function () { document.location = " . + Xml::encodeJsVar( $lsUrl ) . "; } );</script>\n" ); } else { $this->parent->request->response()->header( "Refresh: 0;url=$lsUrl" ); } @@ -1225,12 +1316,15 @@ class WebInstaller_Complete extends WebInstallerPage { wfMessage( 'config-install-done', $lsUrl, $this->getVar( 'wgServer' ) . - $this->getVar( 'wgScriptPath' ) . '/index' . - $this->getVar( 'wgScriptExtension' ), + $this->getVar( 'wgScriptPath' ) . '/index' . + $this->getVar( 'wgScriptExtension' ), '<downloadlink/>' )->plain(), 'tick-32.png' ) ); + $this->addHTML( $this->parent->getInfoBox( + wfMessage( 'config-extension-link' )->text() ) ); + $this->parent->restoreLinkPopups(); $this->endForm( false, false ); } @@ -1245,6 +1339,7 @@ class WebInstaller_Restart extends WebInstallerPage { if ( $really ) { $this->parent->reset(); } + return 'continue'; } @@ -1253,14 +1348,13 @@ class WebInstaller_Restart extends WebInstallerPage { $this->addHTML( $s ); $this->endForm( 'restart' ); } - } abstract class WebInstaller_Document extends WebInstallerPage { - protected abstract function getFileName(); + abstract protected function getFileName(); - public function execute() { + public function execute() { $text = $this->getFileContents(); $text = InstallDocFormatter::format( $text ); $this->parent->output->addWikiText( $text ); @@ -1270,24 +1364,26 @@ abstract class WebInstaller_Document extends WebInstallerPage { public function getFileContents() { $file = __DIR__ . '/../../' . $this->getFileName(); - if( ! file_exists( $file ) ) { + if ( !file_exists( $file ) ) { return wfMessage( 'config-nofile', $file )->plain(); } + return file_get_contents( $file ); } - } class WebInstaller_Readme extends WebInstaller_Document { - protected function getFileName() { return 'README'; } + protected function getFileName() { + return 'README'; + } } class WebInstaller_ReleaseNotes extends WebInstaller_Document { protected function getFileName() { global $wgVersion; - if(! preg_match( '/^(\d+)\.(\d+).*/i', $wgVersion, $result ) ) { - throw new MWException('Variable $wgVersion has an invalid value.'); + if ( !preg_match( '/^(\d+)\.(\d+).*/i', $wgVersion, $result ) ) { + throw new MWException( 'Variable $wgVersion has an invalid value.' ); } return 'RELEASE-NOTES-' . $result[1] . '.' . $result[2]; @@ -1295,10 +1391,13 @@ class WebInstaller_ReleaseNotes extends WebInstaller_Document { } class WebInstaller_UpgradeDoc extends WebInstaller_Document { - protected function getFileName() { return 'UPGRADE'; } + protected function getFileName() { + return 'UPGRADE'; + } } class WebInstaller_Copying extends WebInstaller_Document { - protected function getFileName() { return 'COPYING'; } + protected function getFileName() { + return 'COPYING'; + } } - |