From 086ae52d12011746a75f5588e877347bc0457352 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Fri, 21 Mar 2008 11:49:34 +0100 Subject: Update auf MediaWiki 1.12.0 --- includes/filerepo/RepoGroup.php | 47 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 3 deletions(-) (limited to 'includes/filerepo/RepoGroup.php') diff --git a/includes/filerepo/RepoGroup.php b/includes/filerepo/RepoGroup.php index 23d222af..b0e1d782 100644 --- a/includes/filerepo/RepoGroup.php +++ b/includes/filerepo/RepoGroup.php @@ -31,6 +31,13 @@ class RepoGroup { self::$instance = null; } + /** + * Set the singleton instance to a given object + */ + static function setSingleton( $instance ) { + self::$instance = $instance; + } + /** * Construct a group of file repositories. * @param array $data Array of repository info arrays. @@ -47,8 +54,8 @@ class RepoGroup { * Search repositories for an image. * You can also use wfGetFile() to do this. * @param mixed $title Title object or string - * @param mixed $time The 14-char timestamp before which the file should - * have been uploaded, or false for the current version + * @param mixed $time The 14-char timestamp the file should have + * been uploaded, or false for the current version * @return File object or false if it is not found */ function findFile( $title, $time = false ) { @@ -69,6 +76,27 @@ class RepoGroup { return false; } + /** + * Interface for FileRepo::checkRedirect() + */ + function checkRedirect( $title ) { + if ( !$this->reposInitialised ) { + $this->initialiseRepos(); + } + + $redir = $this->localRepo->checkRedirect( $title ); + if( $redir ) { + return $redir; + } + foreach ( $this->foreignRepos as $repo ) { + $redir = $repo->checkRedirect( $title ); + if ( $redir ) { + return $redir; + } + } + return false; + } + /** * Get the repo instance with a given key. */ @@ -76,7 +104,7 @@ class RepoGroup { if ( !$this->reposInitialised ) { $this->initialiseRepos(); } - if ( $index == 'local' ) { + if ( $index === 'local' ) { return $this->localRepo; } elseif ( isset( $this->foreignRepos[$index] ) ) { return $this->foreignRepos[$index]; @@ -84,6 +112,19 @@ class RepoGroup { return false; } } + /** + * Get the repo instance by its name + */ + function getRepoByName( $name ) { + if ( !$this->reposInitialised ) { + $this->initialiseRepos(); + } + foreach ( $this->foreignRepos as $key => $repo ) { + if ( $repo->name == $name) + return $repo; + } + return false; + } /** * Get the local repository, i.e. the one corresponding to the local image -- cgit v1.2.3-54-g00ecf