Open Journal Systems  3.3.0
LibraryFileDAO.inc.php
1 <?php
2 
17 import('lib.pkp.classes.context.LibraryFile');
18 
19 class LibraryFileDAO extends DAO {
20 
27  function getById($fileId, $contextId = null) {
28 
29  $params = array((int) $fileId);
30  if ($contextId) $params[] = (int) $contextId;
31 
32  $result = $this->retrieve(
33  'SELECT file_id, context_id, file_name, original_file_name, file_type, file_size, type, date_uploaded, submission_id, public_access FROM library_files WHERE file_id = ?'
34  . ($contextId ? ' AND context_id = ?' : ''),
35  $params
36  );
37 
38  $returner = null;
39  if (isset($result) && $result->RecordCount() != 0) {
40  $returner = $this->_fromRow($result->GetRowAssoc(false));
41  }
42 
43  $result->Close();
44  return $returner;
45  }
46 
53  function getByContextId($contextId, $type = null) {
54  $params = array((int) $contextId);
55  if (isset($type)) $params[] = (int) $type;
56 
57  $result = $this->retrieve(
58  'SELECT *
59  FROM library_files
60  WHERE context_id = ? AND submission_id = 0 ' . (isset($type)?' AND type = ?' : ''),
61  $params
62  );
63  return new DAOResultFactory($result, $this, '_fromRow', array('id'));
64  }
65 
73  function getBySubmissionId($submissionId, $type = null, $contextId = null) {
74  $params = array((int) $submissionId);
75  if (isset($type)) $params[] = (int) $type;
76  if (isset($contextId)) $params[] = (int) $contextId;
77 
78  $result = $this->retrieve(
79  'SELECT *
80  FROM library_files
81  WHERE submission_id = ? ' . (isset($contextId)?' AND context_id = ?' : '') . (isset($type)?' AND type = ?' : ''),
82  $params
83  );
84  return new DAOResultFactory($result, $this, '_fromRow', array('id'));
85  }
86 
91  function newDataObject() {
92  return new LibraryFile();
93  }
94 
95 
100  function getLocaleFieldNames() {
101  return array('name');
102  }
103 
108  function updateLocaleFields(&$libraryFile) {
110  'library_file_settings',
111  $libraryFile,
112  array('file_id' => $libraryFile->getId())
113  );
114  }
115 
121  function _fromRow($row) {
122  $libraryFile = $this->newDataObject();
123 
124  $libraryFile->setId($row['file_id']);
125  $libraryFile->setContextId($row['context_id']);
126  $libraryFile->setServerFileName($row['file_name']);
127  $libraryFile->setOriginalFileName($row['original_file_name']);
128  $libraryFile->setFileType($row['file_type']);
129  $libraryFile->setFileSize($row['file_size']);
130  $libraryFile->setType($row['type']);
131  $libraryFile->setDateUploaded($this->datetimeFromDB($row['date_uploaded']));
132  $libraryFile->setSubmissionId($row['submission_id']);
133  $libraryFile->setPublicAccess($row['public_access']);
134 
135  $this->getDataObjectSettings('library_file_settings', 'file_id', $row['file_id'], $libraryFile);
136 
137  HookRegistry::call('LibraryFileDAO::_fromRow', array(&$libraryFile, &$row));
138 
139  return $libraryFile;
140  }
141 
147  function insertObject($libraryFile) {
148  $params = array(
149  (int) $libraryFile->getContextId(),
150  $libraryFile->getServerFileName(),
151  $libraryFile->getOriginalFileName(),
152  $libraryFile->getFileType(),
153  (int) $libraryFile->getFileSize(),
154  (int) $libraryFile->getType(),
155  (int) $libraryFile->getSubmissionId(),
156  (int) $libraryFile->getPublicAccess()
157  );
158 
159  if ($libraryFile->getId()) $params[] = (int) $libraryFile->getId();
160 
161  $this->update(
162  sprintf('INSERT INTO library_files
163  (context_id, file_name, original_file_name, file_type, file_size, type, submission_id, public_access, date_uploaded, date_modified' . ($libraryFile->getId()?', file_id':'') . ')
164  VALUES
165  (?, ?, ?, ?, ?, ?, ?, ?, %s, %s' . ($libraryFile->getId()?', ?':'') . ')',
166  $this->datetimeToDB($libraryFile->getDateUploaded()),
167  $this->datetimeToDB($libraryFile->getDateModified())
168  ),
169  $params
170  );
171 
172  if (!$libraryFile->getId()) $libraryFile->setId($this->getInsertId());
173 
174  $this->updateLocaleFields($libraryFile);
175  return $libraryFile->getId();
176  }
177 
183  function updateObject($libraryFile) {
184  $this->update(
185  sprintf('UPDATE library_files
186  SET context_id = ?,
187  file_name = ?,
188  original_file_name = ?,
189  file_type = ?,
190  file_size = ?,
191  type = ?,
192  submission_id = ?,
193  public_access = ?,
194  date_uploaded = %s
195  WHERE file_id = ?',
196  $this->datetimeToDB($libraryFile->getDateUploaded())
197  ), array(
198  (int) $libraryFile->getContextId(),
199  $libraryFile->getServerFileName(),
200  $libraryFile->getOriginalFileName(),
201  $libraryFile->getFileType(),
202  (int) $libraryFile->getFileSize(),
203  (int) $libraryFile->getType(),
204  (int) $libraryFile->getSubmissionId(),
205  (int) $libraryFile->getPublicAccess(),
206  (int) $libraryFile->getId()
207  )
208  );
209 
210  $this->updateLocaleFields($libraryFile);
211  return $libraryFile->getId();
212  }
213 
219  function deleteById($fileId, $revision = null) {
220  $this->update(
221  'DELETE FROM library_files WHERE file_id = ?',
222  (int) $fileId
223  );
224  $this->update(
225  'DELETE FROM library_file_settings WHERE file_id = ?',
226  (int) $fileId
227  );
228  }
229 
236  function filenameExists($contextId, $fileName) {
237  $result = $this->retrieve(
238  'SELECT COUNT(*) FROM library_files WHERE context_id = ? AND file_name = ?',
239  array((int) $contextId, $fileName)
240  );
241 
242  $returner = (isset($result->fields[0]) && $result->fields[0] > 0) ? true : false;
243  $result->Close();
244  return $returner;
245  }
246 
251  function getInsertId() {
252  return $this->_getInsertId('library_files', 'file_id');
253  }
254 }
255 
256 
LibraryFileDAO
Operations for retrieving and modifying LibraryFile objects.
Definition: LibraryFileDAO.inc.php:19
LibraryFileDAO\filenameExists
filenameExists($contextId, $fileName)
Definition: LibraryFileDAO.inc.php:236
DAOResultFactory
Wrapper around ADORecordSet providing "factory" features for generating objects from DAOs.
Definition: DAOResultFactory.inc.php:21
LibraryFileDAO\updateLocaleFields
updateLocaleFields(&$libraryFile)
Definition: LibraryFileDAO.inc.php:108
LibraryFileDAO\getLocaleFieldNames
getLocaleFieldNames()
Definition: LibraryFileDAO.inc.php:100
LibraryFileDAO\getInsertId
getInsertId()
Definition: LibraryFileDAO.inc.php:251
DAO\retrieve
& retrieve($sql, $params=false, $callHooks=true)
Definition: DAO.inc.php:85
LibraryFileDAO\getBySubmissionId
getBySubmissionId($submissionId, $type=null, $contextId=null)
Definition: LibraryFileDAO.inc.php:73
LibraryFileDAO\getById
getById($fileId, $contextId=null)
Definition: LibraryFileDAO.inc.php:27
DAO\datetimeFromDB
datetimeFromDB($dt)
Definition: DAO.inc.php:319
LibraryFileDAO\deleteById
deleteById($fileId, $revision=null)
Definition: LibraryFileDAO.inc.php:219
LibraryFileDAO\getByContextId
getByContextId($contextId, $type=null)
Definition: LibraryFileDAO.inc.php:53
DAO\update
update($sql, $params=false, $callHooks=true, $dieOnError=true)
Definition: DAO.inc.php:214
DAO\datetimeToDB
datetimeToDB($dt)
Definition: DAO.inc.php:299
LibraryFileDAO\_fromRow
_fromRow($row)
Definition: LibraryFileDAO.inc.php:121
LibraryFileDAO\updateObject
updateObject($libraryFile)
Definition: LibraryFileDAO.inc.php:183
DAO\_getInsertId
_getInsertId($table='', $id='')
Definition: DAO.inc.php:255
LibraryFileDAO\newDataObject
newDataObject()
Definition: LibraryFileDAO.inc.php:91
DAO\getDataObjectSettings
getDataObjectSettings($tableName, $idFieldName, $idFieldValue, $dataObject)
Definition: DAO.inc.php:582
LibraryFileDAO\insertObject
insertObject($libraryFile)
Definition: LibraryFileDAO.inc.php:147
LibraryFile
Library file class.
Definition: LibraryFile.inc.php:25
DAO\updateDataObjectSettings
updateDataObjectSettings($tableName, $dataObject, $idArray)
Definition: DAO.inc.php:488
HookRegistry\call
static call($hookName, $args=null)
Definition: HookRegistry.inc.php:86
DAO
Operations for retrieving and modifying objects from a database.
Definition: DAO.inc.php:31