* @file
*/
+use MediaWiki\MediaWikiServices;
use Wikimedia\Rdbms\ResultWrapper;
/**
'h2',
[ 'id' => 'metadata' ],
$this->getContext()->msg( 'metadata' )->text() ) . "\n" );
- $out->addWikiTextAsInterface( $this->makeMetadataTable( $formattedMetadata ) );
+ $out->wrapWikiTextAsInterface(
+ 'mw-imagepage-section-metadata',
+ $this->makeMetadataTable( $formattedMetadata )
+ );
$out->addModules( [ 'mediawiki.action.view.metadata' ] );
}
* @return string The metadata table. This is treated as Wikitext (!)
*/
protected function makeMetadataTable( $metadata ) {
- $r = "<div class=\"mw-imagepage-section-metadata\">";
- $r .= $this->getContext()->msg( 'metadata-help' )->plain();
+ $r = $this->getContext()->msg( 'metadata-help' )->plain();
// Intial state is collapsed
// see filepage.css and mediawiki.action.view.metadata module.
$r .= "<table id=\"mw_metadata\" class=\"mw_metadata collapsed\">\n";
);
}
}
- $r .= "</table>\n</div>\n";
+ $r .= "</table>\n";
return $r;
}
*/
public function getEmptyPageParserOutput( ParserOptions $options ) {
$this->loadFile();
- if ( $this->mPage->getFile() && !$this->mPage->getFile()->isLocal() && 0 == $this->getId() ) {
+ if ( $this->mPage->getFile() && !$this->mPage->getFile()->isLocal() && $this->getId() == 0 ) {
return new ParserOutput();
}
return parent::getEmptyPageParserOutput( $options );
}
+ /**
+ * Returns language code to be used for dispaying the image, based on request context and
+ * languages available in the file.
+ *
+ * @param WebRequest $request
+ * @param File $file
+ * @return string|null
+ */
private function getLanguageForRendering( WebRequest $request, File $file ) {
- $handler = $this->displayImg->getHandler();
+ $handler = $file->getHandler();
if ( !$handler ) {
return null;
}
- $requestLanguage = $request->getVal( 'lang' );
- if ( !is_null( $requestLanguage ) ) {
- if ( $handler->validateParam( 'lang', $requestLanguage ) ) {
- return $requestLanguage;
- }
+ $config = MediaWikiServices::getInstance()->getMainConfig();
+ $requestLanguage = $request->getVal( 'lang', $config->get( 'LanguageCode' ) );
+ if ( $handler->validateParam( 'lang', $requestLanguage ) ) {
+ return $file->getMatchedLanguage( $requestLanguage );
}
- return $handler->getDefaultRenderLanguage( $this->displayImg );
+ return $handler->getDefaultRenderLanguage( $file );
}
protected function openShowImage() {
# image
# "Download high res version" link below the image
# $msgsize = $this->getContext()->msg( 'file-info-size', $width_orig, $height_orig,
- # Linker::formatSize( $this->displayImg->getSize() ), $mime )->escaped();
+ # Language::formatSize( $this->displayImg->getSize() ), $mime )->escaped();
# We'll show a thumbnail of this image
if ( $width > $maxWidth || $height > $maxHeight || $this->displayImg->isVectorized() ) {
list( $width, $height ) = $this->getDisplayWidthHeight(
}
/**
- * @param $lang string
- * @param $selected bool
+ * @param string $lang
+ * @param bool $selected
* @return string
*/
private function createXmlOptionStringForLanguage( $lang, $selected ) {