Open Journal Systems  3.3.0
TemporaryFileDAO.inc.php
1 <?php
2 
18 import('lib.pkp.classes.file.TemporaryFile');
19 
20 class TemporaryFileDAO extends DAO {
21 
28  function getTemporaryFile($fileId, $userId) {
29  $result = $this->retrieveLimit(
30  'SELECT t.* FROM temporary_files t WHERE t.file_id = ? and t.user_id = ?',
31  array((int) $fileId, (int) $userId),
32  1
33  );
34 
35  $returner = null;
36  if (isset($result) && $result->RecordCount() != 0) {
37  $returner = $this->_returnTemporaryFileFromRow($result->GetRowAssoc(false));
38  }
39 
40  $result->Close();
41  return $returner;
42  }
43 
48  function newDataObject() {
49  return new TemporaryFile();
50  }
51 
57  function _returnTemporaryFileFromRow($row) {
58  $temporaryFile = $this->newDataObject();
59  $temporaryFile->setId($row['file_id']);
60  $temporaryFile->setServerFileName($row['file_name']);
61  $temporaryFile->setFileType($row['file_type']);
62  $temporaryFile->setFileSize($row['file_size']);
63  $temporaryFile->setUserId($row['user_id']);
64  $temporaryFile->setOriginalFileName($row['original_file_name']);
65  $temporaryFile->setDateUploaded($this->datetimeFromDB($row['date_uploaded']));
66 
67  HookRegistry::call('TemporaryFileDAO::_returnTemporaryFileFromRow', array(&$temporaryFile, &$row));
68 
69  return $temporaryFile;
70  }
71 
77  function insertObject($temporaryFile) {
78  $this->update(
79  sprintf('INSERT INTO temporary_files
80  (user_id, file_name, file_type, file_size, original_file_name, date_uploaded)
81  VALUES
82  (?, ?, ?, ?, ?, %s)',
83  $this->datetimeToDB($temporaryFile->getDateUploaded())),
84  array(
85  (int) $temporaryFile->getUserId(),
86  $temporaryFile->getServerFileName(),
87  $temporaryFile->getFileType(),
88  (int) $temporaryFile->getFileSize(),
89  $temporaryFile->getOriginalFileName()
90  )
91  );
92 
93  $temporaryFile->setId($this->getInsertId());
94  return $temporaryFile->getId();
95  }
96 
101  function updateObject($temporaryFile) {
102  $this->update(
103  sprintf('UPDATE temporary_files
104  SET
105  file_name = ?,
106  file_type = ?,
107  file_size = ?,
108  user_id = ?,
109  original_file_name = ?,
110  date_uploaded = %s
111  WHERE file_id = ?',
112  $this->datetimeToDB($temporaryFile->getDateUploaded())),
113  array(
114  $temporaryFile->getServerFileName(),
115  $temporaryFile->getFileType(),
116  (int) $temporaryFile->getFileSize(),
117  (int) $temporaryFile->getUserId(),
118  $temporaryFile->getOriginalFileName(),
119  (int) $temporaryFile->getId()
120  )
121  );
122 
123  return $temporaryFile->getId();
124  }
125 
131  function deleteTemporaryFileById($fileId, $userId) {
132  return $this->update(
133  'DELETE FROM temporary_files WHERE file_id = ? AND user_id = ?',
134  array((int) $fileId, (int) $userId)
135  );
136  }
137 
142  function deleteByUserId($userId) {
143  return $this->update(
144  'DELETE FROM temporary_files WHERE user_id = ?',
145  (int) $userId
146  );
147  }
148 
149  function &getExpiredFiles() {
150  // Files older than one day can be cleaned up.
151  $expiryThresholdTimestamp = time() - (60 * 60 * 24);
152 
153  $temporaryFiles = array();
154 
155  $result = $this->retrieve(
156  'SELECT * FROM temporary_files WHERE date_uploaded < ' . $this->datetimeToDB($expiryThresholdTimestamp)
157  );
158 
159  while (!$result->EOF) {
160  $temporaryFiles[] = $this->_returnTemporaryFileFromRow($result->GetRowAssoc(false));
161  $result->MoveNext();
162  }
163 
164  $result->Close();
165  return $temporaryFiles;
166  }
167 
172  function getInsertId() {
173  return $this->_getInsertId('temporary_files', 'file_id');
174  }
175 }
176 
177 
TemporaryFileDAO\getInsertId
getInsertId()
Definition: TemporaryFileDAO.inc.php:172
TemporaryFileDAO\getExpiredFiles
& getExpiredFiles()
Definition: TemporaryFileDAO.inc.php:149
TemporaryFileDAO\getTemporaryFile
getTemporaryFile($fileId, $userId)
Definition: TemporaryFileDAO.inc.php:28
DAO\retrieve
& retrieve($sql, $params=false, $callHooks=true)
Definition: DAO.inc.php:85
TemporaryFile
Temporary file class.
Definition: TemporaryFile.inc.php:19
DAO\datetimeFromDB
datetimeFromDB($dt)
Definition: DAO.inc.php:319
TemporaryFileDAO\deleteByUserId
deleteByUserId($userId)
Definition: TemporaryFileDAO.inc.php:142
TemporaryFileDAO\_returnTemporaryFileFromRow
_returnTemporaryFileFromRow($row)
Definition: TemporaryFileDAO.inc.php:57
DAO\update
update($sql, $params=false, $callHooks=true, $dieOnError=true)
Definition: DAO.inc.php:214
DAO\datetimeToDB
datetimeToDB($dt)
Definition: DAO.inc.php:299
DAO\_getInsertId
_getInsertId($table='', $id='')
Definition: DAO.inc.php:255
TemporaryFileDAO\insertObject
insertObject($temporaryFile)
Definition: TemporaryFileDAO.inc.php:77
TemporaryFileDAO
Operations for retrieving and modifying TemporaryFile objects.
Definition: TemporaryFileDAO.inc.php:20
TemporaryFileDAO\updateObject
updateObject($temporaryFile)
Definition: TemporaryFileDAO.inc.php:101
DAO\retrieveLimit
& retrieveLimit($sql, $params=false, $numRows=false, $offset=false, $callHooks=true)
Definition: DAO.inc.php:148
HookRegistry\call
static call($hookName, $args=null)
Definition: HookRegistry.inc.php:86
TemporaryFileDAO\newDataObject
newDataObject()
Definition: TemporaryFileDAO.inc.php:48
DAO
Operations for retrieving and modifying objects from a database.
Definition: DAO.inc.php:31
TemporaryFileDAO\deleteTemporaryFileById
deleteTemporaryFileById($fileId, $userId)
Definition: TemporaryFileDAO.inc.php:131