Open Journal Systems  3.3.0
files/submissionDocuments/form/NewLibraryFileForm.inc.php
1 <?php
16 import('lib.pkp.controllers.grid.files.form.LibraryFileForm');
17 
19 
21  var $submissionId;
22 
28  parent::__construct('controllers/grid/files/submissionDocuments/form/newFileForm.tpl', $contextId);
29  $this->submissionId = $submissionId;
30  $this->addCheck(new FormValidator($this, 'temporaryFileId', 'required', 'settings.libraryFiles.fileRequired'));
31  }
32 
37  function readInputData() {
38  $this->readUserVars(array('temporaryFileId', 'submissionId'));
39  return parent::readInputData();
40  }
41 
45  function fetch($request, $template = null, $display = false) {
46  $templateMgr = TemplateManager::getManager($request);
47  $templateMgr->assign('submissionId', $this->getSubmissionId());
48  return parent::fetch($request, $template, $display);
49  }
50 
55  function execute(...$functionArgs) {
56  $userId = Application::get()->getRequest()->getUser()->getId();
57 
58  // Fetch the temporary file storing the uploaded library file
59  $temporaryFileDao = DAORegistry::getDAO('TemporaryFileDAO'); /* @var $temporaryFileDao TemporaryFileDAO */
60  $temporaryFile = $temporaryFileDao->getTemporaryFile(
61  $this->getData('temporaryFileId'),
62  $userId
63  );
64  $libraryFileDao = DAORegistry::getDAO('LibraryFileDAO'); /* @var $libraryFileDao LibraryFileDAO */
65  $libraryFileManager = new LibraryFileManager($this->contextId);
66 
67  // Convert the temporary file to a library file and store
68  $libraryFile =& $libraryFileManager->copyFromTemporaryFile($temporaryFile, $this->getData('fileType'));
69  assert(isset($libraryFile));
70  $libraryFile->setContextId($this->contextId);
71  $libraryFile->setName($this->getData('libraryFileName'), null); // Localized
72  $libraryFile->setType($this->getData('fileType'));
73  $libraryFile->setSubmissionId($this->getData('submissionId'));
74 
75  $fileId = $libraryFileDao->insertObject($libraryFile);
76 
77  // Clean up the temporary file
78  import('lib.pkp.classes.file.TemporaryFileManager');
79  $temporaryFileManager = new TemporaryFileManager();
80  $temporaryFileManager->deleteById($this->getData('temporaryFileId'), $userId);
81 
82  parent::execute(...$functionArgs);
83 
84  return $fileId;
85  }
86 
91  function getSubmissionId() {
92  return $this->submissionId;
93  }
94 }
95 
96 
TemporaryFileManager
Definition: TemporaryFileManager.inc.php:19
NewLibraryFileForm
Definition: files/submissionDocuments/form/NewLibraryFileForm.inc.php:18
NewLibraryFileForm\__construct
__construct($contextId, $submissionId)
Definition: files/submissionDocuments/form/NewLibraryFileForm.inc.php:30
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
NewLibraryFileForm\$submissionId
$submissionId
Definition: files/submissionDocuments/form/NewLibraryFileForm.inc.php:24
NewLibraryFileForm\execute
execute(... $functionArgs)
Definition: files/submissionDocuments/form/NewLibraryFileForm.inc.php:58
Form\readUserVars
readUserVars($vars)
Definition: Form.inc.php:378
Form\getData
getData($key)
Definition: Form.inc.php:220
LibraryFileForm\$libraryFileManager
$libraryFileManager
Definition: LibraryFileForm.inc.php:24
NewLibraryFileForm\getSubmissionId
getSubmissionId()
Definition: files/submissionDocuments/form/NewLibraryFileForm.inc.php:94
LibraryFileForm\$contextId
$contextId
Definition: LibraryFileForm.inc.php:21
LibraryFileManager
Wrapper class for uploading files to a site/context' library directory.
Definition: LibraryFileManager.inc.php:18
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1239
FormValidator
Class to represent a form validation check.
Definition: FormValidator.inc.php:23
Form\addCheck
addCheck($formValidator)
Definition: Form.inc.php:395
NewLibraryFileForm\fetch
fetch($request, $template=null, $display=false)
Definition: files/submissionDocuments/form/NewLibraryFileForm.inc.php:48
PKPApplication\get
static get()
Definition: PKPApplication.inc.php:235
LibraryFileForm
Form for adding/editing a file.
Definition: LibraryFileForm.inc.php:19
NewLibraryFileForm\readInputData
readInputData()
Definition: files/submissionDocuments/form/NewLibraryFileForm.inc.php:40