if ( $handler ) {
$params = $handler->parseParamString( $paramString );
- return array( 'file' => $file, 'type' => $type, 'params' => $params );
+ return [ 'file' => $file, 'type' => $type, 'params' => $params ];
} else {
throw new UploadStashBadPathException( 'No handler found for ' .
"mime {$file->getMimeType()} of file {$file->getPath()}" );
}
}
- return array( 'file' => $file, 'type' => $type );
+ return [ 'file' => $file, 'type' => $type ];
}
/**
* Scale a file (probably with a locally installed imagemagick, or similar)
* and output it to STDOUT.
* @param File $file
- * @param array $params Scaling parameters ( e.g. array( width => '50' ) );
+ * @param array $params Scaling parameters ( e.g. [ width => '50' ] );
* @param int $flags Scaling flags ( see File:: constants )
* @throws MWException|UploadStashFileNotFoundException
* @return bool Success
* client to cache it forever.
*
* @param File $file
- * @param array $params Scaling parameters ( e.g. array( width => '50' ) );
+ * @param array $params Scaling parameters ( e.g. [ width => '50' ] );
* @param int $flags Scaling flags ( see File:: constants )
* @throws MWException
* @return bool Success
'/' . rawurlencode( $scalerThumbName );
// make a curl call to the scaler to create a thumbnail
- $httpOptions = array(
+ $httpOptions = [
'method' => 'GET',
'timeout' => 5 // T90599 attempt to time out cleanly
- );
+ ];
$req = MWHttpRequest::factory( $scalerThumbUrl, $httpOptions, __METHOD__ );
$status = $req->execute();
if ( !$status->isOK() ) {
}
return $file->getRepo()->streamFile( $file->getPath(),
- array( 'Content-Transfer-Encoding: binary',
- 'Expires: Sun, 17-Jan-2038 19:14:07 GMT' )
+ [ 'Content-Transfer-Encoding: binary',
+ 'Expires: Sun, 17-Jan-2038 19:14:07 GMT' ]
);
}
if ( $size > self::MAX_SERVE_BYTES ) {
throw new SpecialUploadStashTooLargeException();
}
+ // Cancel output buffering and gzipping if set
+ wfResetOutputBuffers();
self::outputFileHeaders( $contentType, $size );
print $content;
$context = new DerivativeContext( $this->getContext() );
$context->setTitle( $this->getPageTitle() ); // Remove subpage
- $form = new HTMLForm( array(
- 'Clear' => array(
+ $form = HTMLForm::factory( 'ooui', [
+ 'Clear' => [
'type' => 'hidden',
'default' => true,
'name' => 'clear',
- )
- ), $context, 'clearStashedUploads' );
- $form->setSubmitCallback( array( __CLASS__, 'tryClearStashedUploads' ) );
+ ]
+ ], $context, 'clearStashedUploads' );
+ $form->setSubmitDestructive();
+ $form->setSubmitCallback( [ __CLASS__, 'tryClearStashedUploads' ] );
$form->setSubmitTextMsg( 'uploadstash-clear' );
$form->prepareForm();
// show the files + form, if there are any, or just say there are none
$refreshHtml = Html::element( 'a',
- array( 'href' => $this->getPageTitle()->getLocalURL() ),
+ [ 'href' => $this->getPageTitle()->getLocalURL() ],
$this->msg( 'uploadstash-refresh' )->text() );
$files = $this->stash->listFiles();
if ( $files && count( $files ) ) {
sort( $files );
$fileListItemsHtml = '';
+ $linkRenderer = $this->getLinkRenderer();
foreach ( $files as $file ) {
- // TODO: Use Linker::link or even construct the list in plain wikitext
- $fileListItemsHtml .= Html::rawElement( 'li', array(),
- Html::element( 'a', array( 'href' =>
- $this->getPageTitle( "file/$file" )->getLocalURL() ), $file )
+ $itemHtml = $linkRenderer->makeKnownLink(
+ $this->getPageTitle( "file/$file" ),
+ $file
);
+ try {
+ $fileObj = $this->stash->getFile( $file );
+ $thumb = $fileObj->generateThumbName( $file, [ 'width' => 220 ] );
+ $itemHtml .=
+ $this->msg( 'word-separator' )->escaped() .
+ $this->msg( 'parentheses' )->rawParams(
+ $linkRenderer->makeKnownLink(
+ $this->getPageTitle( "thumb/$file/$thumb" ),
+ $this->msg( 'uploadstash-thumbnail' )->text()
+ )
+ )->escaped();
+ } catch ( Exception $e ) {
+ }
+ $fileListItemsHtml .= Html::rawElement( 'li', [], $itemHtml );
}
- $this->getOutput()->addHtml( Html::rawElement( 'ul', array(), $fileListItemsHtml ) );
+ $this->getOutput()->addHTML( Html::rawElement( 'ul', [], $fileListItemsHtml ) );
$form->displayForm( $formResult );
- $this->getOutput()->addHtml( Html::rawElement( 'p', array(), $refreshHtml ) );
+ $this->getOutput()->addHTML( Html::rawElement( 'p', [], $refreshHtml ) );
} else {
- $this->getOutput()->addHtml( Html::rawElement( 'p', array(),
- Html::element( 'span', array(), $this->msg( 'uploadstash-nofiles' )->text() )
+ $this->getOutput()->addHTML( Html::rawElement( 'p', [],
+ Html::element( 'span', [], $this->msg( 'uploadstash-nofiles' )->text() )
. ' '
. $refreshHtml
) );