X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=thumb.php;h=ff84d89468a0ff4988c42725762baae16af3564d;hb=157861bc31bdf7058328cee47ec296cb693c6a55;hp=2b40c68a71b8912d43754f9abecf79ec138f6385;hpb=9411d91b49b50de73f878d7e677d5209030d751a;p=lhc%2Fweb%2Fwiklou.git diff --git a/thumb.php b/thumb.php index 2b40c68a71..ff84d89468 100644 --- a/thumb.php +++ b/thumb.php @@ -5,10 +5,16 @@ * If the file exists, we make do with abridged MediaWiki initialisation. */ -unset( $IP ); define( 'MEDIAWIKI', true ); +unset( $IP ); +$wgNoOutputBuffer = true; + require_once( './includes/Defines.php' ); require_once( './LocalSettings.php' ); +require_once( 'GlobalFunctions.php' ); + +$wgTrivialMimeDetection = true; //don't use fancy mime detection, just check the file extension for jpg/gif/png. + require_once( 'Image.php' ); require_once( 'StreamFile.php' ); @@ -22,19 +28,21 @@ if ( get_magic_quotes_gpc() ) { $width = $_REQUEST['w']; } +$pre_render= isset($_REQUEST['r']) && $_REQUEST['r']!="0"; + // Some basic input validation $width = intval( $width ); -$fileName = str_replace( '/', '_', $fileName ); +$fileName = strtr( $fileName, '\\/', '__' ); // Work out paths, carefully avoiding constructing an Image object because that won't work yet $imagePath = wfImageDir( $fileName ) . '/' . $fileName; $thumbName = "{$width}px-$fileName"; -if ( preg_match( '/\.svg$/', $fileName ) ) { +if ( $pre_render ) { $thumbName .= '.png'; } -$thumbPath = wfImageThumbDir( $thumbName ) . '/' . $thumbName; +$thumbPath = wfImageThumbDir( $fileName ) . '/' . $thumbName; if ( file_exists( $thumbPath ) && filemtime( $thumbPath ) >= filemtime( $imagePath ) ) { wfStreamFile( $thumbPath ); @@ -44,18 +52,14 @@ if ( file_exists( $thumbPath ) && filemtime( $thumbPath ) >= filemtime( $imagePa // OK, no valid thumbnail, time to get out the heavy machinery require_once( 'Setup.php' ); -// Force renderThumb() to actually do something -$wgThumbnailScriptPath = false; -$wgSharedThumbnailScriptPath = false; - $img = Image::newFromName( $fileName ); if ( $img ) { - $thumb = $img->renderThumb( $width ); + $thumb = $img->renderThumb( $width, false ); } else { $thumb = false; } -if ( $thumb ) { +if ( $thumb && $thumb->path ) { wfStreamFile( $thumb->path ); } else { $badtitle = wfMsg( 'badtitle' );