X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FImagePage.php;h=55e63baffe8912536f4e7e8bd98d48c1b8a94b41;hb=06adafb3d506a347cc7cffbe50a3c15dc8368912;hp=a9070dae043ea1ec45f8a85822e15a69cfb03391;hpb=d4c4ed8bfeaca6c009b4335344e5045b64465c4c;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/ImagePage.php b/includes/ImagePage.php index a9070dae04..55e63baffe 100644 --- a/includes/ImagePage.php +++ b/includes/ImagePage.php @@ -13,45 +13,34 @@ class ImagePage extends Article { /* private */ var $img; // Image object /* private */ var $displayImg; /* private */ var $repo; - /* private */ var $time; /* private */ var $fileLoaded; var $mExtraDescription = false; var $dupes; - function __construct( $title, $time = null ) { + function __construct( $title ) { parent::__construct( $title ); - - global $wgRequest; - $time = is_null($time) ? $wgRequest->getVal( 'filetimestamp' ) : $time; - $time = $time ? $time : false; // be clear about type - $this->time = $time; $this->dupes = null; $this->repo = null; } - + protected function loadFile() { if ( $this->fileLoaded ) { return true; } - $this->displayImg = wfFindFile( $this->mTitle, $this->time ); - # If none found, and no time given, use a valid local placeholder - if ( !$this->displayImg && !$this->time ) { - $this->displayImg = wfLocalFile( $this->mTitle ); - $this->img = $this->displayImg; - # If none found, and time given, try current - } else if ( !$this->displayImg && $this->time ) { - $this->displayImg = wfFindFile( $this->mTitle ); - # If none found, use a valid local placeholder - if( !$this->displayImg ) { - $this->displayImg = wfLocalFile( $this->mTitle ); // fallback to current + $this->fileLoaded = true; + + $this->displayImg = $this->img = false; + wfRunHooks( 'ImagePageFindFile', array( $this, &$this->img, &$this->displayImg ) ); + if ( !$this->img ) { + $this->img = wfFindFile( $this->mTitle ); + if ( !$this->img ) { + $this->img = wfLocalFile( $this->mTitle ); } - $this->img = $this->displayImg; - # If found, set $this->img. This will be the same if no time given - } else { - $this->img = $this->time ? wfFindFile( $this->mTitle ) : $this->displayImg; + } + if ( !$this->displayImg ) { + $this->displayImg = $this->img; } $this->repo = $this->img->getRepo(); - $this->fileLoaded = true; } /** @@ -552,10 +541,11 @@ EOT function checkSharedConflictCallback( $repo ) { $this->loadFile(); $dupfile = $repo->newFile( $this->img->getTitle() ); - if( $dupfile->exists() ) { + if( $dupfile && $dupfile->exists() ) { $this->dupFile = $dupfile; + return $dupfile->exists(); } - return $dupfile->exists(); + return false; } function getUploadUrl() { @@ -608,13 +598,11 @@ EOT */ function imageHistory() { - global $wgUser, $wgOut, $wgUseExternalEditor; - - $sk = $wgUser->getSkin(); + global $wgOut, $wgUseExternalEditor; $this->loadFile(); if ( $this->img->exists() ) { - $list = new ImageHistoryList( $sk, $this->img, $this->displayImg ); + $list = new ImageHistoryList( $this ); $file = $this->img; $dims = $file->getDimensionsString(); $s = $list->beginImageHistoryList(); @@ -656,9 +644,12 @@ EOT ); if ( 0 == $dbr->numRows( $res ) ) { + $wgOut->addHTML( "
\n" ); $wgOut->addWikiMsg( 'nolinkstoimage' ); + $wgOut->addHTML( "
\n" ); return; } + $wgOut->addHTML( "
\n" ); $wgOut->addWikiMsg( 'linkstoimage' ); $wgOut->addHTML( "\n" ); + $wgOut->addHTML( "
\n" ); $res->free(); // Add a links to [[Special:Whatlinkshere]] @@ -687,8 +678,8 @@ EOT $redirects = $this->getTitle()->getRedirectsHere( NS_IMAGE ); if ( count( $redirects ) == 0 ) return; - + $wgOut->addHTML( "
\n" ); $wgOut->addWikiMsg( 'redirectstofile' ); $wgOut->addHTML( "\n" ); + $wgOut->addHTML( "
\n" ); } @@ -709,6 +700,7 @@ EOT $dupes = $this->getDuplicates(); if ( count( $dupes ) == 0 ) return; + $wgOut->addHTML( "
\n" ); $wgOut->addWikiMsg( 'duplicatesoffile' ); $wgOut->addHTML( "\n" ); + $wgOut->addHTML( "
\n" ); } /** @@ -785,13 +777,27 @@ EOT */ class ImageHistoryList { - protected $img, $skin, $title, $repo; + protected $imagePage, $img, $skin, $title, $repo; - public function __construct( $skin, $curimg, $img ) { - $this->skin = $skin; - $this->current = $curimg; - $this->img = $img; - $this->title = $img->getTitle(); + public function __construct( $imagePage ) { + global $wgUser; + $this->skin = $wgUser->getSkin(); + $this->current = $imagePage->getFile(); + $this->img = $imagePage->getDisplayedFile(); + $this->title = $imagePage->getTitle(); + $this->imagePage = $imagePage; + } + + function getImagePage() { + return $this->imagePage; + } + + function getSkin() { + return $this->skin; + } + + function getFile() { + return $this->img; } public function beginImageHistoryList() { @@ -935,9 +941,9 @@ class ImageHistoryList { } $row .= ''; - wfRunHooks( 'ImagePageFileHistoryLine', array( &$file, &$row, &$css ) ); - $trCSS = $css ? " class='$css'" : ""; + wfRunHooks( 'ImagePageFileHistoryLine', array( $this, $file, &$row, &$rowClass ) ); + $classAttr = $rowClass ? " class='$rowClass'" : ""; - return "{$row}\n"; + return "{$row}\n"; } }