*/
protected $tabIndex = 1;
+ /**
+ * Numeric index of the help box
+ *
+ * @var int
+ */
+ protected $helpBoxId = 1;
+
/**
* Name of the page we're on
*
parent::__construct();
$this->output = new WebInstallerOutput( $this );
$this->request = $request;
-
- // Add parser hooks
- $parser = MediaWikiServices::getInstance()->getParser();
- $parser->setHook( 'downloadlink', [ $this, 'downloadLinkHook' ] );
- $parser->setHook( 'doclink', [ $this, 'docLink' ] );
}
/**
# Special case for Creative Commons partner chooser box.
if ( $this->request->getVal( 'SubmitCC' ) ) {
+ /** @var WebInstallerOptions $page */
$page = $this->getPageByName( 'Options' );
+ '@phan-var WebInstallerOptions $page';
$this->output->useShortHeader();
$this->output->allowFrames();
$page->submitCC();
}
if ( $this->request->getVal( 'ShowCC' ) ) {
+ /** @var WebInstallerOptions $page */
$page = $this->getPageByName( 'Options' );
+ '@phan-var WebInstallerOptions $page';
$this->output->useShortHeader();
$this->output->allowFrames();
$this->output->addHTML( $page->getCCDoneBox() );
);
}
$text = $msg->useDatabase( false )->plain();
- $this->output->addHTML( $this->getErrorBox( $text ) );
+ $box = Html::errorBox( $text, '', 'config-error-box' );
+ $this->output->addHTML( $box );
}
/**
/**
* Get HTML for an error box with an icon.
*
+ * @deprecated since 1.34 Use Html::errorBox() instead.
* @param string $text Wikitext, get this with wfMessage()->plain()
*
* @return string
*/
public function getErrorBox( $text ) {
+ wfDeprecated( __METHOD__, '1.34' );
return $this->getInfoBox( $text, 'critical-32.png', 'config-error-box' );
}
/**
* Get HTML for a warning box with an icon.
*
+ * @deprecated since 1.34 Use Html::warningBox() instead.
* @param string $text Wikitext, get this with wfMessage()->plain()
*
* @return string
*/
public function getWarningBox( $text ) {
+ wfDeprecated( __METHOD__, '1.34' );
return $this->getInfoBox( $text, 'warning-32.png', 'config-warning-box' );
}
/**
- * Get HTML for an info box with an icon.
+ * Get HTML for an information message box with an icon.
*
- * @param string $text Wikitext, get this with wfMessage()->plain()
+ * @deprecated since 1.34.
+ * @param string|HtmlArmor $text Wikitext to be parsed (from Message::plain) or raw HTML.
* @param string|bool $icon Icon name, file in mw-config/images. Default: false
* @param string|bool $class Additional class name to add to the wrapper div. Default: false.
- *
- * @return string
+ * @return string HTML
*/
public function getInfoBox( $text, $icon = false, $class = false ) {
- $text = $this->parse( $text, true );
+ wfDeprecated( __METHOD__, '1.34' );
+ $html = ( $text instanceof HtmlArmor ) ?
+ HtmlArmor::getHtml( $text ) :
+ $this->parse( $text, true );
$icon = ( $icon == false ) ?
'images/info-32.png' :
'images/' . $icon;
$alt = wfMessage( 'config-information' )->text();
- return Html::infoBox( $text, $icon, $alt, $class );
+ return Html::infoBox( $html, $icon, $alt, $class );
}
/**
$args = array_map( 'htmlspecialchars', $args );
$text = wfMessage( $msg, $args )->useDatabase( false )->plain();
$html = $this->parse( $text, true );
+ $id = 'helpBox-' . $this->helpBoxId++;
return "<div class=\"config-help-field-container\">\n" .
- "<span class=\"config-help-field-hint\" title=\"" .
+ "<input type=\"checkbox\" class=\"config-help-field-checkbox\" id=\"$id\" />" .
+ "<label class=\"config-help-field-hint\" for=\"$id\" title=\"" .
wfMessage( 'config-help-tooltip' )->escaped() . "\">" .
- wfMessage( 'config-help' )->escaped() . "</span>\n" .
+ wfMessage( 'config-help' )->escaped() . "</label>\n" .
"<div class=\"config-help-field-data\">" . $html . "</div>\n" .
"</div>\n";
}
$text = $status->getWikiText();
if ( $status->isOK() ) {
- $box = $this->getWarningBox( $text );
+ $box = Html::warningBox( $text, 'config-warning-box' );
} else {
- $box = $this->getErrorBox( $text );
+ $box = Html::errorBox( $text, '', 'config-error-box' );
}
$this->output->addHTML( $box );
}
/**
- * Helper for Installer::docLink()
+ * Helper for WebInstallerOutput
*
+ * @internal For use by WebInstallerOutput
* @param string $page
- *
* @return string
*/
- protected function getDocUrl( $page ) {
+ public function getDocUrl( $page ) {
$query = [ 'page' => $page ];
if ( in_array( $this->currentPageName, $this->pageSequence ) ) {
}
/**
- * Extension tag hook for a documentation link.
+ * Helper for sidebar links.
*
+ * @internal For use in WebInstallerOutput class
+ * @param string $url
* @param string $linkText
- * @param string[] $attribs
- * @param Parser $parser Unused
- *
- * @return string
+ * @return string HTML
*/
- public function docLink( $linkText, $attribs, $parser ) {
- $url = $this->getDocUrl( $attribs['href'] );
-
- return Html::element( 'a', [ 'href' => $url ], $linkText );
+ public function makeLinkItem( $url, $linkText ) {
+ return Html::rawElement( 'li', [],
+ Html::element( 'a', [ 'href' => $url ], $linkText )
+ );
}
/**
- * Helper for "Download LocalSettings" link on WebInstall_Complete
- *
- * @param string $text Unused
- * @param string[] $attribs Unused
- * @param Parser $parser Unused
+ * Helper for "Download LocalSettings" link.
*
+ * @internal For use in WebInstallerComplete class
* @return string Html for download link
*/
- public function downloadLinkHook( $text, $attribs, $parser ) {
+ public function makeDownloadLinkHtml() {
$anchor = Html::rawElement( 'a',
[ 'href' => $this->getUrl( [ 'localsettings' => 1 ] ) ],
wfMessage( 'config-download-localsettings' )->parse()