Open Monograph Press  3.3.0
PublicationFormatTombstoneManager.inc.php
1 <?php
2 
21  function __construct() {
22  }
23 
29  function insertTombstoneByPublicationFormat($publicationFormat, $press) {
30  $publication = Services::get('publication')->get($publicationFormat->getData('publicationId'));
31  $submissionDao = DAORegistry::getDAO('SubmissionDAO'); /* @var $submissionDao SubmissionDAO */
32  $monograph = $submissionDao->getById($publication->getData('submissionId'));
33  $seriesDao = DAORegistry::getDAO('SeriesDAO'); /* @var $seriesDao SeriesDAO */
34  $series = $seriesDao->getById($monograph->getSeriesId());
35 
36  $dataObjectTombstoneDao = DAORegistry::getDAO('DataObjectTombstoneDAO'); /* @var $dataObjectTombstoneDao DataObjectTombstoneDAO */
37  // delete publication format tombstone to ensure that there aren't
38  // more than one tombstone for this publication format
39  $dataObjectTombstoneDao->deleteByDataObjectId($publicationFormat->getId());
40  // insert publication format tombstone
41  if (is_a($series, 'Series')) {
42  $setSpec = urlencode($press->getPath()) . ':' . urlencode($series->getPath());
43  $setName = $series->getLocalizedTitle();
44  } else {
45  $setSpec = urlencode($press->getPath());
46  $setName = $press->getLocalizedName();
47  }
48  $oaiIdentifier = 'oai:' . Config::getVar('oai', 'repository_id') . ':' . 'publicationFormat/' . $publicationFormat->getId();
49  $OAISetObjectsIds = array(
50  ASSOC_TYPE_PRESS => $monograph->getPressId(),
51  ASSOC_TYPE_SERIES => $monograph->getSeriesId()
52  );
53 
54  $publicationFormatTombstone = $dataObjectTombstoneDao->newDataObject(); /* @var $publicationFormatTombstone DataObjectTombstone */
55  $publicationFormatTombstone->setDataObjectId($publicationFormat->getId());
56  $publicationFormatTombstone->stampDateDeleted();
57  $publicationFormatTombstone->setSetSpec($setSpec);
58  $publicationFormatTombstone->setSetName($setName);
59  $publicationFormatTombstone->setOAIIdentifier($oaiIdentifier);
60  $publicationFormatTombstone->setOAISetObjectsIds($OAISetObjectsIds);
61  $dataObjectTombstoneDao->insertObject($publicationFormatTombstone);
62 
63  if (HookRegistry::call('PublicationFormatTombstoneManager::insertPublicationFormatTombstone', array(&$publicationFormatTombstone, &$publicationFormat, &$press))) return;
64  }
65 
71  function insertTombstonesByPublicationFormats($publicationFormats, $press) {
72  foreach($publicationFormats as $publicationFormat) {
73  $this->insertTombstoneByPublicationFormat($publicationFormat, $press);
74  }
75  }
76 
82  function insertTombstonesByPress($press) {
83  $submissionsIterator = Services::get('submission')->getMany(['contextId' => $press->getId(), 'status' => STATUS_PUBLISHED, 'count' => 2000]);
84  foreach ($submissionsIterator as $submission) {
85  foreach ($submission->getData('publications') as $publication) {
86  $this->insertTombstonesByPublicationFormats($publication->getData('publicationFormats'), $press);
87  }
88  }
89  }
90 
95  function deleteTombstonesByPublicationFormats($publicationFormats) {
96  foreach ($publicationFormats as $publicationFormat) {
97  $tombstoneDao = DAORegistry::getDAO('DataObjectTombstoneDAO'); /* @var $tombstoneDao DataObjectTombstoneDAO */
98  $tombstoneDao->deleteByDataObjectId($publicationFormat->getId());
99  }
100  }
101 
106  function deleteTombstonesByPressId($pressId) {
107  $submissionsIterator = Services::get('submission')->getMany(['contextId' => $pressId, 'status' => STATUS_PUBLISHED, 'count' => 2000]);
108  foreach ($submissionsIterator as $submission) {
109  foreach ($submission->getData('publications') as $publication) {
110  $this->deleteTombstonesByPublicationFormats($publication->getData('publicationFormats'));
111  }
112  }
113  }
114 }
115 
116 
PublicationFormatTombstoneManager\insertTombstonesByPublicationFormats
insertTombstonesByPublicationFormats($publicationFormats, $press)
Definition: PublicationFormatTombstoneManager.inc.php:71
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
PublicationFormatTombstoneManager\deleteTombstonesByPublicationFormats
deleteTombstonesByPublicationFormats($publicationFormats)
Definition: PublicationFormatTombstoneManager.inc.php:95
PublicationFormatTombstoneManager\__construct
__construct()
Definition: PublicationFormatTombstoneManager.inc.php:21
PublicationFormatTombstoneManager\insertTombstonesByPress
insertTombstonesByPress($press)
Definition: PublicationFormatTombstoneManager.inc.php:82
PublicationFormatTombstoneManager\insertTombstoneByPublicationFormat
insertTombstoneByPublicationFormat($publicationFormat, $press)
Definition: PublicationFormatTombstoneManager.inc.php:29
PublicationFormatTombstoneManager
Class defining basic operations for publication format tombstones.
Definition: PublicationFormatTombstoneManager.inc.php:17
Config\getVar
static getVar($section, $key, $default=null)
Definition: Config.inc.php:35
PublicationFormatTombstoneManager\deleteTombstonesByPressId
deleteTombstonesByPressId($pressId)
Definition: PublicationFormatTombstoneManager.inc.php:106
HookRegistry\call
static call($hookName, $args=null)
Definition: HookRegistry.inc.php:86
PKPServices\get
static get($service)
Definition: PKPServices.inc.php:49