Move some providers in new MediaWikiProvide class
[lhc/web/wiklou.git] / includes / HTMLFileCache.php
index 3b4a886..26cb147 100644 (file)
@@ -30,7 +30,7 @@ class HTMLFileCache {
 
        public function fileCacheName() {
                if( !$this->mFileCache ) {
-                       global $wgCacheDirectory, $wgFileCacheDirectory;
+                       global $wgCacheDirectory, $wgFileCacheDirectory, $wgFileCacheDepth;
 
                        if ( $wgFileCacheDirectory ) {
                                $dir = $wgFileCacheDirectory;
@@ -42,17 +42,21 @@ class HTMLFileCache {
 
                        # Store raw pages (like CSS hits) elsewhere
                        $subdir = ($this->mType === 'raw') ? 'raw/' : '';
+
                        $key = $this->mTitle->getPrefixedDbkey();
-                       $hash = md5( $key );
+                       if ( $wgFileCacheDepth > 0 ) {
+                               $hash = md5( $key );
+                               for ( $i = 1; $i <= $wgFileCacheDepth; $i++ ) {
+                                       $subdir .= substr( $hash, 0, $i ) . '/';
+                               }
+                       }
                        # Avoid extension confusion
                        $key = str_replace( '.', '%2E', urlencode( $key ) );
-       
-                       $hash1 = substr( $hash, 0, 1 );
-                       $hash2 = substr( $hash, 0, 2 );
-                       $this->mFileCache = "{$wgFileCacheDirectory}/{$subdir}{$hash1}/{$hash2}/{$key}.html";
+                       $this->mFileCache = "{$dir}/{$subdir}{$key}.html";
 
-                       if( $this->useGzip() )
+                       if( $this->useGzip() ) {
                                $this->mFileCache .= '.gz';
+                       }
 
                        wfDebug( __METHOD__ . ": {$this->mFileCache}\n" );
                }