From: Brian Wolff Date: Sat, 31 Aug 2013 05:45:43 +0000 (-0600) Subject: Add option to chose what language to fetch file description in. X-Git-Tag: 1.31.0-rc.0~18689^2 X-Git-Url: https://git.cyclocoop.org/%7B%24admin_url%7Dmembres/%7B%7B%20url_for%28%27vote%27%2C%20idvote=vote.voteid%29%20%7D%7D?a=commitdiff_plain;h=bd7ebdec65ce3e65a6a7a8404dade136d8af3cde;p=lhc%2Fweb%2Fwiklou.git 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 --- 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(); }