17 import (
'classes.press.Series');
18 import (
'lib.pkp.classes.context.PKPSectionDAO');
27 function getById($seriesId, $pressId =
null) {
28 $params = array((
int) $seriesId);
29 if ($pressId) $params[] = (int) $pressId;
35 ' . ($pressId?
' AND press_id = ?':
''),
40 if ($result->RecordCount() != 0) {
41 $returner = $this->
_fromRow($result->GetRowAssoc(
false));
56 'SELECT * FROM series WHERE path = ? AND press_id = ?',
57 array((
string) $path, (
int) $pressId)
61 if ($result->RecordCount() != 0) {
62 $returner = $this->
_fromRow($result->GetRowAssoc(
false));
83 $series = parent::_fromRow($row);
85 $series->setId($row[
'series_id']);
86 $series->setPressId($row[
'press_id']);
87 $series->setFeatured($row[
'featured']);
88 $series->setImage(unserialize($row[
'image']));
89 $series->setPath($row[
'path']);
90 $series->setIsInactive($row[
'is_inactive']);
105 parent::getLocaleFieldNames(),
106 array(
'description',
'prefix',
'subtitle')
116 parent::getAdditionalFieldNames(),
118 'onlineIssn',
'printIssn',
'sortOption',
131 array(
'series_id' => (
int) $series->getId())
142 (press_id, seq, featured, path, image, editor_restricted, is_inactive)
144 (?, ?, ?, ?, ?, ?, ?)',
146 (
int) $series->getPressId(),
147 (
float) $series->getSequence(),
148 (
int) $series->getFeatured(),
149 (
string) $series->getPath(),
150 serialize($series->getImage() ? $series->getImage() : array()),
151 (
int) $series->getEditorRestricted(),
152 (
int) $series->getIsInactive() ? 1 : 0,
158 return $series->getId();
173 editor_restricted = ?,
175 WHERE series_id = ?',
177 (
int) $series->getPressId(),
178 (
float) $series->getSequence(),
179 (
int) $series->getFeatured(),
180 (
string) $series->getPath(),
181 serialize($series->getImage() ? $series->getImage() : array()),
182 (
int) $series->getEditorRestricted(),
183 (
int) $series->getIsInactive(),
184 (
int) $series->getId(),
197 if (!$this->
seriesExists($seriesId, $contextId))
return false;
200 $subEditorsDao->deleteBySubmissionGroupId($seriesId, ASSOC_TYPE_SECTION, $contextId);
203 $submissionsIterator =
Services::get(
'submission')->getMany([
'seriesIds' => $seriesId,
'count' => 1000]);
204 foreach ($submissionsIterator as $submission) {
205 foreach ((array) $submission->getData(
'publications') as $publication) {
206 Services::get(
'publication')->edit($publication, [
'seriesId' => 0]);
211 $this->
update(
'DELETE FROM series WHERE series_id = ?', (
int) $seriesId);
212 $this->
update(
'DELETE FROM series_settings WHERE series_id = ?', (
int) $seriesId);
244 'SELECT s.*, COALESCE(stpl.setting_value, stl.setting_value) AS series_title FROM series s
245 LEFT JOIN series_settings stpl ON (s.series_id = stpl.series_id AND stpl.setting_name = ? AND stpl.locale = ?)
246 LEFT JOIN series_settings stl ON (s.series_id = stl.series_id AND stl.setting_name = ? AND stl.locale = ?)
261 $seriesTitles = array();
264 while ($series = $seriesIterator->next()) {
265 if ($submittableOnly) {
266 if (!$series->getEditorRestricted()) {
267 $seriesTitles[$series->getId()] = $series->getLocalizedTitle();
270 $seriesTitles[$series->getId()] = $series->getLocalizedTitle();
274 return $seriesTitles;
285 'SELECT COUNT(*) FROM series WHERE series_id = ? AND press_id = ?',
286 array((
int) $seriesId, (
int) $pressId)
288 $returner = isset($result->fields[0]) && $result->fields[0] == 1 ? true :
false;
309 'INSERT INTO series_categories
310 (series_id, category_id)
327 'DELETE FROM series_categories WHERE series_id = ?',
328 array((
int) $seriesId)
338 $params = array((
int) $seriesId);
339 if ($pressId) $params[] = (int) $pressId;
345 series_categories sc,
347 WHERE c.category_id = sc.category_id AND
349 ' . ($pressId?
' c.context_id = s.press_id AND s.press_id = ? AND':
'') .
'
350 s.series_id = sc.series_id',
364 $params = array((
int) $seriesId);
365 if ($pressId) $params[] = (int) $pressId;
371 JOIN categories c ON (c.context_id = s.press_id)
372 LEFT JOIN series_categories sc ON (s.series_id = sc.series_id AND sc.category_id = c.category_id)
373 WHERE s.series_id = ? AND
374 ' . ($pressId?
' s.press_id = ? AND':
'') .
'
375 sc.series_id IS NULL',
391 'SELECT COUNT(*) FROM series_categories WHERE series_id = ? AND category_id = ?',
392 array((
int) $seriesId, (
int) $categoryId)
394 $returner = isset($result->fields[0]) && $result->fields[0] == 1 ? true :
false;