var $mExtraDescription = false;
+ /**
+ * @param $title Title
+ * @return WikiFilePage
+ */
protected function newPage( Title $title ) {
// Overload mPage with a file-specific page
return new WikiFilePage( $title );
# No need to display noarticletext, we use our own message, output in openShowImage()
if ( $this->mPage->getID() ) {
- # When $wgBetterDirectionality is enabled, NS_FILE is in the user language,
- # but this section (the actual wikitext) should be in page content language
+ # NS_FILE is in the user language, but this section (the actual wikitext)
+ # should be in page content language
$pageLang = $this->getTitle()->getPageLanguage();
$wgOut->addHTML( Xml::openElement( 'div', array( 'id' => 'mw-imagepage-content',
'lang' => $pageLang->getCode(), 'dir' => $pageLang->getDir(),
$wgOut->addModuleStyles( 'filepage' );
}
+ /**
+ * @return File
+ */
public function getDisplayedFile() {
$this->loadFile();
return $this->displayImg;
*
* Omit noarticletext if sharedupload; text will be fetched from the
* shared upload server if possible.
+ * @return string
*/
public function getContent() {
$this->loadFile();
$max = $wgImageLimits[$sizeSel];
$maxWidth = $max[0];
$maxHeight = $max[1];
- $sk = $wgUser->getSkin();
- $dirmark = wfUILang()->getDirMark();
+ $dirmark = $wgLang->getDirMark();
if ( $this->displayImg->exists() ) {
# image
# image
# "Download high res version" link below the image
- # $msgsize = wfMsgHtml( 'file-info-size', $width_orig, $height_orig, $sk->formatSize( $this->displayImg->getSize() ), $mime );
+ # $msgsize = wfMsgHtml( 'file-info-size', $width_orig, $height_orig, Linker::formatSize( $this->displayImg->getSize() ), $mime );
# We'll show a thumbnail of this image
if ( $width > $maxWidth || $height > $maxHeight ) {
# Calculate the thumbnail size.
$msgsmall = wfMessage( 'show-big-image-preview' )->
rawParams( $this->makeSizeLink( $params, $width, $height ) )->
parse() . ' ' .
- wfMessage( 'show-big-image-other' )->
- rawParams( $wgLang->pipeList( $otherSizes ) )->parse();
+ Html::rawElement( 'span', array( 'class' => 'mw-filepage-other-resolutions' ),
+ wfMessage( 'show-big-image-other' )->rawParams( $wgLang->pipeList( $otherSizes ) )->
+ params( count( $otherSizes ) )->parse()
+ );
+ } elseif ( $width == 0 && $height == 0 ){
+ # Some sort of audio file that doesn't have dimensions
+ # Don't output a no hi res message for such a file
+ $msgsmall = '';
} else {
# Image is small enough to show full size on image page
- $msgsmall = wfMsgExt( 'file-nohires', array( 'parseinline' ) );
+ $msgsmall = wfMessage( 'file-nohires' )->parse();
}
$params['width'] = $width;
$thumbnail = $this->displayImg->transform( $params );
$showLink = true;
- $anchorclose = '<br />' . $msgsmall;
+ $anchorclose = Html::rawElement( 'div', array( 'class' => 'mw-filepage-resolutioninfo' ), $msgsmall );
$isMulti = $this->displayImg->isMultipage() && $this->displayImg->pageCount() > 1;
if ( $isMulti ) {
if ( $page > 1 ) {
$label = $wgOut->parse( wfMsg( 'imgmultipageprev' ), false );
- $link = $sk->link(
+ $link = Linker::link(
$this->getTitle(),
$label,
array(),
array( 'page' => $page - 1 ),
array( 'known', 'noclasses' )
);
- $thumb1 = $sk->makeThumbLinkObj( $this->getTitle(), $this->displayImg, $link, $label, 'none',
+ $thumb1 = Linker::makeThumbLinkObj( $this->getTitle(), $this->displayImg, $link, $label, 'none',
array( 'page' => $page - 1 ) );
} else {
$thumb1 = '';
if ( $page < $count ) {
$label = wfMsg( 'imgmultipagenext' );
- $link = $sk->link(
+ $link = Linker::link(
$this->getTitle(),
$label,
array(),
array( 'page' => $page + 1 ),
array( 'known', 'noclasses' )
);
- $thumb2 = $sk->makeThumbLinkObj( $this->getTitle(), $this->displayImg, $link, $label, 'none',
+ $thumb2 = Linker::makeThumbLinkObj( $this->getTitle(), $this->displayImg, $link, $label, 'none',
array( 'page' => $page + 1 ) );
} else {
$thumb2 = '';
'action' => $wgScript,
'onchange' => 'document.pageselector.submit();',
);
-
+ $options = array();
for ( $i = 1; $i <= $count; $i++ ) {
$options[] = Xml::option( $wgLang->formatNum( $i ), $i, $i == $page );
}
wfMsgExt( 'imgmultigoto', array( 'parseinline', 'replaceafter' ), $select ) .
Xml::submitButton( wfMsg( 'imgmultigo' ) ) .
Xml::closeElement( 'form' ) .
- "<hr />$thumb1\n$thumb2<br clear=\"all\" /></div></td></tr></table>"
+ "<hr />$thumb1\n$thumb2<br style=\"clear: both\" /></div></td></tr></table>"
);
}
} else {
/**
* Creates an thumbnail of specified size and returns an HTML link to it
- * @param array $params Scaler parameters
- * @param int $width
- * @param int $height
+ * @param $params array Scaler parameters
+ * @param $width int
+ * @param $height int
+ * @return string
*/
private function makeSizeLink( $params, $width, $height ) {
$params['width'] = $width;
return;
}
- $sk = $wgUser->getSkin();
-
$wgOut->addHTML( "<br /><ul>\n" );
# "Upload a new version of this file" link
if ( UploadBase::userCanReUpload( $wgUser, $this->mPage->getFile()->name ) ) {
- $ulink = $sk->makeExternalLink( $this->getUploadUrl(), wfMsg( 'uploadnewversion-linktext' ) );
+ $ulink = Linker::makeExternalLink( $this->getUploadUrl(), wfMsg( 'uploadnewversion-linktext' ) );
$wgOut->addHTML( "<li id=\"mw-imagepage-reupload-link\"><div class=\"plainlinks\">{$ulink}</div></li>\n" );
}
# External editing link
if ( $wgUseExternalEditor ) {
- $elink = $sk->link(
+ $elink = Linker::link(
$this->getTitle(),
wfMsgHtml( 'edit-externally' ),
array(),
}
}
+ /**
+ * @param $target
+ * @param $limit
+ * @return ResultWrapper
+ */
protected function queryImageLinks( $target, $limit ) {
$dbr = wfGetDB( DB_SLAVE );
}
protected function imageLinks() {
- global $wgUser, $wgOut, $wgLang;
+ global $wgOut, $wgLang;
$limit = 100;
Html::openElement( 'ul',
array( 'class' => 'mw-imagepage-linkstoimage' ) ) . "\n"
);
- $sk = $wgUser->getSkin();
$count = 0;
// Sort the list by namespace:title
break;
}
- $link = $sk->linkKnown( Title::makeTitle( $element->page_namespace, $element->page_title ) );
+ $link = Linker::linkKnown( Title::makeTitle( $element->page_namespace, $element->page_title ) );
if ( !isset( $redirects[$element->page_title] ) ) {
$liContents = $link;
} else {
break;
}
- $link2 = $sk->linkKnown( Title::makeTitle( $row->page_namespace, $row->page_title ) );
+ $link2 = Linker::linkKnown( Title::makeTitle( $row->page_namespace, $row->page_title ) );
$ul .= Html::rawElement(
'li',
array( 'id' => 'mw-imagepage-linkstoimage-ns' . $element->page_namespace ),
}
protected function imageDupes() {
- global $wgOut, $wgUser, $wgLang;
+ global $wgOut, $wgLang;
$this->loadFile();
);
$wgOut->addHTML( "<ul class='mw-imagepage-duplicates'>\n" );
- $sk = $wgUser->getSkin();
+ /**
+ * @var $file File
+ */
foreach ( $dupes as $file ) {
$fromSrc = '';
if ( $file->isLocal() ) {
- $link = $sk->link(
+ $link = Linker::link(
$file->getTitle(),
null,
array(),
array( 'known', 'noclasses' )
);
} else {
- $link = $sk->makeExternalLink( $file->getDescriptionUrl(),
+ $link = Linker::makeExternalLink( $file->getDescriptionUrl(),
$file->getTitle()->getPrefixedText() );
$fromSrc = wfMsg( 'shared-repo-from', $file->getRepo()->getDisplayName() );
}
* Delete the file, or an earlier version of it
*/
public function delete() {
- global $wgUploadMaintenance;
- if ( $wgUploadMaintenance && $this->getTitle() && $this->getTitle()->getNamespace() == NS_FILE ) {
- global $wgOut;
- $wgOut->wrapWikiMsg( "<div class='error'>\n$1\n</div>\n", array( 'filedelete-maintenance' ) );
- return;
- }
-
- $this->loadFile();
- if ( !$this->mPage->getFile()->exists() || !$this->mPage->getFile()->isLocal() || $this->mPage->getFile()->getRedirected() ) {
+ $file = $this->mPage->getFile();
+ if ( !$file->exists() || !$file->isLocal() || $file->getRedirected() ) {
// Standard article deletion
parent::delete();
return;
}
- $deleter = new FileDeleteForm( $this->mPage->getFile() );
+
+ $deleter = new FileDeleteForm( $file );
$deleter->execute();
}
/**
* Display an error with a wikitext description
+ *
+ * @param $description String
*/
function showError( $description ) {
global $wgOut;
- $wgOut->setPageTitle( wfMsg( 'internalerror' ) );
+ $wgOut->setPageTitle( wfMessage( 'internalerror' ) );
$wgOut->setRobotPolicy( 'noindex,nofollow' );
$wgOut->setArticleRelated( false );
$wgOut->enableClientCache( false );
protected $imagePage;
/**
- * @var Skin
+ * @var File
*/
- protected $skin;
+ protected $current;
protected $repo, $showThumb;
protected $preventClickjacking = false;
* @param ImagePage $imagePage
*/
public function __construct( $imagePage ) {
- global $wgUser, $wgShowArchiveThumbnails;
- $this->skin = $wgUser->getSkin();
+ global $wgShowArchiveThumbnails;
$this->current = $imagePage->getFile();
$this->img = $imagePage->getDisplayedFile();
$this->title = $imagePage->getTitle();
$this->showThumb = $wgShowArchiveThumbnails && $this->img->canRender();
}
+ /**
+ * @return ImagePage
+ */
public function getImagePage() {
return $this->imagePage;
}
- public function getSkin() {
- return $this->skin;
- }
-
+ /**
+ * @return File
+ */
public function getFile() {
return $this->img;
}
+ /**
+ * @param $navLinks string
+ * @return string
+ */
public function beginImageHistoryList( $navLinks = '' ) {
global $wgOut, $wgUser;
return Xml::element( 'h2', array( 'id' => 'filehistory' ), wfMsg( 'filehist' ) ) . "\n"
. "</tr>\n";
}
+ /**
+ * @param $navLinks string
+ * @return string
+ */
public function endImageHistoryList( $navLinks = '' ) {
return "</table>\n$navLinks\n</div>\n";
}
* @return string
*/
public function imageHistoryLine( $iscur, $file ) {
- global $wgUser, $wgLang;
+ global $wgUser, $wgLang, $wgContLang;
$timestamp = wfTimestamp( TS_MW, $file->getTimestamp() );
$img = $iscur ? $file->getName() : $file->getArchiveName();
if ( !$iscur ) {
$q['oldimage'] = $img;
}
- $row .= $this->skin->link(
+ $row .= Linker::link(
$this->title,
wfMsgHtml( $iscur ? 'filehist-deleteall' : 'filehist-deleteone' ),
array(), $q, array( 'known' )
}
// If file is top revision or locked from this user, don't link
if ( $iscur || !$file->userCan( File::DELETED_RESTRICTED ) ) {
- $del = $this->skin->revDeleteLinkDisabled( $canHide );
+ $del = Linker::revDeleteLinkDisabled( $canHide );
} else {
list( $ts, $name ) = explode( '!', $img, 2 );
$query = array(
'target' => $this->title->getPrefixedText(),
'ids' => $ts,
);
- $del = $this->skin->revDeleteLink( $query,
+ $del = Linker::revDeleteLink( $query,
$file->isDeleted( File::DELETED_RESTRICTED ), $canHide );
}
$row .= $del;
if ( $file->isDeleted( File::DELETED_FILE ) ) {
$row .= wfMsgHtml( 'filehist-revert' );
} else {
- $row .= $this->skin->link(
+ $row .= Linker::link(
$this->title,
wfMsgHtml( 'filehist-revert' ),
array(),
array(
'action' => 'revert',
'oldimage' => $img,
- 'wpEditToken' => $wgUser->editToken( $img )
+ 'wpEditToken' => $wgUser->getEditToken( $img )
),
array( 'known', 'noclasses' )
);
$this->preventClickjacking();
$revdel = SpecialPage::getTitleFor( 'Revisiondelete' );
# Make a link to review the image
- $url = $this->skin->link(
+ $url = Linker::link(
$revdel,
$wgLang->timeAndDate( $timestamp, true ),
array(),
array(
'target' => $this->title->getPrefixedText(),
'file' => $img,
- 'token' => $wgUser->editToken( $img )
+ 'token' => $wgUser->getEditToken( $img )
),
array( 'known', 'noclasses' )
);
// Image dimensions + size
$row .= '<td>';
$row .= htmlspecialchars( $file->getDimensionsString() );
- $row .= ' <span style="white-space: nowrap;">(' . $this->skin->formatSize( $file->getSize() ) . ')</span>';
+ $row .= ' <span style="white-space: nowrap;">(' . Linker::formatSize( $file->getSize() ) . ')</span>';
$row .= '</td>';
// Uploading user
$row .= '<span class="history-deleted">' . wfMsgHtml( 'rev-deleted-user' ) . '</span>';
} else {
if ( $local ) {
- $row .= $this->skin->userLink( $user, $usertext ) . ' <span style="white-space: nowrap;">' .
- $this->skin->userToolLinks( $user, $usertext ) . '</span>';
+ $row .= Linker::userLink( $user, $usertext ) . ' <span style="white-space: nowrap;">' .
+ Linker::userToolLinks( $user, $usertext ) . '</span>';
} else {
$row .= htmlspecialchars( $usertext );
}
}
- $row .= '</td><td>';
+ $row .= '</td>';
// Don't show deleted descriptions
if ( $file->isDeleted( File::DELETED_COMMENT ) ) {
- $row .= '<span class="history-deleted">' . wfMsgHtml( 'rev-deleted-comment' ) . '</span>';
+ $row .= '<td><span class="history-deleted">' . wfMsgHtml( 'rev-deleted-comment' ) . '</span></td>';
} else {
- $row .= $this->skin->commentBlock( $description, $this->title );
+ $row .= '<td dir="' . $wgContLang->getDir() . '">' . Linker::formatComment( $description, $this->title ) . '</td>';
}
- $row .= '</td>';
$rowClass = null;
wfRunHooks( 'ImagePageFileHistoryLine', array( $this, $file, &$row, &$rowClass ) );
}
}
+ /**
+ * @param $enable bool
+ */
protected function preventClickjacking( $enable = true ) {
$this->preventClickjacking = $enable;
}
+ /**
+ * @return bool
+ */
public function getPreventClickjacking() {
return $this->preventClickjacking;
}
$this->mRange = array( 0, 0 ); // display range
}
+ /**
+ * @return Title
+ */
function getTitle() {
return $this->mTitle;
}
return false;
}
+ /**
+ * @return string
+ */
function getIndexField() {
return '';
}
+ /**
+ * @return string
+ */
function formatRow( $row ) {
return '';
}
+ /**
+ * @return string
+ */
function getBody() {
$s = '';
$this->doQuery();
$this->mQueryDone = true;
}
+ /**
+ * @param $enable bool
+ */
protected function preventClickjacking( $enable = true ) {
$this->preventClickjacking = $enable;
}
+ /**
+ * @return bool
+ */
public function getPreventClickjacking() {
return $this->preventClickjacking;
}