}
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'];
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 ) {
$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/";
}