getRouter(); $redirectRequest = new PostAndRedirectAction( $router->url( $request, null, 'api.file.FileApiHandler', 'enableLinkAction', null, $this->getActionArgs($libraryFile) ), $router->url( $request, null, 'api.file.FileApiHandler', 'downloadLibraryFile', null, $this->getActionArgs($libraryFile) ) ); // Configure the file link action. parent::__construct( 'downloadFile', $redirectRequest, htmlspecialchars($libraryFile->getLocalizedName()), $libraryFile->getDocumentType() ); } /** * Return the action arguments to address a file. * * @param LibraryFile $libraryFile * * @return array */ public function getActionArgs(&$libraryFile) { assert($libraryFile instanceof LibraryFile); // Create the action arguments array. $args = ['libraryFileId' => $libraryFile->getId()]; if ($libraryFile->getSubmissionId()) { $args['submissionId'] = $libraryFile->getSubmissionId(); } return $args; } }