Ejemplo n.º 1
0
 /**
  * Internal function to return a Journal object from a row.
  * @param $row array
  * @return Journal
  */
 function &_returnJournalFromRow(&$row)
 {
     $journal = new Journal();
     $journal->setId($row['journal_id']);
     $journal->setPath($row['path']);
     $journal->setSequence($row['seq']);
     $journal->setEnabled($row['enabled']);
     $journal->setPrimaryLocale($row['primary_locale']);
     HookRegistry::call('JournalDAO::_returnJournalFromRow', array(&$journal, &$row));
     return $journal;
 }
 function createJournal()
 {
     $journalConfigXML = $this->getCurrentElementAsDom();
     $journalDao =& DAORegistry::getDAO("JournalDAO");
     $journal = new Journal();
     $journal->setPath((string) $journalConfigXML->path);
     $journal->setEnabled((int) $journalConfigXML->enabled);
     $journal->setPrimaryLocale((string) $journalConfigXML->primaryLocale);
     $this->generateJournalPath($journal);
     $journalId = $journalDao->insertJournal($journal);
     $journalDao->resequenceJournals();
     // Make the file directories for the journal
     import('lib.pkp.classes.file.FileManager');
     $fileManager = new FileManager();
     if (!file_exists(Config::getVar('files', 'files_dir') . '/journals/' . $journalId)) {
         $fileManager->mkdir(Config::getVar('files', 'files_dir') . '/journals/' . $journalId);
     }
     if (!file_exists(Config::getVar('files', 'files_dir') . '/journals/' . $journalId . '/articles')) {
         $fileManager->mkdir(Config::getVar('files', 'files_dir') . '/journals/' . $journalId . '/articles');
     }
     if (!file_exists(Config::getVar('files', 'files_dir') . '/journals/' . $journalId . '/issues')) {
         $fileManager->mkdir(Config::getVar('files', 'files_dir') . '/journals/' . $journalId . '/issues');
     }
     if (!file_exists(Config::getVar('files', 'public_files_dir') . '/journals/' . $journalId)) {
         $fileManager->mkdir(Config::getVar('files', 'public_files_dir') . '/journals/' . $journalId);
     }
     import('classes.rt.ojs.JournalRTAdmin');
     $journalRtAdmin = new JournalRTAdmin($journalId);
     $journalRtAdmin->restoreVersions(false);
     // Make sure all plugins are loaded for settings preload
     PluginRegistry::loadAllPlugins();
     HookRegistry::call('JournalSiteSettingsForm::execute', array(&$this, &$journal, &$section, &$isNewJournal));
     $journalSettingsDao =& DAORegistry::getDAO('JournalSettingsDAO');
     $this->restoreDataObjectSettings($journalSettingsDao, $journalConfigXML->settings, "journal_settings", "journal_id", $journal->getId());
     $this->journal = $journal;
 }