MediaWiki
REL1_24
|
00001 <?php 00033 class FSRepo extends FileRepo { 00038 function __construct( array $info ) { 00039 if ( !isset( $info['backend'] ) ) { 00040 // B/C settings... 00041 $directory = $info['directory']; 00042 $deletedDir = isset( $info['deletedDir'] ) 00043 ? $info['deletedDir'] 00044 : false; 00045 $thumbDir = isset( $info['thumbDir'] ) 00046 ? $info['thumbDir'] 00047 : "{$directory}/thumb"; 00048 $transcodedDir = isset( $info['transcodedDir'] ) 00049 ? $info['transcodedDir'] 00050 : "{$directory}/transcoded"; 00051 $fileMode = isset( $info['fileMode'] ) 00052 ? $info['fileMode'] 00053 : 0644; 00054 00055 $repoName = $info['name']; 00056 // Get the FS backend configuration 00057 $backend = new FSFileBackend( array( 00058 'name' => $info['name'] . '-backend', 00059 'wikiId' => wfWikiID(), 00060 'lockManager' => LockManagerGroup::singleton( wfWikiID() )->get( 'fsLockManager' ), 00061 'containerPaths' => array( 00062 "{$repoName}-public" => "{$directory}", 00063 "{$repoName}-temp" => "{$directory}/temp", 00064 "{$repoName}-thumb" => $thumbDir, 00065 "{$repoName}-transcoded" => $transcodedDir, 00066 "{$repoName}-deleted" => $deletedDir 00067 ), 00068 'fileMode' => $fileMode, 00069 ) ); 00070 // Update repo config to use this backend 00071 $info['backend'] = $backend; 00072 } 00073 00074 parent::__construct( $info ); 00075 00076 if ( !( $this->backend instanceof FSFileBackend ) ) { 00077 throw new MWException( "FSRepo only supports FSFileBackend." ); 00078 } 00079 } 00080 }