From bd7ebdec65ce3e65a6a7a8404dade136d8af3cde Mon Sep 17 00:00:00 2001 From: Brian Wolff Date: Fri, 30 Aug 2013 23:45:43 -0600 Subject: [PATCH] Add option to chose what language to fetch file description in. I want to get the file description in a language other then the user language in an extension (I5e6bc45f9751). Change-Id: Ifcae821a51f4207e7816e710d3b3857c7ed438b6 --- includes/filerepo/file/File.php | 10 +++++++--- includes/filerepo/file/ForeignDBFile.php | 5 +++-- includes/filerepo/file/LocalFile.php | 6 ++++-- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/includes/filerepo/file/File.php b/includes/filerepo/file/File.php index 9060731724..79fad2e28b 100644 --- a/includes/filerepo/file/File.php +++ b/includes/filerepo/file/File.php @@ -1656,18 +1656,22 @@ abstract class File { /** * Get the HTML text of the description page, if available * + * @param $lang Language Optional language to fetch description in * @return string */ - function getDescriptionText() { + function getDescriptionText( $lang = false ) { global $wgMemc, $wgLang; if ( !$this->repo || !$this->repo->fetchDescription ) { return false; } - $renderUrl = $this->repo->getDescriptionRenderUrl( $this->getName(), $wgLang->getCode() ); + if ( !$lang ) { + $lang = $wgLang; + } + $renderUrl = $this->repo->getDescriptionRenderUrl( $this->getName(), $lang->getCode() ); if ( $renderUrl ) { if ( $this->repo->descriptionCacheExpiry > 0 ) { wfDebug( "Attempting to get the description from cache..." ); - $key = $this->repo->getLocalCacheKey( 'RemoteFileDescription', 'url', $wgLang->getCode(), + $key = $this->repo->getLocalCacheKey( 'RemoteFileDescription', 'url', $lang->getCode(), $this->getName() ); $obj = $wgMemc->get( $key ); if ( $obj ) { diff --git a/includes/filerepo/file/ForeignDBFile.php b/includes/filerepo/file/ForeignDBFile.php index ee5883c487..01d6b0f539 100644 --- a/includes/filerepo/file/ForeignDBFile.php +++ b/includes/filerepo/file/ForeignDBFile.php @@ -120,10 +120,11 @@ class ForeignDBFile extends LocalFile { } /** + * @param $lang Language Optional language to fetch description in. * @return string */ - function getDescriptionText() { + function getDescriptionText( $lang = false ) { // Restore remote behavior - return File::getDescriptionText(); + return File::getDescriptionText( $lang ); } } diff --git a/includes/filerepo/file/LocalFile.php b/includes/filerepo/file/LocalFile.php index 39ef62c6e3..d99ed6eb8c 100644 --- a/includes/filerepo/file/LocalFile.php +++ b/includes/filerepo/file/LocalFile.php @@ -1664,9 +1664,11 @@ class LocalFile extends File { * Get the HTML text of the description page * This is not used by ImagePage for local files, since (among other things) * it skips the parser cache. + * + * @param $lang Language What language to get description in (Optional) * @return bool|mixed */ - function getDescriptionText() { + function getDescriptionText( $lang = null ) { $revision = Revision::newFromTitle( $this->title, false, Revision::READ_NORMAL ); if ( !$revision ) { return false; @@ -1675,7 +1677,7 @@ class LocalFile extends File { if ( !$content ) { return false; } - $pout = $content->getParserOutput( $this->title, null, new ParserOptions() ); + $pout = $content->getParserOutput( $this->title, null, new ParserOptions( null, $lang ) ); return $pout->getText(); } -- 2.20.1