X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;ds=sidebyside;f=thumb.php;h=3d8612d9726988ec17bbb21029b38f2e581905c6;hb=da3c19fb17834d800e15e16d998f2c158b69dfa4;hp=c611dc3ca75aa3d127d7c7293ba3ecfe77a842d4;hpb=da7df94b4c2293df5e9abce5634046a3622463df;p=lhc%2Fweb%2Fwiklou.git diff --git a/thumb.php b/thumb.php index c611dc3ca7..3d8612d972 100644 --- a/thumb.php +++ b/thumb.php @@ -24,7 +24,7 @@ define( 'MW_NO_OUTPUT_COMPRESSION', 1 ); require __DIR__ . '/includes/WebStart.php'; -// Don't use fancy mime detection, just check the file extension for jpg/gif/png +// Don't use fancy MIME detection, just check the file extension for jpg/gif/png $wgTrivialMimeDetection = true; if ( defined( 'THUMB_HANDLER' ) ) { @@ -32,7 +32,7 @@ if ( defined( 'THUMB_HANDLER' ) ) { wfThumbHandle404(); } else { // Called directly, use $_GET params - wfThumbHandleRequest(); + wfStreamThumb( $_GET ); } wfLogProfilingData(); @@ -43,19 +43,6 @@ $factory->shutdown(); //-------------------------------------------------------------------------- -/** - * Handle a thumbnail request via query parameters - * - * @return void - */ -function wfThumbHandleRequest() { - $params = get_magic_quotes_gpc() - ? array_map( 'stripslashes', $_GET ) - : $_GET; - - wfStreamThumb( $params ); // stream the thumbnail -} - /** * Handle a thumbnail request via thumbnail file URL * @@ -118,7 +105,7 @@ function wfStreamThumb( array $params ) { } if ( isset( $params['width'] ) && substr( $params['width'], -2 ) == 'px' ) { // strip the px (pixel) suffix, if found - $params['width'] = substr( $width, 0, strlen( $width ) - 2 ); + $params['width'] = substr( $params['width'], 0, -2 ); } if ( isset( $params['p'] ) ) { $params['page'] = $params['p']; @@ -367,7 +354,7 @@ function wfGenerateThumbnail( File $file, array $params, $thumbName, $thumbPath global $wgMemc, $wgAttemptFailureEpoch; $key = wfMemcKey( 'attempt-failures', $wgAttemptFailureEpoch, - $file->getRepo()->getName(), md5( $file->getName() ), md5( $thumbName ) ); + $file->getRepo()->getName(), $file->getSha1(), md5( $thumbName ) ); // Check if this file keeps failing to render if ( $wgMemc->get( $key ) >= 4 ) { @@ -376,7 +363,7 @@ function wfGenerateThumbnail( File $file, array $params, $thumbName, $thumbPath $done = false; // Record failures on PHP fatals in addition to caching exceptions - register_shutdown_function( function() use ( &$done, $key ) { + register_shutdown_function( function () use ( &$done, $key ) { if ( !$done ) { // transform() gave a fatal global $wgMemc; // Randomize TTL to reduce stampedes @@ -388,7 +375,8 @@ function wfGenerateThumbnail( File $file, array $params, $thumbName, $thumbPath $errorHtml = false; // guard thumbnail rendering with PoolCounter to avoid stampedes - // expensive files use a separate PoolCounter config so it is possible to set up a global limit on them + // expensive files use a separate PoolCounter config so it is possible + // to set up a global limit on them if ( $file->isExpensiveToThumbnail() ) { $poolCounterType = 'FileRenderExpensive'; } else { @@ -399,17 +387,17 @@ function wfGenerateThumbnail( File $file, array $params, $thumbName, $thumbPath try { $work = new PoolCounterWorkViaCallback( $poolCounterType, sha1( $file->getName() ), array( - 'doWork' => function() use ( $file, $params ) { + 'doWork' => function () use ( $file, $params ) { return $file->transform( $params, File::RENDER_NOW ); }, - 'getCachedWork' => function() use ( $file, $params, $thumbPath ) { + 'getCachedWork' => function () use ( $file, $params, $thumbPath ) { // If the worker that finished made this thumbnail then use it. // Otherwise, it probably made a different thumbnail for this file. return $file->getRepo()->fileExists( $thumbPath ) ? $file->transform( $params, File::RENDER_NOW ) : false; // retry once more in exclusive mode }, - 'fallback' => function() { + 'fallback' => function () { return wfMessage( 'generic-pool-error' )->parse(); }, 'error' => function ( $status ) { @@ -520,7 +508,8 @@ function wfExtractThumbRequestInfo( $thumbRel ) { $repo = RepoGroup::singleton()->getLocalRepo(); $hashDirReg = $subdirReg = ''; - for ( $i = 0; $i < $repo->getHashLevels(); $i++ ) { + $hashLevels = $repo->getHashLevels(); + for ( $i = 0; $i < $hashLevels; $i++ ) { $subdirReg .= '[0-9a-f]'; $hashDirReg .= "$subdirReg/"; } @@ -551,7 +540,7 @@ function wfExtractThumbRequestInfo( $thumbRel ) { * file handler. * * @param File $file File object for file in question - * @param array $param Array of parameters so far + * @param array $params Array of parameters so far * @return array Parameters array with more parameters */ function wfExtractThumbParams( $file, $params ) { @@ -571,7 +560,7 @@ function wfExtractThumbParams( $file, $params ) { return $params; // valid thumbnail URL (via extension or config) } - // FIXME: Files in the temp zone don't set a mime type, which means + // FIXME: Files in the temp zone don't set a MIME type, which means // they don't have a handler. Which means we can't parse the param // string. However, not a big issue as what good is a param string // if you have no handler to make use of the param string and