"
. "
";
}
$isBadFile = $exists && $thumb && $parser &&
$parser->getBadFileLookup()->isBadFile(
$manualthumb ? $manual_title : $title->getDBkey(),
$parser->getTitle()
);
if ( !$exists ) {
$rdfaType = 'mw:Error ' . $rdfaType;
$label = '';
if ( !$enableLegacyMediaDOM ) {
$label = $frameParams['alt'] ?? '';
}
$s .= self::makeBrokenImageLinkObj(
$title, $label, '', '', '', (bool)$time, $handlerParams, false
);
$zoomIcon = '';
} elseif ( !$thumb || ( !$enableLegacyMediaDOM && $thumb->isError() ) || $isBadFile ) {
$rdfaType = 'mw:Error ' . $rdfaType;
if ( $enableLegacyMediaDOM ) {
if ( !$thumb ) {
$s .= wfMessage( 'thumbnail_error', '' )->escaped();
} else {
$s .= self::makeBrokenImageLinkObj(
$title, '', '', '', '', (bool)$time, $handlerParams, true
);
}
} else {
if ( $thumb && $thumb->isError() ) {
Assert::invariant(
$thumb instanceof MediaTransformError,
'Unknown MediaTransformOutput: ' . get_class( $thumb )
);
$label = $thumb->toText();
} elseif ( !$thumb ) {
$label = wfMessage( 'thumbnail_error', '' )->text();
} else {
$label = '';
}
$s .= self::makeBrokenImageLinkObj(
$title, $label, '', '', '', (bool)$time, $handlerParams, true
);
}
$zoomIcon = '';
} else {
if ( !$noscale && !$manualthumb ) {
self::processResponsiveImages( $file, $thumb, $handlerParams );
}
$params = [];
// An empty alt indicates an image is not a key part of the content
// and that non-visual browsers may omit it from rendering. Only
// set the parameter if it's explicitly requested.
if ( isset( $frameParams['alt'] ) ) {
$params['alt'] = $frameParams['alt'];
}
if ( $enableLegacyMediaDOM ) {
$params += [
'img-class' => ( isset( $frameParams['class'] ) && $frameParams['class'] !== ''
? $frameParams['class'] . ' '
: '' ) . 'thumbimage'
];
} else {
$params += [
'img-class' => 'mw-file-element',
];
// Only thumbs gets the magnify link
if ( $rdfaType === 'mw:File/Thumb' ) {
$params['magnify-resource'] = $url;
}
}
$params = self::getImageLinkMTOParams( $frameParams, $query, $parser ) + $params;
$s .= $thumb->toHtml( $params );
if ( isset( $frameParams['framed'] ) ) {
$zoomIcon = '';
} else {
$zoomIcon = Html::rawElement( 'div', [ 'class' => 'magnify' ],
Html::rawElement( 'a', [
'href' => $url,
'class' => 'internal',
'title' => wfMessage( 'thumbnail-more' )->text(),
] )
);
}
}
if ( $enableLegacyMediaDOM ) {
$s .= '
' . $zoomIcon . $frameParams['caption'] . '