Open Journal 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('IssueDAO', '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  }
86 
101  function anyPubIdExists($journalId, $pubIdType, $pubId,
102  $assocType = ASSOC_TYPE_ANY, $assocId = 0, $forSameType = false) {
103 
104  $pubObjectDaos = array(
105  ASSOC_TYPE_ISSUE => DAORegistry::getDAO('IssueDAO'),
106  ASSOC_TYPE_SUBMISSION => DAORegistry::getDAO('SubmissionDAO'),
107  ASSOC_TYPE_GALLEY => Application::getRepresentationDAO(),
108  ASSOC_TYPE_ISSUE_GALLEY => DAORegistry::getDAO('IssueGalleyDAO'),
109  ASSOC_TYPE_SUBMISSION_FILE => DAORegistry::getDAO('SubmissionFileDAO')
110  );
111  if ($forSameType) {
112  $dao = $pubObjectDaos[$assocType];
113  $excludedId = $assocId;
114  if ($dao->pubIdExists($pubIdType, $pubId, $excludedId, $journalId)) return true;
115  return false;
116  }
117  foreach($pubObjectDaos as $daoAssocType => $dao) {
118  if ($assocType == $daoAssocType) {
119  $excludedId = $assocId;
120  } else {
121  $excludedId = 0;
122  }
123  if ($dao->pubIdExists($pubIdType, $pubId, $excludedId, $journalId)) return true;
124  }
125  return false;
126  }
127 }
JournalDAO
Operations for retrieving and modifying Journal objects.
Definition: JournalDAO.inc.php:24
Application\getRepresentationDAO
static getRepresentationDAO()
Definition: Application.inc.php:162
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:104
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:30