17 import(
'classes.article.ArticleGalley');
18 import(
'lib.pkp.classes.db.SchemaDAO');
19 import(
'lib.pkp.classes.plugins.PKPPubIdPluginDAO');
36 'fileId' =>
'file_id',
38 'isApproved' =>
'is_approved',
41 'publicationId' =>
'publication_id',
43 'urlPath' =>
'url_path',
44 'urlRemote' =>
'remote_url',
66 if ($galleyFactory->wasEmpty())
return null;
68 assert($galleyFactory->getCount() == 1);
69 return $galleyFactory->next();
81 $params = array($settingName);
84 FROM publication_galleys g
85 INNER JOIN publications p ON p.publication_id = g.publication_id
86 INNER JOIN submissions s ON s.current_publication_id = g.publication_id ';
87 if (is_null($settingValue)) {
88 $sql .=
'LEFT JOIN publication_galley_settings gs ON g.galley_id = gs.galley_id AND gs.setting_name = ?
89 WHERE (gs.setting_value IS NULL OR gs.setting_value = \'\')';
91 $params[] = (string) $settingValue;
92 $sql .=
'INNER JOIN publication_galley_settings gs ON g.galley_id = gs.galley_id
93 WHERE gs.setting_name = ? AND gs.setting_value = ?';
96 $params[] = (int) $publicationId;
97 $sql .=
' AND g.publication_id = ?';
100 $params[] = (int) $journalId;
101 $sql .=
' AND s.context_id = ?';
103 $sql .=
' ORDER BY s.context_id, g.galley_id';
104 $result = $this->
retrieve($sql, $params);
113 $params = array((
int) $publicationId);
114 if ($contextId) $params[] = (int) $contextId;
119 FROM publication_galleys g
120 INNER JOIN publications p ON (g.publication_id = p.publication_id)
121 LEFT JOIN submission_files sf ON (g.file_id = sf.file_id)
122 LEFT JOIN submission_files nsf ON (nsf.file_id = g.file_id AND nsf.revision > sf.revision)
123 ' . ($contextId ?
'LEFT JOIN submissions s ON (s.submission_id = p.submission_id)' :
'') .
124 'WHERE g.publication_id = ?
125 AND nsf.file_id IS NULL ' .
126 ($contextId?
' AND s.context_id = ? ':
'') .
142 FROM publication_galleys g
143 INNER JOIN publications p ON (p.publication_id = g.publication_id)
144 LEFT JOIN submissions s ON (s.submission_id = p.submission_id)
145 LEFT JOIN submission_files sf ON (g.file_id = sf.file_id)
146 LEFT JOIN submission_files nsf ON (nsf.file_id = g.file_id AND nsf.revision > sf.revision)
147 WHERE s.context_id = ?
148 AND nsf.file_id IS NULL',
163 FROM publication_galleys g
164 WHERE g.file_id = ?',
180 (int) $publicationId,
186 FROM publication_galleys g
187 INNER JOIN publications p ON (g.publication_id = p.publication_id)
188 LEFT JOIN submission_files sf ON (g.file_id = sf.file_id)
189 LEFT JOIN submission_files nsf ON (nsf.file_id = g.file_id AND nsf.revision > sf.revision)
190 WHERE g.publication_id = ?
192 AND nsf.file_id IS NULL
197 if ($result->RecordCount() != 0) {
198 $galley = $this->
_fromRow($result->GetRowAssoc(
false));
199 } elseif (is_int($galleyId) || ctype_digit($galleyId)) {
200 $galley = $this->
getById($galleyId);
204 return $galley ??
null;
210 function pubIdExists($pubIdType, $pubId, $excludePubObjectId, $contextId) {
213 FROM publication_galley_settings pgs
214 INNER JOIN publication_galleys pg ON pgs.galley_id = pg.galley_id
215 INNER JOIN publications p ON pg.publication_id = p.publication_id
216 INNER JOIN submissions s ON p.submission_id = s.submission_id
217 WHERE pgs.setting_name = ? AND pgs.setting_value = ? AND pgs.galley_id <> ? AND s.context_id = ?',
219 'pub-id::'.$pubIdType,
221 (
int) $excludePubObjectId,
225 $returner = $result->fields[0] ? true :
false;
235 'galley_id',
'locale',
'setting_name'
237 $updateArray = array(
238 'galley_id' => (
int) $pubObjectId,
240 'setting_name' =>
'pub-id::'.$pubIdType,
241 'setting_type' =>
'string',
242 'setting_value' => (
string)$pubId
244 $this->
replace(
'publication_galley_settings', $updateArray, $idFields);
251 $settingName =
'pub-id::'.$pubIdType;
253 'DELETE FROM publication_galley_settings WHERE setting_name = ? AND galley_id = ?',
266 $settingName =
'pub-id::'.$pubIdType;
269 while ($galley = $galleys->next()) {
271 'DELETE FROM publication_galley_settings WHERE setting_name = ? AND galley_id = ?',
274 (
int)$galley->getId()
294 function getExportable($contextId, $pubIdType =
null, $title =
null, $author =
null, $issueId =
null, $pubIdSettingName =
null, $pubIdSettingValue =
null, $rangeInfo =
null) {
296 if ($pubIdSettingName) {
297 $params[] = $pubIdSettingName;
299 import(
'classes.submission.Submission');
300 $params[] = STATUS_PUBLISHED;
301 $params[] = (int) $contextId;
303 $params[] =
'pub-id::'.$pubIdType;
307 $params[] =
'%' . $title .
'%';
309 if ($author) array_push($params, $authorQuery =
'%' . $author .
'%', $authorQuery);
311 $params[] = (int) $issueId;
313 import(
'classes.plugins.PubObjectsExportPlugin');
314 if ($pubIdSettingName && $pubIdSettingValue && $pubIdSettingValue != EXPORT_STATUS_NOT_DEPOSITED) {
315 $params[] = $pubIdSettingValue;
320 FROM publication_galleys g
321 LEFT JOIN publications p ON (p.publication_id = g.publication_id)
322 LEFT JOIN publication_settings ps ON (ps.publication_id = p.publication_id)
323 LEFT JOIN submissions s ON (s.submission_id = p.submission_id)
324 LEFT JOIN submission_files sf ON (g.file_id = sf.file_id)
325 LEFT JOIN submission_files nsf ON (nsf.file_id = g.file_id AND nsf.revision > sf.revision AND nsf.file_id IS NULL )
326 ' . ($pubIdType !=
null?
' LEFT JOIN publication_galley_settings gs ON (g.galley_id = gs.galley_id)':
'')
327 . ($title !=
null?
' LEFT JOIN publication_settings pst ON (p.publication_id = pst.publication_id)':
'')
328 . ($author !=
null?
' LEFT JOIN authors au ON (p.publication_id = au.publication_id)
329 LEFT JOIN author_settings asgs ON (asgs.author_id = au.author_id AND asgs.setting_name = \''.IDENTITY_SETTING_GIVENNAME.
'\')
330 LEFT JOIN author_settings asfs ON (asfs.author_id = au.author_id AND asfs.setting_name = \
''.IDENTITY_SETTING_FAMILYNAME.
'\')
332 . ($pubIdSettingName != null?' LEFT JOIN publication_galley_settings gss ON (g.galley_id = gss.galley_id AND gss.setting_name = ?)
':'') .'
334 s.status = ? AND s.context_id = ?
335 ' . ($pubIdType != null?' AND gs.setting_name = ? AND gs.setting_value IS NOT NULL
':'')
336 . ($title != null?' AND (pst.setting_name = ? AND pst.setting_value LIKE ?)
':'')
337 . ($author != null?' AND (asgs.setting_value LIKE ? OR asfs.setting_value LIKE ?)
':'')
338 . ($issueId != null?' AND (ps.setting_name = \
'issueId\' AND ps.setting_value = ?':
'')
339 . (($pubIdSettingName !=
null && $pubIdSettingValue !=
null && $pubIdSettingValue == EXPORT_STATUS_NOT_DEPOSITED)?
' AND gss.setting_value IS NULL':
'')
340 . (($pubIdSettingName !=
null && $pubIdSettingValue !=
null && $pubIdSettingValue != EXPORT_STATUS_NOT_DEPOSITED)?
' AND gss.setting_value = ?':
'')
341 . (($pubIdSettingName !=
null && is_null($pubIdSettingValue))?
' AND (gss.setting_value IS NULL OR gss.setting_value = \'\')':
'') .
'
343 ORDER BY p.date_published DESC, p.publication_id DESC, g.galley_id DESC',