Open Preprint Systems  3.3.0
JournalDAO.inc.php
1 <?php
2 
17 import('lib.pkp.classes.context.ContextDAO');
18 import('classes.journal.Journal');
19 import('lib.pkp.classes.metadata.MetadataTypeDescription');
20 
21 define('JOURNAL_FIELD_TITLE', 1);
22 define('JOURNAL_FIELD_SEQUENCE', 2);
23 
24 class JournalDAO extends ContextDAO {
26  var $schemaName = 'context';
27 
29  var $tableName = 'journals';
30 
32  var $settingsTableName = 'journal_settings';
33 
35  var $primaryKeyColumn = 'journal_id';
36 
38  var $primaryTableColumns = [
39  'id' => 'journal_id',
40  'urlPath' => 'path',
41  'enabled' => 'enabled',
42  'seq' => 'seq',
43  'primaryLocale' => 'primary_locale',
44  ];
45 
51  public function newDataObject() {
52  return new Journal();
53  }
54 
59  function getTitles($enabledOnly = false) {
60  $journals = array();
61  $journalIterator = $this->getAll($enabledOnly);
62  while ($journal = $journalIterator->next()) {
63  $journals[$journal->getId()] = $journal->getLocalizedName();
64  }
65  return $journals;
66  }
67 
75  function deleteAllPubIds($journalId, $pubIdType) {
76  $pubObjectDaos = array('PublicationDAO', 'ArticleGalleyDAO');
77  foreach($pubObjectDaos as $daoName) {
78  $dao = DAORegistry::getDAO($daoName);
79  $dao->deleteAllPubIds($journalId, $pubIdType);
80  }
81  import('lib.pkp.classes.submission.SubmissionFileDAODelegate');
82  $submissionFileDaoDelegate = new SubmissionFileDAODelegate();
83  $submissionFileDaoDelegate->deleteAllPubIds($journalId, $pubIdType);
84  }
85 
100  function anyPubIdExists($journalId, $pubIdType, $pubId,
101  $assocType = ASSOC_TYPE_ANY, $assocId = 0, $forSameType = false) {
102 
103  $pubObjectDaos = array(
104  ASSOC_TYPE_SUBMISSION => DAORegistry::getDAO('SubmissionDAO'),
105  ASSOC_TYPE_GALLEY => Application::getRepresentationDAO(),
106  ASSOC_TYPE_SUBMISSION_FILE => DAORegistry::getDAO('SubmissionFileDAO')
107  );
108  if ($forSameType) {
109  $dao = $pubObjectDaos[$assocType];
110  $excludedId = $assocId;
111  if ($dao->pubIdExists($pubIdType, $pubId, $excludedId, $journalId)) return true;
112  return false;
113  }
114  foreach($pubObjectDaos as $daoAssocType => $dao) {
115  if ($assocType == $daoAssocType) {
116  $excludedId = $assocId;
117  } else {
118  $excludedId = 0;
119  }
120  if ($dao->pubIdExists($pubIdType, $pubId, $excludedId, $journalId)) return true;
121  }
122  return false;
123  }
124 }
JournalDAO
Operations for retrieving and modifying Journal objects.
Definition: JournalDAO.inc.php:24
Application\getRepresentationDAO
static getRepresentationDAO()
Definition: Application.inc.php:143
JournalDAO\$tableName
$tableName
Definition: JournalDAO.inc.php:29
JournalDAO\deleteAllPubIds
deleteAllPubIds($journalId, $pubIdType)
Definition: JournalDAO.inc.php:78
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
JournalDAO\$primaryTableColumns
$primaryTableColumns
Definition: JournalDAO.inc.php:41
JournalDAO\newDataObject
newDataObject()
Definition: JournalDAO.inc.php:54
JournalDAO\getTitles
getTitles($enabledOnly=false)
Definition: JournalDAO.inc.php:62
JournalDAO\$primaryKeyColumn
$primaryKeyColumn
Definition: JournalDAO.inc.php:35
ContextDAO\getAll
getAll($enabledOnly=false, $rangeInfo=null)
Definition: ContextDAO.inc.php:79
JournalDAO\anyPubIdExists
anyPubIdExists($journalId, $pubIdType, $pubId, $assocType=ASSOC_TYPE_ANY, $assocId=0, $forSameType=false)
Definition: JournalDAO.inc.php:103
SubmissionFileDAODelegate
Abstract class to support DAO delegates that provide operations to retrieve and modify SubmissionFile...
Definition: SubmissionFileDAODelegate.inc.php:21
JournalDAO\$schemaName
$schemaName
Definition: JournalDAO.inc.php:26
ContextDAO
Operations for retrieving and modifying context objects.
Definition: ContextDAO.inc.php:18
JournalDAO\$settingsTableName
$settingsTableName
Definition: JournalDAO.inc.php:32
Journal
Describes basic journal properties.
Definition: Journal.inc.php:29