17 import(
'classes.issue.IssueGalley');
27 function getById($galleyId, $issueId =
null) {
28 $params = array((
int) $galleyId);
29 if ($issueId !==
null) $params[] = (int) $issueId;
41 LEFT JOIN issue_files f ON (g.file_id = f.file_id)
42 WHERE g.galley_id = ?' .
43 ($issueId !==
null?
' AND g.issue_id = ?':
''),
48 if ($result->RecordCount() != 0) {
49 $returner = $this->
_fromRow($result->GetRowAssoc(
false));
51 HookRegistry::call(
'IssueGalleyDAO::getById', array(&$galleyId, &$issueId, &$returner));
68 function pubIdExists($pubIdType, $pubId, $galleyId, $journalId) {
71 FROM issue_galley_settings igs
72 INNER JOIN issue_galleys ig ON igs.galley_id = ig.galley_id
73 INNER JOIN issues i ON ig.issue_id = i.issue_id
74 WHERE igs.setting_name = ? AND igs.setting_value = ? AND igs.galley_id <> ? AND i.journal_id = ?',
76 'pub-id::'.$pubIdType,
82 $returner = $result->fields[0] ? true :
false;
101 f.original_file_name,
108 INNER JOIN issue_galley_settings gs ON g.galley_id = gs.galley_id
109 LEFT JOIN issue_files f ON (g.file_id = f.file_id)
110 WHERE gs.setting_name = ? AND
111 gs.setting_value = ? AND
113 array(
'pub-id::'.$pubIdType, (
string) $pubId, (
int) $issueId)
117 if ($result->RecordCount() != 0) {
118 $returner = $this->
_fromRow($result->GetRowAssoc(
false));
120 HookRegistry::call(
'IssueGalleyDAO::getByPubId', array(&$pubIdType, &$pubId, &$issueId, &$returner));
138 f.original_file_name,
145 LEFT JOIN issue_files f ON (g.file_id = f.file_id)
146 WHERE g.issue_id = ? ORDER BY g.seq',
150 while (!$result->EOF) {
151 $issueGalley = $this->
_fromRow($result->GetRowAssoc(
false));
152 $galleys[$issueGalley->getId()] = $issueGalley;
173 f.original_file_name,
180 LEFT JOIN issue_files f ON (g.file_id = f.file_id)
181 WHERE g.url_path = ? AND
189 if ($result->RecordCount() != 0) {
190 $issueGalley = $this->
_fromRow($result->GetRowAssoc(
false));
192 $issueGalley = $this->
getById($galleyId, $issueId);
213 $additionalFields = parent::getAdditionalFieldNames();
215 $additionalFields[] =
'pub-id::publisher-id';
216 return $additionalFields;
225 'galley_id' => $galley->getId()
245 $galley->setId($row[
'galley_id']);
246 $galley->setIssueId($row[
'issue_id']);
247 $galley->setLocale($row[
'locale']);
248 $galley->setFileId($row[
'file_id']);
249 $galley->setLabel($row[
'label']);
250 $galley->setSequence($row[
'seq']);
251 $galley->setData(
'urlPath', $row[
'url_path']);
254 $galley->setServerFileName($row[
'file_name']);
255 $galley->setOriginalFileName($row[
'original_file_name']);
256 $galley->setFileType($row[
'file_type']);
257 $galley->setFileSize($row[
'file_size']);
258 $galley->setContentType($row[
'content_type']);
259 $galley->setDateModified($this->
datetimeFromDB($row[
'date_modified']));
260 $galley->setDateUploaded($this->
datetimeFromDB($row[
'date_uploaded']));
275 'INSERT INTO issue_galleys
285 (
int) $galley->getIssueId(),
286 (
int) $galley->getFileId(),
288 $galley->getLocale(),
289 $galley->getSequence() ==
null ? $this->getNextGalleySequence($galley->getIssueId()) : $galley->getSequence(),
290 $galley->getData(
'urlPath'),
296 HookRegistry::call(
'IssueGalleyDAO::insertObject', array(&$galley, $galley->getId()));
298 return $galley->getId();
307 'UPDATE issue_galleys
314 WHERE galley_id = ?',
316 (
int) $galley->getFileId(),
318 $galley->getLocale(),
319 $galley->getSequence(),
320 $galley->getData(
'urlPath'),
321 (
int) $galley->getId()
332 return $this->
deleteById($galley->getId(), $galley->getIssueId());
343 if (isset($issueId)) {
345 'DELETE FROM issue_galleys WHERE galley_id = ? AND issue_id = ?',
346 array((
int) $galleyId, (
int) $issueId)
350 'DELETE FROM issue_galleys WHERE galley_id = ?', (
int) $galleyId
354 $this->
update(
'DELETE FROM issue_galley_settings WHERE galley_id = ?', array((
int) $galleyId));
365 foreach ($galleys as $galley) {
366 $this->
deleteById($galley->getId(), $issueId);
376 'SELECT galley_id FROM issue_galleys WHERE issue_id = ? ORDER BY seq',
380 for ($i=1; !$result->EOF; $i++) {
381 list($galleyId) = $result->fields;
383 'UPDATE issue_galleys SET seq = ? WHERE galley_id = ?',
399 'SELECT MAX(seq) + 1 FROM issue_galleys WHERE issue_id = ?',
402 $returner = floor($result->fields[0]);
412 return $this->
_getInsertId(
'issue_galleys',
'galley_id');