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' ) ) {
wfThumbHandle404();
} else {
// Called directly, use $_GET params
- wfThumbHandleRequest();
+ wfStreamThumb( $_GET );
}
wfLogProfilingData();
//--------------------------------------------------------------------------
-/**
- * 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
*
// Format is <timestamp>!<name>
$bits = explode( '!', $fileName, 2 );
if ( count( $bits ) != 2 ) {
- wfThumbError( 404, wfMessage( 'badtitletext' )->text() );
+ wfThumbError( 404, wfMessage( 'badtitletext' )->parse() );
return;
}
$title = Title::makeTitleSafe( NS_FILE, $bits[1] );
if ( !$title ) {
- wfThumbError( 404, wfMessage( 'badtitletext' )->text() );
+ wfThumbError( 404, wfMessage( 'badtitletext' )->parse() );
return;
}
$img = RepoGroup::singleton()->getLocalRepo()->newFromArchiveName( $title, $fileName );
// Check the source file title
if ( !$img ) {
- wfThumbError( 404, wfMessage( 'badtitletext' )->text() );
+ wfThumbError( 404, wfMessage( 'badtitletext' )->parse() );
return;
}
return;
}
- // For 404 handled thumbnails, we only use the the base name of the URI
+ // For 404 handled thumbnails, we only use the base name of the URI
// for the thumb params and the parent directory for the source file name.
// Check that the zone relative path matches up so squid caches won't pick
// up thumbs that would not be purged on source file deletion (bug 34231).
$user = RequestContext::getMain()->getUser();
if ( !wfThumbIsStandard( $img, $params ) && $user->pingLimiter( 'renderfile-nonstandard' ) ) {
- wfThumbError( 500, wfMessage( 'actionthrottledtext' ) );
+ wfThumbError( 500, wfMessage( 'actionthrottledtext' )->parse() );
return;
} elseif ( $user->pingLimiter( 'renderfile' ) ) {
- wfThumbError( 500, wfMessage( 'actionthrottledtext' ) );
+ wfThumbError( 500, wfMessage( 'actionthrottledtext' )->parse() );
return;
}
$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
$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 {
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 ) {
$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/";
}
* 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 ) {
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
* Output a thumbnail generation error message
*
* @param int $status
- * @param string $msg
+ * @param string $msg HTML
* @return void
*/
function wfThumbError( $status, $msg ) {