18 import(
'classes.monograph.Chapter');
19 import(
'classes.monograph.ChapterAuthor');
29 $params = array((
int) $chapterId);
30 if ($publicationId !==
null) {
31 $params[] = (int) $publicationId;
35 'SELECT * FROM submission_chapters WHERE chapter_id = ?'
36 . ($publicationId !==
null?
' AND publication_id = ? ':
''),
41 if ($result->RecordCount() != 0) {
42 $returner = $this->
_fromRow($result->GetRowAssoc(
false));
57 FROM submission_chapters spc
58 INNER JOIN publications p ON (spc.publication_id = p.publication_id)
59 WHERE p.publication_id = ?'
60 . ($orderBySequence ?
' ORDER BY spc.seq ASC' :
''),
75 FROM submission_chapters spc
76 INNER JOIN publications p ON (spc.publication_id = p.publication_id)
77 INNER JOIN submissions s ON (p.submission_id = s.submission_id)
78 WHERE s.context_id = ?',
90 return array(
'title',
'subtitle',
'abstract');
99 $additionalFields = parent::getAdditionalFieldNames();
101 $additionalFields[] =
'pub-id::publisher-id';
102 $additionalFields[] =
'datePublished';
103 $additionalFields[] =
'pages';
104 return $additionalFields;
122 $chapter->setId((
int) $row[
'chapter_id']);
123 $chapter->setData(
'publicationId', (
int) $row[
'publication_id']);
124 $chapter->setSequence((
int) $row[
'seq']);
126 $this->
getDataObjectSettings(
'submission_chapter_settings',
'chapter_id', $row[
'chapter_id'], $chapter);
139 'chapter_id' => $chapter->getId()
149 'INSERT INTO submission_chapters
150 (publication_id, seq)
154 (
int) $chapter->getData(
'publicationId'),
155 (
int) $chapter->getSequence(),
161 return $chapter->getId();
170 'UPDATE submission_chapters
171 SET publication_id = ?,
176 (
int) $chapter->getData(
'publicationId'),
177 (
int) $chapter->getSequence(),
178 (
int) $chapter->getId()
197 $this->
update(
'DELETE FROM submission_chapter_authors WHERE chapter_id = ?', (
int) $chapterId);
198 $this->
update(
'DELETE FROM submission_chapter_settings WHERE chapter_id = ?', (
int) $chapterId);
199 $this->
update(
'DELETE FROM submission_chapters WHERE chapter_id = ?', (
int) $chapterId);
200 $this->
update(
'DELETE FROM submission_file_settings WHERE setting_name = ? AND setting_value = ?', [
'chapterId', (
int) $chapterId]);
209 if ($publicationId !==
null) {
210 $params[] = (int) $publicationId;
214 'SELECT chapter_id FROM submission_chapters
216 . ($publicationId !==
null ?
' AND publication_id = ?':
'')
221 for ($i=1; !$result->EOF; $i++) {
222 list($chapterId) = $result->fields;
224 'UPDATE submission_chapters SET seq = ? WHERE chapter_id = ?',
242 return $this->
_getInsertId(
'submission_chapters',
'chapter_id');
248 function pubIdExists($pubIdType, $pubId, $excludePubObjectId, $contextId) {
251 FROM submission_chapter_settings scs
252 INNER JOIN submission_chapters sc ON scs.chapter_id = sc.chapter_id
253 INNER JOIN publications p ON sc.publication_id = p.publication_id
254 INNER JOIN submissions s ON p.submission_id = s.submission_id
255 WHERE scs.setting_name = ?
256 AND scs.setting_value = ?
257 AND sc.chapter_id <> ?
258 AND s.context_id = ?',
260 'pub-id::'.$pubIdType,
262 (
int) $excludePubObjectId,
266 $returner = $result->fields[0] ? true :
false;
276 'chapter_id',
'locale',
'setting_name'
278 $updateArray = array(
279 'chapter_id' => (
int) $pubObjectId,
281 'setting_name' =>
'pub-id::'.$pubIdType,
282 'setting_type' =>
'string',
283 'setting_value' => (
string)$pubId
285 $this->
replace(
'submission_chapter_settings', $updateArray, $idFields);
292 $settingName =
'pub-id::'.$pubIdType;
294 'DELETE FROM submission_chapter_settings WHERE setting_name = ? AND chapter_id = ?',
307 $settingName =
'pub-id::'.$pubIdType;
310 while ($chapter = $chapters->next()) {
312 'DELETE FROM submission_chapter_settings WHERE setting_name = ? AND chapter_id = ?',
315 (
int)$chapter->getId()