Cache thumbs from remote sources too.
authorChad Horohoe <demon@users.mediawiki.org>
Thu, 3 Jul 2008 19:02:47 +0000 (19:02 +0000)
committerChad Horohoe <demon@users.mediawiki.org>
Thu, 3 Jul 2008 19:02:47 +0000 (19:02 +0000)
RELEASE-NOTES
includes/filerepo/ForeignAPIFile.php

index 7186bf1..047c8a6 100644 (file)
@@ -179,8 +179,7 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
 * Added blank special page Special:BlankPage for benchmarking, etc.
 * (bug 13862) Specialpages now has a horizontal TOC if there's three or more
   groups.
-* Foreign repo file descriptions via fetchDescription are now cached in the
-  transcache.
+* Foreign repo file descriptions and thumbnails are now cached.
  
 === Bug fixes in 1.13 ===
 
index aaf9220..d0add60 100644 (file)
@@ -31,13 +31,26 @@ class ForeignAPIFile extends File {
        }
 
        function transform( $params, $flags = 0 ) {
+               global $wgMemc;
                $thumbUrl = $this->repo->getThumbUrl(
                        $this->getName(),
                        isset( $params['width'] ) ? $params['width'] : -1,
                        isset( $params['height'] ) ? $params['height'] : -1 );
                if( $thumbUrl ) {
+                       if ( $this->repo->useLocalCache ) {
+                               wfDebug("Attempting to get the thumb from the cache...");
+                               $key = md5($thumbUrl);
+                               $obj = $wgMemc->get($key);
+                               if ($obj) {
+                                       wfDebug("success!\n");
+                                       return $obj;
+                               }
+                               wfDebug("miss\n");
+                       }
+                       $res = $this->handler->getTransform( $this, 'bogus', $thumbUrl, $params );;
+                       if ( $res && $this->repo->useLocalCache ) $wgMemc->set( $key, $res, $this->repo->localCacheExpiry );
                        wfDebug( __METHOD__ . " got remote thumb $thumbUrl\n" );
-                       return $this->handler->getTransform( $this, 'bogus', $thumbUrl, $params );;
+                       return $res;
                }
                return false;
        }