* Use local context to get messages
[lhc/web/wiklou.git] / includes / filerepo / FSRepo.php
index 8dd8333..22dbdef 100644 (file)
@@ -7,14 +7,48 @@
  */
 
 /**
- * A repository for files accessible via the local filesystem. Does not support
- * database access or registration.
+ * A repository for files accessible via the local filesystem.
+ * Does not support database access or registration.
+ * 
+ * This is a mostly a legacy class. New uses should not be added.
+ * 
  * @ingroup FileRepo
  * @deprecated since 1.19
  */
 class FSRepo extends FileRepo {
-       function __construct( $info ) {
+       function __construct( array $info ) {
+               if ( !isset( $info['backend'] ) ) {
+                       // B/C settings...
+                       $directory = $info['directory'];
+                       $deletedDir = isset( $info['deletedDir'] )
+                               ? $info['deletedDir']
+                               : false;
+                       $thumbDir = isset( $info['thumbDir'] )
+                               ? $info['thumbDir']
+                               : "{$directory}/thumb";
+                       $fileMode = isset( $info['fileMode'] )
+                               ? $info['fileMode']
+                               : 0644;
+
+                       $repoName = $info['name'];
+                       // Get the FS backend configuration
+                       $backend = new FSFileBackend( array(
+                               'name'           => $info['name'] . '-backend',
+                               'lockManager'    => 'fsLockManager',
+                               'containerPaths' => array(
+                                       "{$repoName}-public"  => "{$directory}",
+                                       "{$repoName}-temp"    => "{$directory}/temp",
+                                       "{$repoName}-thumb"   => $thumbDir,
+                                       "{$repoName}-deleted" => $deletedDir
+                               ),
+                               'fileMode'       => $fileMode,
+                       ) );
+                       // Update repo config to use this backend
+                       $info['backend'] = $backend;
+               }
+
                parent::__construct( $info );
+
                if ( !( $this->backend instanceof FSFileBackend ) ) {
                        throw new MWException( "FSRepo only supports FSFileBackend." );
                }