'Alexandre Emsenhuber', 'Siebrand Mazeland', 'Chad Horohoe',
'Roan Kattouw', 'Trevor Parscal', 'Bryan Tong Minh', 'Sam Reed',
'Victor Vasiliev', 'Rotem Liss', 'Platonides', 'Antoine Musso',
- 'Timo Tijhof', 'Daniel Kinzler', 'Jeroen De Dauw', $othersLink,
- $translatorsLink
+ 'Timo Tijhof', 'Daniel Kinzler', 'Jeroen De Dauw', 'Brad Jorsch',
+ $othersLink, $translatorsLink
);
return wfMessage( 'version-poweredby-credits', MWTimestamp::getLocalInstance()->format( 'Y' ),
*
* @return string
*/
- static function softwareInformation() {
+ public static function softwareInformation() {
$dbr = wfGetDB( DB_SLAVE );
// Put the software in an array of form 'name' => 'version'. All messages should
*
* @return string Wikitext
*/
- function getExtensionCredits() {
+ public function getExtensionCredits() {
global $wgExtensionCredits;
if (
*
* @return string Wikitext
*/
- function getSkinCredits() {
+ public function getSkinCredits() {
global $wgExtensionCredits;
if ( !isset( $wgExtensionCredits['skin'] ) || count( $wgExtensionCredits['skin'] ) === 0 ) {
return '';
);
array_walk( $tags, function ( &$value ) {
- $value = '<' . htmlspecialchars( $value ) . '>';
+ // Bidirectional isolation improves readability in RTL wikis
+ $value = Html::element(
+ 'bdi',
+ // Prevent < and > from slipping to another line
+ array(
+ 'style' => 'white-space: nowrap;',
+ ),
+ "<$value>"
+ );
} );
+
$out .= $this->listToText( $tags );
} else {
$out = '';
* @param array $b
* @return int
*/
- function compare( $a, $b ) {
+ public function compare( $a, $b ) {
if ( $a['name'] === $b['name'] ) {
return 0;
} else {
*
* @return string Raw HTML
*/
- function getCreditsForExtension( array $extension ) {
+ public function getCreditsForExtension( array $extension ) {
$out = $this->getOutput();
// We must obtain the information for all the bits and pieces!
$licenseLink = Linker::link(
$this->getPageTitle( 'License/' . $extensionName ),
$out->parseInline( $extension['license-name'] ),
- array( 'class' => 'mw-version-ext-license' )
+ array(
+ 'class' => 'mw-version-ext-license',
+ 'dir' => 'auto',
+ )
);
} elseif ( $this->getExtLicenseFileName( $extensionPath ) ) {
$licenseLink = Linker::link(
$this->getPageTitle( 'License/' . $extensionName ),
$this->msg( 'version-ext-license' ),
- array( 'class' => 'mw-version-ext-license' )
+ array(
+ 'class' => 'mw-version-ext-license',
+ 'dir' => 'auto',
+ )
);
}
$html .= Html::rawElement( 'td', array( 'class' => 'mw-version-ext-description' ), $description );
$html .= Html::rawElement( 'td', array( 'class' => 'mw-version-ext-authors' ), $authors );
- $html .= Html::closeElement( 'td' );
+ $html .= Html::closeElement( 'tr' );
return $html;
}
*
* @return string HTML fragment
*/
- function listAuthors( $authors, $extName, $extDir ) {
+ public function listAuthors( $authors, $extName, $extDir ) {
$hasOthers = false;
$list = array();
*
* @return string
*/
- function listToText( $list, $sort = true ) {
+ public function listToText( $list, $sort = true ) {
if ( !count( $list ) ) {
return '';
}
$language = $this->getLanguage();
$thAttribures = array(
'dir' => $language->getDir(),
- 'lang' => $language->getCode()
+ 'lang' => $language->getHtmlCode()
);
$out = Html::element(
'h2',