Inheritance: extends Plugin
 /**
  * Extracts variables for a given column from a data element
  * so that they may be assigned to template before rendering.
  *
  * @copydoc DataObjectGridCellProvider::getTemplateVarsFromRowColumn()
  */
 function getTemplateVarsFromRowColumn($row, $column)
 {
     $publishedIssue = $row->getData();
     $columnId = $column->getId();
     assert(is_a($publishedIssue, 'Issue') && !empty($columnId));
     switch ($columnId) {
         case 'identification':
             return array('label' => '');
         case 'published':
             return array('label' => $publishedIssue->getDatePublished());
         case 'pubId':
             return array('label' => $publishedIssue->getStoredPubId($this->_plugin->getPubIdType()));
         case 'status':
             $status = $publishedIssue->getData($this->_plugin->getDepositStatusSettingName());
             $statusNames = $this->_plugin->getStatusNames();
             $statusActions = $this->_plugin->getStatusActions($publishedIssue);
             if ($status) {
                 if (array_key_exists($status, $statusActions)) {
                     $label = '';
                 } else {
                     assert(array_key_exists($status, $statusNames));
                     $label = $statusNames[$status];
                 }
             } else {
                 $label = $statusNames[DOI_EXPORT_STATUS_NOT_DEPOSITED];
             }
             return array('label' => $label);
     }
 }
 /**
  * Extracts variables for a given column from a data element
  * so that they may be assigned to template before rendering.
  *
  * @copydoc DataObjectGridCellProvider::getTemplateVarsFromRowColumn()
  */
 function getTemplateVarsFromRowColumn($row, $column)
 {
     $publishedSubmissionGalley = $row->getData();
     $columnId = $column->getId();
     assert(is_a($publishedSubmissionGalley, 'ArticleGAlley') && !empty($columnId));
     switch ($columnId) {
         case 'id':
             return array('label' => $publishedSubmissionGalley->getId());
         case 'title':
             return array('label' => '');
         case 'issue':
             return array('label' => '');
         case 'galley':
             return array('label' => $publishedSubmissionGalley->getGalleyLabel());
         case 'pubId':
             return array('label' => $publishedSubmissionGalley->getStoredPubId($this->_plugin->getPubIdType()));
         case 'status':
             $status = $publishedSubmissionGalley->getData($this->_plugin->getDepositStatusSettingName());
             $statusNames = $this->_plugin->getStatusNames();
             $statusActions = $this->_plugin->getStatusActions($publishedSubmissionGalley);
             if ($status) {
                 if (array_key_exists($status, $statusActions)) {
                     $label = '';
                 } else {
                     assert(array_key_exists($status, $statusNames));
                     $label = $statusNames[$status];
                 }
             } else {
                 $label = $statusNames[DOI_EXPORT_STATUS_NOT_DEPOSITED];
             }
             return array('label' => $label);
     }
 }
 /**
  * Display the plugin.
  * @param $args array
  * @param $request PKPRequest
  */
 function display($args, $request)
 {
     $templateMgr = TemplateManager::getManager($request);
     $context = $request->getContext();
     parent::display($args, $request);
     $templateMgr->assign('plugin', $this);
     switch (array_shift($args)) {
         case 'index':
         case '':
             $templateMgr->display($this->getTemplatePath() . 'index.tpl');
             break;
         case 'uploadImportXML':
             $user = $request->getUser();
             import('lib.pkp.classes.file.TemporaryFileManager');
             $temporaryFileManager = new TemporaryFileManager();
             $temporaryFile = $temporaryFileManager->handleUpload('uploadedFile', $user->getId());
             if ($temporaryFile) {
                 $json = new JSONMessage(true);
                 $json->setAdditionalAttributes(array('temporaryFileId' => $temporaryFile->getId()));
             } else {
                 $json = new JSONMessage(false, __('common.uploadFailed'));
             }
             return $json->getString();
         case 'importBounce':
             $json = new JSONMessage(true);
             $json->setEvent('addTab', array('title' => __('plugins.importexport.users.results'), 'url' => $request->url(null, null, null, array('plugin', $this->getName(), 'import'), array('temporaryFileId' => $request->getUserVar('temporaryFileId')))));
             return $json->getString();
         case 'import':
             $temporaryFileId = $request->getUserVar('temporaryFileId');
             $temporaryFileDao = DAORegistry::getDAO('TemporaryFileDAO');
             $user = $request->getUser();
             $temporaryFile = $temporaryFileDao->getTemporaryFile($temporaryFileId, $user->getId());
             if (!$temporaryFile) {
                 $json = new JSONMessage(true, __('plugins.importexport.users.uploadFile'));
                 return $json->getString();
             }
             $temporaryFilePath = $temporaryFile->getFilePath();
             libxml_use_internal_errors(true);
             $users = $this->importUsers(file_get_contents($temporaryFilePath), $context, $user);
             $validationErrors = array_filter(libxml_get_errors(), create_function('$a', 'return $a->level == LIBXML_ERR_ERROR ||  $a->level == LIBXML_ERR_FATAL;'));
             $templateMgr->assign('validationErrors', $validationErrors);
             libxml_clear_errors();
             $templateMgr->assign('users', $users);
             $json = new JSONMessage(true, $templateMgr->fetch($this->getTemplatePath() . 'results.tpl'));
             return $json->getString();
         case 'export':
             $exportXml = $this->exportUsers((array) $request->getUserVar('selectedUsers'), $request->getContext(), $request->getUser());
             header('Content-type: application/xml');
             echo $exportXml;
             break;
         case 'exportAllUsers':
             $exportXml = $this->exportAllUsers($request->getContext(), $request->getUser());
             header('Content-type: application/xml');
             echo $exportXml;
             break;
         default:
             $dispatcher = $request->getDispatcher();
             $dispatcher->handle404();
     }
 }
Esempio n. 4
0
 function display(&$args, $request)
 {
     $templateMgr =& TemplateManager::getManager();
     parent::display($args, $request);
     $issueDao =& DAORegistry::getDAO('IssueDAO');
     $publishedArticleDao =& DAORegistry::getDAO('PublishedArticleDAO');
     $articleGalleyDao =& DAORegistry::getDAO('ArticleGalleyDAO');
     $journal =& Request::getJournal();
     switch (array_shift($args)) {
         case 'exportGalley':
             $articleId = array_shift($args);
             $galleyId = array_shift($args);
             $article =& $publishedArticleDao->getPublishedArticleByArticleId($articleId);
             $galley =& $articleGalleyDao->getGalley($galleyId, $articleId);
             if ($article && $galley && ($issue =& $issueDao->getIssueById($article->getIssueId(), $journal->getId()))) {
                 $this->exportArticle($journal, $issue, $article, $galley);
                 break;
             }
         default:
             // Display a list of articles for export
             $this->setBreadcrumbs();
             AppLocale::requireComponents(LOCALE_COMPONENT_PKP_SUBMISSION);
             $publishedArticleDao =& DAORegistry::getDAO('PublishedArticleDAO');
             $rangeInfo = Handler::getRangeInfo('articles');
             $articleIds = $publishedArticleDao->getPublishedArticleIdsAlphabetizedByJournal($journal->getId(), false);
             $totalArticles = count($articleIds);
             $articleIds = array_slice($articleIds, $rangeInfo->getCount() * ($rangeInfo->getPage() - 1), $rangeInfo->getCount());
             import('lib.pkp.classes.core.VirtualArrayIterator');
             $iterator = new VirtualArrayIterator(ArticleSearch::formatResults($articleIds), $totalArticles, $rangeInfo->getPage(), $rangeInfo->getCount());
             $templateMgr->assign_by_ref('articles', $iterator);
             $templateMgr->display($this->getTemplatePath() . 'index.tpl');
             break;
     }
 }
 /**
  * Display the plugin.
  * @param $args array
  * @param $request PKPRequest
  */
 function display($args, $request)
 {
     $templateMgr = TemplateManager::getManager($request);
     $journal = $request->getJournal();
     parent::display($args, $request);
     $templateMgr->assign('plugin', $this);
     switch (array_shift($args)) {
         case 'index':
         case '':
             $templateMgr->display($this->getTemplatePath() . 'index.tpl');
             break;
         case 'uploadImportXML':
             $user = $request->getUser();
             import('lib.pkp.classes.file.TemporaryFileManager');
             $temporaryFileManager = new TemporaryFileManager();
             $temporaryFile = $temporaryFileManager->handleUpload('uploadedFile', $user->getId());
             if ($temporaryFile) {
                 $json = new JSONMessage(true);
                 $json->setAdditionalAttributes(array('temporaryFileId' => $temporaryFile->getId()));
             } else {
                 $json = new JSONMessage(false, __('common.uploadFailed'));
             }
             return $json->getString();
         case 'importBounce':
             $json = new JSONMessage(true);
             $json->setEvent('addTab', array('title' => __('plugins.importexport.native.results'), 'url' => $request->url(null, null, null, array('plugin', $this->getName(), 'import'), array('temporaryFileId' => $request->getUserVar('temporaryFileId')))));
             return $json->getString();
         case 'import':
             $temporaryFileId = $request->getUserVar('temporaryFileId');
             $temporaryFileDao = DAORegistry::getDAO('TemporaryFileDAO');
             $user = $request->getUser();
             $temporaryFile = $temporaryFileDao->getTemporaryFile($temporaryFileId, $user->getId());
             if (!$temporaryFile) {
                 $json = new JSONMessage(true, __('plugins.inportexport.native.uploadFile'));
                 return $json->getString();
             }
             $temporaryFilePath = $temporaryFile->getFilePath();
             $submissions = $this->importSubmissions(file_get_contents($temporaryFilePath), $journal, $user);
             $templateMgr->assign('submissions', $submissions);
             $json = new JSONMessage(true, $templateMgr->fetch($this->getTemplatePath() . 'results.tpl'));
             return $json->getString();
         case 'exportSubmissions':
             $exportXml = $this->exportSubmissions((array) $request->getUserVar('selectedSubmissions'), $request->getContext(), $request->getUser());
             header('Content-type: application/xml');
             echo $exportXml;
             break;
         case 'exportIssues':
             $exportXml = $this->exportIssues((array) $request->getUserVar('selectedIssues'), $request->getContext(), $request->getUser());
             header('Content-type: application/xml');
             echo $exportXml;
             break;
         default:
             $dispatcher = $request->getDispatcher();
             $dispatcher->handle404();
     }
 }
Esempio n. 6
0
 /**
  * Display the plugin.
  * @param $args array
  * @param $request PKPRequest
  */
 function display($args, $request)
 {
     $templateMgr = TemplateManager::getManager($request);
     parent::display($args, $request);
     switch (array_shift($args)) {
         case 'index':
         case '':
             $templateMgr->display($this->getTemplatePath() . '/index.tpl');
             break;
     }
 }
 /**
  * @copydoc GridHandler::loadData()
  */
 protected function loadData($request, $filter)
 {
     $context = $request->getContext();
     list($statusId) = $this->getFilterValues($filter);
     $pubIdStatusSettingName = null;
     if ($statusId) {
         $pubIdStatusSettingName = $this->_plugin->getDepositStatusSettingName();
     }
     $issueDao = DAORegistry::getDAO('IssueDAO');
     return $issueDao->getByPubIdType($this->_plugin->getPubIdType(), $context ? $context->getId() : null, $pubIdStatusSettingName, $statusId, $this->getGridRangeInfo($request, $this->getId()));
 }
Esempio n. 8
0
 function display(&$args)
 {
     $templateMgr =& TemplateManager::getManager();
     parent::display($args);
     $issueDao =& DAORegistry::getDAO('IssueDAO');
     $journal =& Request::getJournal();
     switch (array_shift($args)) {
         case 'exportIssues':
             $issueIds = Request::getUserVar('issueId');
             if (!isset($issueIds)) {
                 $issueIds = array();
             }
             $issues = array();
             foreach ($issueIds as $issueId) {
                 $issue =& $issueDao->getIssueById($issueId);
                 if (!$issue) {
                     Request::redirect();
                 }
                 $issues[] =& $issue;
             }
             $this->exportIssues($journal, $issues);
             break;
         case 'exportIssue':
             $issueId = array_shift($args);
             $issue =& $issueDao->getIssueById($issueId);
             if (!$issue) {
                 Request::redirect();
             }
             $issues = array($issue);
             $this->exportIssues($journal, $issues);
             break;
         case 'issues':
             // Display a list of issues for export
             $this->setBreadcrumbs(array(), true);
             Locale::requireComponents(array(LOCALE_COMPONENT_OJS_EDITOR));
             $issueDao =& DAORegistry::getDAO('IssueDAO');
             $issues =& $issueDao->getIssues($journal->getId(), Handler::getRangeInfo('issues'));
             $siteDao =& DAORegistry::getDAO('SiteDAO');
             $site = $siteDao->getSite();
             $organization = $site->getLocalizedTitle();
             $templateMgr->assign_by_ref('issues', $issues);
             $templateMgr->assign_by_ref('organization', $organization);
             $templateMgr->display($this->getTemplatePath() . 'issues.tpl');
             break;
         default:
             $this->setBreadcrumbs();
             $templateMgr->display($this->getTemplatePath() . 'index.tpl');
     }
 }
Esempio n. 9
0
 /**
  * Display the plugin
  * @param $args array
  */
 function display(&$args, $request)
 {
     $templateMgr =& TemplateManager::getManager();
     parent::display($args, $request);
     $journal =& Request::getJournal();
     switch (array_shift($args)) {
         case 'export':
             // export an xml file with the journal's information
             $this->exportJournal($journal);
             break;
         default:
             $this->setBreadcrumbs();
             $templateMgr->display($this->getTemplatePath() . 'index.tpl');
     }
 }
 /**
  * @copydoc GridHandler::loadData()
  */
 protected function loadData($request, $filter)
 {
     $publishedArticleDao = DAORegistry::getDAO('PublishedArticleDAO');
     $context = $request->getContext();
     list($search, $column, $issueId, $statusId) = $this->getFilterValues($filter);
     $title = $author = null;
     if ($column == 'title') {
         $title = $search;
     } elseif ($column == 'author') {
         $author = $search;
     }
     $pubIdStatusSettingName = null;
     if ($statusId) {
         $pubIdStatusSettingName = $this->_plugin->getDepositStatusSettingName();
     }
     return $publishedArticleDao->getExportable($context->getId(), null, $title, $author, $issueId, $pubIdStatusSettingName, $statusId, $this->getGridRangeInfo($request, $this->getId()));
 }
 function display(&$args)
 {
     parent::display($args);
     switch (array_shift($args)) {
         case 'exportIssue':
             // The actual issue export code would go here
             break;
         default:
             // Display a list of issues for export
             $journal =& Request::getJournal();
             $issueDao =& DAORegistry::getDAO('IssueDAO');
             $issues =& $issueDao->getIssues($journal->getJournalId(), Handler::getRangeInfo('issues'));
             $templateMgr =& TemplateManager::getManager();
             $templateMgr->assign_by_ref('issues', $issues);
             $templateMgr->display($this->getTemplatePath() . 'issues.tpl');
     }
 }
 /**
  * Display the plugin
  * @param $args array
  */
 function display(&$args, $request)
 {
     $templateMgr = TemplateManager::getManager($request);
     parent::display($args, $request);
     $journal = $request->getJournal();
     switch (array_shift($args)) {
         case 'export':
             // export an xml file with the journal's information
             $this->exportJournal($journal);
             break;
         case 'contact':
             // present a form autofilled with journal information to send to the DOAJ representative
             $this->contact($journal);
             break;
         default:
             $templateMgr->display($this->getTemplatePath() . 'index.tpl');
     }
 }
Esempio n. 13
0
 function display(&$args)
 {
     $templateMgr =& TemplateManager::getManager();
     parent::display($args);
     $request =& $this->getRequest();
     $conference =& $request->getConference();
     switch (array_shift($args)) {
         case 'exportPaper':
             $paperIds = array(array_shift($args));
             //				$result = array_shift(PaperSearch::formatResults($paperIds));
             //				$this->exportPaper($conference, $result['track'], $result['section'], $result['publishedPaper']);
             $result = PaperSearch::formatResults($paperIds);
             $this->exportPapers($result);
             break;
         case 'exportPapers':
             $paperIds = $request->getUserVar('paperId');
             if (!isset($paperIds)) {
                 $paperIds = array();
             } else {
                 array_pop($paperIds);
             }
             $results =& PaperSearch::formatResults($paperIds);
             $this->exportPapers($results);
             break;
         case 'papers':
             // Display a list of papers for export
             $this->setBreadcrumbs(array(), true);
             $publishedPaperDao = DAORegistry::getDAO('PublishedPaperDAO');
             $rangeInfo = Handler::getRangeInfo($request, 'papers');
             $paperIds = $publishedPaperDao->getPublishedPaperIdsAlphabetizedBySchedConf($conference->getId());
             $totalPapers = count($paperIds);
             if ($rangeInfo->isValid()) {
                 $paperIds = array_slice($paperIds, $rangeInfo->getCount() * ($rangeInfo->getPage() - 1), $rangeInfo->getCount());
             }
             import('lib.pkp.classes.core.VirtualArrayIterator');
             $iterator = new VirtualArrayIterator(PaperSearch::formatResults($paperIds), $totalPapers, $rangeInfo->getPage(), $rangeInfo->getCount());
             $templateMgr->assign_by_ref('papers', $iterator);
             $templateMgr->display($this->getTemplatePath() . 'papers.tpl');
             break;
         default:
             $this->setBreadcrumbs();
             $templateMgr->display($this->getTemplatePath() . 'index.tpl');
     }
 }
Esempio n. 14
0
 /**
  * Display the plugin
  * @param $args array
  */
 function display(&$args)
 {
     $templateMgr =& TemplateManager::getManager();
     parent::display($args);
     $journal =& Request::getJournal();
     switch (array_shift($args)) {
         case 'export':
             // export an xml file with the journal's information
             $this->exportJournal($journal);
             break;
         case 'email':
             // present a form autofilled with journal information to send to the DOAJ representative
             $this->emailRep($journal, Request::getUserVar('send'));
             break;
         default:
             $this->setBreadcrumbs();
             $templateMgr->display($this->getTemplatePath() . 'index.tpl');
     }
 }
 function display(&$args, $request)
 {
     parent::display($args, $request);
     $templateMgr =& TemplateManager::getManager();
     $journal =& $request->getJournal();
     switch (array_shift($args)) {
         case 'export':
             @set_time_limit(0);
             $errors = array();
             $success = $this->handleExport($journal, $errors);
             if ($success === false) {
                 return $errors;
             }
             break;
         case 'import':
             AppLocale::requireComponents(LOCALE_COMPONENT_OJS_EDITOR, LOCALE_COMPONENT_OJS_AUTHOR);
             import('classes.file.TemporaryFileManager');
             $temporaryFileManager = new TemporaryFileManager();
             if ($existingFileId = $request->getUserVar('temporaryFileId')) {
                 // The user has just entered more context. Fetch an existing file.
                 $temporaryFile = $temporaryFileManager->getFile($existingFileId, $user->getId());
             } else {
                 $user = Request::getUser();
                 $temporaryFile = $temporaryFileManager->handleUpload('importFile', $user->getId());
             }
             if (!$temporaryFile) {
                 $templateMgr->assign('error', 'plugins.importexport.fullJournal.error.uploadFailed');
                 return $templateMgr->display($this->getTemplatePath() . 'importError.tpl');
             }
             @set_time_limit(0);
             $errors = array();
             if ($this->handleImport($temporaryFile->getFilePath(), $errors)) {
                 return $templateMgr->display($this->getTemplatePath() . 'importSuccess.tpl');
             } else {
                 $templateMgr->assign_by_ref('errors', $errors);
                 return $templateMgr->display($this->getTemplatePath() . 'importError.tpl');
             }
             break;
         default:
             $this->setBreadcrumbs();
             $templateMgr->display($this->getTemplatePath() . 'index.tpl');
     }
 }
Esempio n. 16
0
 /**
  * Display the plugin.
  * @param $args array
  * @param $request PKPRequest
  */
 function display($args, $request)
 {
     $templateMgr = TemplateManager::getManager($request);
     $press = $request->getPress();
     parent::display($args, $request);
     $templateMgr->assign('plugin', $this);
     switch (array_shift($args)) {
         case 'index':
         case '':
             $templateMgr->display($this->getTemplatePath() . 'index.tpl');
             break;
         case 'export':
             $exportXml = $this->exportSubmissions((array) $request->getUserVar('selectedSubmissions'), $request->getContext(), $request->getUser());
             header('Content-type: application/xml');
             echo $exportXml;
             break;
         default:
             $dispatcher = $request->getDispatcher();
             $dispatcher->handle404();
     }
 }
Esempio n. 17
0
 function display(&$args)
 {
     $templateMgr =& TemplateManager::getManager();
     parent::display($args);
     $conference =& Request::getConference();
     switch (array_shift($args)) {
         case 'exportschedConf':
             $conferenceDAO =& DAORegistry::getDAO('ConferenceDAO');
             $schedConfDAO =& DAORegistry::getDAO('SchedConfDAO');
             $schedConfId = array_shift($args);
             if ($schedConfId) {
                 $schedConf =& $schedConfDAO->getSchedConf($schedConfId);
                 $this->exportSchedConf($conference, $schedConf);
                 return true;
             } else {
                 $schedConfIds = Request::getUserVar('SchedConfId');
                 $this->exportSchedConfs($conference, $schedConfIds);
                 return true;
             }
             break;
         case 'schedConfs':
             // Display a list of Scheduled Conferences for export
             $this->setBreadcrumbs(array(), true);
             $templateMgr =& TemplateManager::getManager();
             $schedConfDao =& DAORegistry::getDAO('SchedConfDAO');
             $currentSchedConfs =& $schedConfDao->getCurrentSchedConfs($conference->getId());
             $siteDao =& DAORegistry::getDAO('SiteDAO');
             $site = $siteDao->getSite();
             $organization = $site->getLocalizedTitle();
             $templateMgr->assign_by_ref('organization', $organization);
             $templateMgr->assign_by_ref('schedConfs', $currentSchedConfs);
             $templateMgr->display($this->getTemplatePath() . 'schedConfs.tpl');
             break;
         default:
             $this->setBreadcrumbs();
             $templateMgr->display($this->getTemplatePath() . 'index.tpl');
     }
 }
Esempio n. 18
0
 /**
  * @see Plugin::manage()
  */
 function manage($verb, $args, &$message, &$messageParams, &$pluginModalContent = null)
 {
     parent::manage($verb, $args, $message, $messageParams, $pluginModalContent);
     switch ($verb) {
         case 'settings':
             $request = $this->getRequest();
             $router = $request->getRouter();
             $journal = $router->getContext($request);
             $form = $this->_instantiateSettingsForm($journal);
             if ($request->getUserVar('save')) {
                 $form->readInputData();
                 if ($form->validate()) {
                     $form->execute();
                     $request->redirect(null, 'manager', 'importexport', array('plugin', $this->getName()));
                 } else {
                     $form->display();
                 }
             } else {
                 $form->initData();
                 $form->display();
             }
             return true;
         default:
             // Unknown management verb.
             assert(false);
     }
     return false;
 }
Esempio n. 19
0
 /**
  * Display the plugin.
  * @param $args array
  * @param $request PKPRequest
  */
 function display($args, $request)
 {
     $templateMgr = TemplateManager::getManager($request);
     $press = $request->getPress();
     parent::display($args, $request);
     $templateMgr->assign('plugin', $this);
     switch (array_shift($args)) {
         case 'index':
         case '':
             $templateMgr->display($this->getTemplatePath() . 'index.tpl');
             break;
         case 'uploadImportXML':
             $user = $request->getUser();
             import('lib.pkp.classes.file.TemporaryFileManager');
             $temporaryFileManager = new TemporaryFileManager();
             $temporaryFile = $temporaryFileManager->handleUpload('uploadedFile', $user->getId());
             if ($temporaryFile) {
                 $json = new JSONMessage(true);
                 $json->setAdditionalAttributes(array('temporaryFileId' => $temporaryFile->getId()));
             } else {
                 $json = new JSONMessage(false, __('common.uploadFailed'));
             }
             return $json->getString();
         case 'importBounce':
             $json = new JSONMessage(true);
             $json->setEvent('addTab', array('title' => __('plugins.importexport.native.results'), 'url' => $request->url(null, null, null, array('plugin', $this->getName(), 'import'), array('temporaryFileId' => $request->getUserVar('temporaryFileId')))));
             return $json->getString();
         case 'import':
             AppLocale::requireComponents(LOCALE_COMPONENT_PKP_SUBMISSION);
             $temporaryFileId = $request->getUserVar('temporaryFileId');
             $temporaryFileDao = DAORegistry::getDAO('TemporaryFileDAO');
             $user = $request->getUser();
             $temporaryFile = $temporaryFileDao->getTemporaryFile($temporaryFileId, $user->getId());
             if (!$temporaryFile) {
                 $json = new JSONMessage(true, __('plugins.inportexport.native.uploadFile'));
                 return $json->getString();
             }
             $temporaryFilePath = $temporaryFile->getFilePath();
             $deployment = new NativeImportExportDeployment($press, $user);
             libxml_use_internal_errors(true);
             $submissions = $this->importSubmissions(file_get_contents($temporaryFilePath), $deployment);
             $templateMgr->assign('submissions', $submissions);
             $validationErrors = array_filter(libxml_get_errors(), create_function('$a', 'return $a->level == LIBXML_ERR_ERROR ||  $a->level == LIBXML_ERR_FATAL;'));
             $templateMgr->assign('validationErrors', $validationErrors);
             libxml_clear_errors();
             // Are there any submissions import errors
             $processedSubmissionsIds = $deployment->getProcessedObjectsIds(ASSOC_TYPE_SUBMISSION);
             if (!empty($processedSubmissionsIds)) {
                 $submissionsErrors = array_filter($processedSubmissionsIds, create_function('$a', 'return !empty($a);'));
                 if (!empty($submissionsErrors)) {
                     $templateMgr->assign('submissionsErrors', $processedSubmissionsIds);
                 }
             }
             // If there are any submissions or validataion errors
             // delete imported submissions.
             if (!empty($submissionsErrors) || !empty($validationErrors)) {
                 // remove all imported sumissions
                 $deployment->removeImportedObjects(ASSOC_TYPE_SUBMISSION);
             }
             // Display the results
             $json = new JSONMessage(true, $templateMgr->fetch($this->getTemplatePath() . 'results.tpl'));
             return $json->getString();
         case 'export':
             $exportXml = $this->exportSubmissions((array) $request->getUserVar('selectedSubmissions'), $request->getContext(), $request->getUser());
             import('lib.pkp.classes.file.FileManager');
             $fileManager = new FileManager();
             $exportFileName = $this->getExportFileName($this->getExportPath(), 'monographs', $press, '.xml');
             $fileManager->writeFile($exportFileName, $exportXml);
             $fileManager->downloadFile($exportFileName);
             $fileManager->deleteFile($exportFileName);
             break;
         default:
             $dispatcher = $request->getDispatcher();
             $dispatcher->handle404();
     }
 }
 function display(&$args, $request)
 {
     $templateMgr =& TemplateManager::getManager();
     parent::display($args, $request);
     $issueDao =& DAORegistry::getDAO('IssueDAO');
     $journal =& $request->getJournal();
     switch (array_shift($args)) {
         case 'exportIssues':
             $issueIds = $request->getUserVar('issueId');
             if (!isset($issueIds)) {
                 $issueIds = array();
             }
             $issues = array();
             foreach ($issueIds as $issueId) {
                 $issue =& $issueDao->getIssueById($issueId, $journal->getId());
                 if (!$issue) {
                     $request->redirect();
                 }
                 $issues[] =& $issue;
                 unset($issue);
             }
             $this->exportIssues($journal, $issues);
             break;
         case 'exportIssue':
             $issueId = array_shift($args);
             $issue =& $issueDao->getIssueById($issueId, $journal->getId());
             if (!$issue) {
                 $request->redirect();
             }
             $this->exportIssue($journal, $issue);
             break;
         case 'exportArticle':
             $articleIds = array(array_shift($args));
             $result = array_shift(ArticleSearch::formatResults($articleIds));
             $this->exportArticle($journal, $result['issue'], $result['section'], $result['publishedArticle']);
             break;
         case 'exportArticles':
             $articleIds = $request->getUserVar('articleId');
             if (!isset($articleIds)) {
                 $articleIds = array();
             }
             $results =& ArticleSearch::formatResults($articleIds);
             $this->exportArticles($results);
             break;
         case 'issues':
             // Display a list of issues for export
             $this->setBreadcrumbs(array(), true);
             AppLocale::requireComponents(LOCALE_COMPONENT_OJS_EDITOR);
             $issueDao =& DAORegistry::getDAO('IssueDAO');
             $issues =& $issueDao->getIssues($journal->getId(), Handler::getRangeInfo('issues'));
             $templateMgr->assign_by_ref('issues', $issues);
             $templateMgr->display($this->getTemplatePath() . 'issues.tpl');
             break;
         case 'articles':
             // Display a list of articles for export
             $this->setBreadcrumbs(array(), true);
             $publishedArticleDao =& DAORegistry::getDAO('PublishedArticleDAO');
             $rangeInfo = Handler::getRangeInfo('articles');
             $articleIds = $publishedArticleDao->getPublishedArticleIdsAlphabetizedByJournal($journal->getId(), false);
             $totalArticles = count($articleIds);
             if ($rangeInfo->isValid()) {
                 $articleIds = array_slice($articleIds, $rangeInfo->getCount() * ($rangeInfo->getPage() - 1), $rangeInfo->getCount());
             }
             import('lib.pkp.classes.core.VirtualArrayIterator');
             $iterator = new VirtualArrayIterator(ArticleSearch::formatResults($articleIds), $totalArticles, $rangeInfo->getPage(), $rangeInfo->getCount());
             $templateMgr->assign_by_ref('articles', $iterator);
             $templateMgr->display($this->getTemplatePath() . 'articles.tpl');
             break;
         case 'import':
             AppLocale::requireComponents(LOCALE_COMPONENT_OJS_EDITOR, LOCALE_COMPONENT_OJS_AUTHOR);
             import('classes.file.TemporaryFileManager');
             $issueDao =& DAORegistry::getDAO('IssueDAO');
             $sectionDao =& DAORegistry::getDAO('SectionDAO');
             $user =& $request->getUser();
             $temporaryFileManager = new TemporaryFileManager();
             if ($existingFileId = $request->getUserVar('temporaryFileId')) {
                 // The user has just entered more context. Fetch an existing file.
                 $temporaryFile = $temporaryFileManager->getFile($existingFileId, $user->getId());
             } else {
                 $temporaryFile = $temporaryFileManager->handleUpload('importFile', $user->getId());
             }
             $context = array('journal' => $journal, 'user' => $user);
             if ($sectionId = $request->getUserVar('sectionId')) {
                 $context['section'] = $sectionDao->getSection($sectionId);
             }
             if ($issueId = $request->getUserVar('issueId')) {
                 $context['issue'] = $issueDao->getIssueById($issueId, $journal->getId());
             }
             if (!$temporaryFile) {
                 $templateMgr->assign('error', 'plugins.importexport.native.error.uploadFailed');
                 return $templateMgr->display($this->getTemplatePath() . 'importError.tpl');
             }
             $doc =& $this->getDocument($temporaryFile->getFilePath());
             if (substr($this->getRootNodeName($doc), 0, 7) === 'article') {
                 // Ensure the user has supplied enough valid information to
                 // import articles within an appropriate context. If not,
                 // prompt them for the.
                 if (!isset($context['issue']) || !isset($context['section'])) {
                     $issues =& $issueDao->getIssues($journal->getId(), Handler::getRangeInfo('issues'));
                     $templateMgr->assign_by_ref('issues', $issues);
                     $templateMgr->assign('sectionOptions', array('0' => __('author.submit.selectSection')) + $sectionDao->getSectionTitles($journal->getId(), false));
                     $templateMgr->assign('temporaryFileId', $temporaryFile->getId());
                     return $templateMgr->display($this->getTemplatePath() . 'articleContext.tpl');
                 }
             }
             @set_time_limit(0);
             if ($this->handleImport($context, $doc, $errors, $issues, $articles, false)) {
                 $templateMgr->assign_by_ref('issues', $issues);
                 $templateMgr->assign_by_ref('articles', $articles);
                 return $templateMgr->display($this->getTemplatePath() . 'importSuccess.tpl');
             } else {
                 $templateMgr->assign_by_ref('errors', $errors);
                 return $templateMgr->display($this->getTemplatePath() . 'importError.tpl');
             }
             break;
         default:
             $this->setBreadcrumbs();
             $templateMgr->display($this->getTemplatePath() . 'index.tpl');
     }
 }
Esempio n. 21
0
 function display(&$args, $request)
 {
     $templateMgr = TemplateManager::getManager($request);
     parent::display($args, $request);
     $issueDao = DAORegistry::getDAO('IssueDAO');
     $journal = $request->getJournal();
     switch (array_shift($args)) {
         case 'exportIssues':
             $issueIds = $request->getUserVar('issueId');
             if (!isset($issueIds)) {
                 $issueIds = array();
             }
             $issues = array();
             foreach ($issueIds as $issueId) {
                 $issue = $issueDao->getById($issueId);
                 if (!$issue) {
                     $request->redirect();
                 }
                 $issues[] = $issue;
             }
             $this->exportIssues($journal, $issues);
             break;
         case 'exportIssue':
             $issueId = array_shift($args);
             $issue = $issueDao->getById($issueId);
             if (!$issue) {
                 $request->redirect();
             }
             $issues = array($issue);
             $this->exportIssues($journal, $issues);
             break;
         case 'exportArticle':
             $articleIds = array(array_shift($args));
             $articleSearch = new ArticleSearch();
             $result = $articleSearch->formatResults($articleIds);
             $this->exportArticles($result);
             break;
         case 'exportArticles':
             $articleIds = $request->getUserVar('articleId');
             if (!isset($articleIds)) {
                 $articleIds = array();
             }
             $articleSearch = new ArticleSearch();
             $results = $articleSearch->formatResults($articleIds);
             $this->exportArticles($results);
             break;
         case 'issues':
             // Display a list of issues for export
             AppLocale::requireComponents(LOCALE_COMPONENT_APP_EDITOR);
             $issueDao = DAORegistry::getDAO('IssueDAO');
             $issues = $issueDao->getIssues($journal->getId(), Handler::getRangeInfo($this->getRequest(), 'issues'));
             $templateMgr->assign('issues', $issues);
             $templateMgr->display($this->getTemplatePath() . 'issues.tpl');
             break;
         case 'articles':
             // Display a list of articles for export
             $publishedArticleDao = DAORegistry::getDAO('PublishedArticleDAO');
             $rangeInfo = Handler::getRangeInfo($this->getRequest(), 'articles');
             $articleIds = $publishedArticleDao->getPublishedArticleIdsByJournal($journal->getId(), false);
             $totalArticles = count($articleIds);
             if ($rangeInfo->isValid()) {
                 $articleIds = array_slice($articleIds, $rangeInfo->getCount() * ($rangeInfo->getPage() - 1), $rangeInfo->getCount());
             }
             import('lib.pkp.classes.core.VirtualArrayIterator');
             $articleSearch = new ArticleSearch();
             $iterator = new VirtualArrayIterator($articleSearch->formatResults($articleIds), $totalArticles, $rangeInfo->getPage(), $rangeInfo->getCount());
             $templateMgr->assign('articles', $iterator);
             $templateMgr->display($this->getTemplatePath() . 'articles.tpl');
             break;
         default:
             $templateMgr->display($this->getTemplatePath() . 'index.tpl');
     }
 }
Esempio n. 22
0
 function display(&$args)
 {
     $templateMgr =& TemplateManager::getManager();
     parent::display($args);
     $templateMgr->assign('roleOptions', array('' => 'manager.people.doNotEnroll', 'manager' => 'user.role.manager', 'director' => 'user.role.director', 'trackDirector' => 'user.role.trackDirector', 'reviewer' => 'user.role.reviewer', 'author' => 'user.role.author', 'reader' => 'user.role.reader'));
     $roleDao =& DAORegistry::getDAO('RoleDAO');
     $schedConf =& Request::getSchedConf();
     switch (array_shift($args)) {
         case 'confirm':
             $this->import('UserXMLParser');
             $templateMgr->assign('helpTopicId', 'conference.currentConference.importExport');
             $sendNotify = (bool) Request::getUserVar('sendNotify');
             $continueOnError = (bool) Request::getUserVar('continueOnError');
             import('file.FileManager');
             if (($userFile = FileManager::getUploadedFilePath('userFile')) !== false) {
                 // Import the uploaded file
                 $parser = new UserXMLParser($schedConf->getConferenceId(), $schedConf->getId());
                 $users =& $parser->parseData($userFile);
                 $i = 0;
                 $usersRoles = array();
                 foreach ($users as $user) {
                     $usersRoles[$i] = array();
                     foreach ($user->getRoles() as $role) {
                         array_push($usersRoles[$i], $role->getRoleName());
                     }
                     $i++;
                 }
                 $templateMgr->assign_by_ref('users', $users);
                 $templateMgr->assign_by_ref('usersRoles', $usersRoles);
                 $templateMgr->assign('sendNotify', $sendNotify);
                 $templateMgr->assign('continueOnError', $continueOnError);
                 $templateMgr->assign('errors', $parser->errors);
                 // Show confirmation form
                 $templateMgr->display($this->getTemplatePath() . 'importUsersConfirm.tpl');
             }
             break;
         case 'import':
             $this->import('UserXMLParser');
             $userKeys = Request::getUserVar('userKeys');
             if (!is_array($userKeys)) {
                 $userKeys = array();
             }
             $sendNotify = (bool) Request::getUserVar('sendNotify');
             $continueOnError = (bool) Request::getUserVar('continueOnError');
             $users = array();
             foreach ($userKeys as $i) {
                 $newUser = new ImportedUser();
                 $newUser->setFirstName(Request::getUserVar($i . '_firstName'));
                 $newUser->setMiddleName(Request::getUserVar($i . '_middleName'));
                 $newUser->setLastName(Request::getUserVar($i . '_lastName'));
                 $newUser->setUsername(Request::getUserVar($i . '_username'));
                 $newUser->setEmail(Request::getUserVar($i . '_email'));
                 $locales = array();
                 if (Request::getUserVar($i . '_locales') != null || is_array(Request::getUserVar($i . '_locales'))) {
                     foreach (Request::getUserVar($i . '_locales') as $locale) {
                         array_push($locales, $locale);
                     }
                 }
                 $newUser->setLocales($locales);
                 $newUser->setSignature(Request::getUserVar($i . '_signature'), null);
                 $newUser->setBiography(Request::getUserVar($i . '_biography'), null);
                 $newUser->setInterests(Request::getUserVar($i . '_interests'), null);
                 $newUser->setCountry(Request::getUserVar($i . '_country'));
                 $newUser->setMailingAddress(Request::getUserVar($i . '_mailingAddress'));
                 $newUser->setFax(Request::getUserVar($i . '_fax'));
                 $newUser->setPhone(Request::getUserVar($i . '_phone'));
                 $newUser->setUrl(Request::getUserVar($i . '_url'));
                 $newUser->setAffiliation(Request::getUserVar($i . '_affiliation'));
                 $newUser->setGender(Request::getUserVar($i . '_gender'));
                 $newUser->setInitials(Request::getUserVar($i . '_initials'));
                 $newUser->setSalutation(Request::getUserVar($i . '_salutation'));
                 $newUser->setPassword(Request::getUserVar($i . '_password'));
                 $newUser->setMustChangePassword(Request::getUserVar($i . '_mustChangePassword'));
                 $newUser->setUnencryptedPassword(Request::getUserVar($i . '_unencryptedPassword'));
                 $newUserRoles = Request::getUserVar($i . '_roles');
                 if (is_array($newUserRoles) && count($newUserRoles) > 0) {
                     foreach ($newUserRoles as $newUserRole) {
                         if ($newUserRole != '') {
                             $role = new Role();
                             $role->setRoleId(RoleDAO::getRoleIdFromPath($newUserRole));
                             $newUser->AddRole($role);
                         }
                     }
                 }
                 array_push($users, $newUser);
             }
             $parser = new UserXMLParser($schedConf->getConferenceId(), $schedConf->getId());
             $parser->setUsersToImport($users);
             if (!$parser->importUsers($sendNotify, $continueOnError)) {
                 // Failures occurred
                 $templateMgr->assign('isError', true);
                 $templateMgr->assign('errors', $parser->getErrors());
             }
             $templateMgr->assign('importedUsers', $parser->getImportedUsers());
             $templateMgr->display($this->getTemplatePath() . 'importUsersResults.tpl');
             break;
         case 'exportAll':
             $this->import('UserExportDom');
             $users =& $roleDao->getUsersBySchedConfId($schedConf->getId());
             $users =& $users->toArray();
             $doc =& UserExportDom::exportUsers($schedConf, $users);
             header("Content-Type: application/xml");
             header("Cache-Control: private");
             header("Content-Disposition: attachment; filename=\"users.xml\"");
             echo XMLCustomWriter::getXML($doc);
             break;
         case 'exportByRole':
             $this->import('UserExportDom');
             $users = array();
             $rolePaths = array();
             foreach (Request::getUserVar('roles') as $rolePath) {
                 $roleId = $roleDao->getRoleIdFromPath($rolePath);
                 $thisRoleUsers =& $roleDao->getUsersByRoleId($roleId, $schedConf->getId());
                 foreach ($thisRoleUsers->toArray() as $user) {
                     $users[$user->getId()] = $user;
                 }
                 $rolePaths[] = $rolePath;
             }
             $users = array_values($users);
             $doc =& UserExportDom::exportUsers($schedConf, $users, $rolePaths);
             header("Content-Type: application/xml");
             header("Cache-Control: private");
             header("Content-Disposition: attachment; filename=\"users.xml\"");
             echo XMLCustomWriter::getXML($doc);
             break;
         default:
             $this->setBreadcrumbs();
             $templateMgr->display($this->getTemplatePath() . 'index.tpl');
     }
 }
 /**
  * @see ImportExportPlugin::display()
  */
 function display(&$args, $request)
 {
     $templateMgr = TemplateManager::getManager($request);
     parent::display($args, $request);
     $issueDao = DAORegistry::getDAO('IssueDAO');
     $journal = $request->getJournal();
     switch (array_shift($args)) {
         case 'exportIssues':
             $issueIds = $request->getUserVar('issueId');
             if (!isset($issueIds)) {
                 $issueIds = array();
             }
             $issues = array();
             foreach ($issueIds as $issueId) {
                 $issue = $issueDao->getById($issueId, $journal->getId());
                 if (!$issue) {
                     $request->redirect();
                 }
                 $issues[] = $issue;
             }
             $this->exportPubIdsForIssues($journal, $issues);
             break;
         case 'exportIssue':
             $issueId = array_shift($args);
             $issue = $issueDao->getById($issueId, $journal->getId());
             if (!$issue) {
                 $request->redirect();
             }
             $issues = array($issue);
             $this->exportPubIdsForIssues($journal, $issues);
             break;
         case 'selectIssue':
             // Display a list of issues for export
             AppLocale::requireComponents(array(LOCALE_COMPONENT_APP_EDITOR));
             $issueDao = DAORegistry::getDAO('IssueDAO');
             $issues = $issueDao->getIssues($journal->getId(), Handler::getRangeInfo($this->getRequest(), 'issues'));
             $templateMgr->assign('issues', $issues);
             $templateMgr->display($this->getTemplatePath() . 'selectIssue.tpl');
             break;
         case 'import':
             import('lib.pkp.classes.file.TemporaryFileManager');
             $user = $request->getUser();
             $temporaryFileManager = new TemporaryFileManager();
             if ($existingFileId = $request->getUserVar('temporaryFileId')) {
                 // The user has just entered more context. Fetch an existing file.
                 $temporaryFile = $temporaryFileManager->getFile($existingFileId, $user->getId());
             } else {
                 $temporaryFile = $temporaryFileManager->handleUpload('importFile', $user->getId());
             }
             if (!$temporaryFile) {
                 $templateMgr->assign('error', 'plugins.importexport.pubIds.import.error.uploadFailed');
                 return $templateMgr->display($this->getTemplatePath() . 'importResults.tpl');
             }
             $context = array('journal' => $journal);
             $doc =& $this->getDocument($temporaryFile->getFilePath());
             @set_time_limit(0);
             $this->handleImport($context, $doc, $errors, $pubIds, false);
             $templateMgr->assign('errors', $errors);
             $templateMgr->assign('pubIds', $pubIds);
             return $templateMgr->display($this->getTemplatePath() . 'importResults.tpl');
             break;
         default:
             $templateMgr->display($this->getTemplatePath() . 'importExportIndex.tpl');
     }
 }
Esempio n. 24
0
 /**
  * Called as a plugin is registered to the registry
  * @param $category String Name of category plugin was registered to
  * @return boolean True iff plugin initialized successfully; if false,
  * 	the plugin will not be registered.
  */
 function register($category, $path)
 {
     $success = parent::register($category, $path);
     $this->addLocaleData();
     return $success;
 }
Esempio n. 25
0
 function display(&$args, $request)
 {
     $templateMgr = TemplateManager::getManager($request);
     parent::display($args, $request);
     $templateMgr->assign('roleOptions', array('' => 'manager.people.doNotEnroll', 'manager' => 'user.role.manager', 'editor' => 'user.role.editor', 'sectionEditor' => 'user.role.sectionEditor', 'layoutEditor' => 'user.role.layoutEditor', 'reviewer' => 'user.role.reviewer', 'copyeditor' => 'user.role.copyeditor', 'proofreader' => 'user.role.proofreader', 'author' => 'user.role.author', 'reader' => 'user.role.reader', 'subscriptionManager' => 'user.role.subscriptionManager'));
     $roleDao = DAORegistry::getDAO('RoleDAO');
     $journal = $request->getJournal();
     set_time_limit(0);
     switch (array_shift($args)) {
         case 'confirm':
             $this->import('UserXMLParser');
             $sendNotify = (bool) $request->getUserVar('sendNotify');
             $continueOnError = (bool) $request->getUserVar('continueOnError');
             import('lib.pkp.classes.file.FileManager');
             $fileManager = new FileManager();
             if (($userFile = $fileManager->getUploadedFilePath('userFile')) !== false) {
                 // Import the uploaded file
                 $parser = new UserXMLParser($journal->getId());
                 $users =& $parser->parseData($userFile);
                 $i = 0;
                 $usersRoles = array();
                 foreach ($users as $user) {
                     $usersRoles[$i] = array();
                     foreach ($user->getRoles() as $role) {
                         array_push($usersRoles[$i], $role->getRoleName());
                     }
                     $i++;
                 }
                 $templateMgr->assign('users', $users);
                 $templateMgr->assign('usersRoles', $usersRoles);
                 $templateMgr->assign('sendNotify', $sendNotify);
                 $templateMgr->assign('continueOnError', $continueOnError);
                 $templateMgr->assign('errors', $parser->errors);
                 // Show confirmation form
                 $templateMgr->display($this->getTemplatePath() . 'importUsersConfirm.tpl');
             }
             break;
         case 'import':
             $this->import('UserXMLParser');
             $roleDao = DAORegistry::getDAO('RoleDAO');
             $userKeys = $request->getUserVar('userKeys');
             if (!is_array($userKeys)) {
                 $userKeys = array();
             }
             $sendNotify = (bool) $request->getUserVar('sendNotify');
             $continueOnError = (bool) $request->getUserVar('continueOnError');
             $users = array();
             foreach ($userKeys as $i) {
                 $newUser = new ImportedUser();
                 $newUser->setFirstName($request->getUserVar($i . '_firstName'));
                 $newUser->setMiddleName($request->getUserVar($i . '_middleName'));
                 $newUser->setLastName($request->getUserVar($i . '_lastName'));
                 $newUser->setUsername($request->getUserVar($i . '_username'));
                 $newUser->setEmail($request->getUserVar($i . '_email'));
                 $locales = array();
                 if ($request->getUserVar($i . '_locales') != null || is_array($request->getUserVar($i . '_locales'))) {
                     foreach ($request->getUserVar($i . '_locales') as $locale) {
                         array_push($locales, $locale);
                     }
                 }
                 $newUser->setLocales($locales);
                 $newUser->setSignature($request->getUserVar($i . '_signature'), null);
                 $newUser->setBiography($request->getUserVar($i . '_biography'), null);
                 $newUser->setTemporaryInterests($request->getUserVar($i . '_interests'));
                 $newUser->setGossip($request->getUserVar($i . '_gossip'), null);
                 $newUser->setCountry($request->getUserVar($i . '_country'));
                 $newUser->setMailingAddress($request->getUserVar($i . '_mailingAddress'));
                 $newUser->setFax($request->getUserVar($i . '_fax'));
                 $newUser->setPhone($request->getUserVar($i . '_phone'));
                 $newUser->setUrl($request->getUserVar($i . '_url'));
                 $newUser->setAffiliation($request->getUserVar($i . '_affiliation'), null);
                 $newUser->setGender($request->getUserVar($i . '_gender'));
                 $newUser->setInitials($request->getUserVar($i . '_initials'));
                 $newUser->setSalutation($request->getUserVar($i . '_salutation'));
                 $newUser->setPassword($request->getUserVar($i . '_password'));
                 $newUser->setMustChangePassword($request->getUserVar($i . '_mustChangePassword'));
                 $newUser->setUnencryptedPassword($request->getUserVar($i . '_unencryptedPassword'));
                 $newUserRoles = $request->getUserVar($i . '_roles');
                 if (is_array($newUserRoles) && count($newUserRoles) > 0) {
                     foreach ($newUserRoles as $newUserRole) {
                         if ($newUserRole != '') {
                             $role = new Role();
                             $role->setRoleId($roleDao->getRoleIdFromPath($newUserRole));
                             $newUser->addRole($role);
                         }
                     }
                 }
                 array_push($users, $newUser);
             }
             $parser = new UserXMLParser($journal->getId());
             $parser->setUsersToImport($users);
             if (!$parser->importUsers($sendNotify, $continueOnError)) {
                 // Failures occurred
                 $templateMgr->assign('isError', true);
                 $templateMgr->assign('errors', $parser->getErrors());
             }
             $templateMgr->assign('importedUsers', $parser->getImportedUsers());
             $templateMgr->display($this->getTemplatePath() . 'importUsersResults.tpl');
             break;
         case 'exportAll':
             $this->import('UserExportDom');
             $userGroupDao = DAORegistry::getDAO('UserGroupDAO');
             $users = $userGroupDao->getUsersByContextId($journal->getId());
             $users = $users->toArray();
             $userExportDom = new UserExportDom();
             $doc = $userExportDom->exportUsers($journal, $users);
             header("Content-Type: application/xml");
             header("Cache-Control: private");
             header("Content-Disposition: attachment; filename=\"users.xml\"");
             echo XMLCustomWriter::getXML($doc);
             break;
         case 'exportByRole':
             $this->import('UserExportDom');
             $users = array();
             $rolePaths = array();
             foreach ($request->getUserVar('roles') as $rolePath) {
                 $roleId = $roleDao->getRoleIdFromPath($rolePath);
                 $thisRoleUsers = $roleDao->getUsersByRoleId($roleId, $journal->getId());
                 foreach ($thisRoleUsers->toArray() as $user) {
                     $users[$user->getId()] = $user;
                 }
                 $rolePaths[] = $rolePath;
             }
             $users = array_values($users);
             $userExportDom = new UserExportDom();
             $doc =& $userExportDom->exportUsers($journal, $users, $rolePaths);
             header("Content-Type: application/xml");
             header("Cache-Control: private");
             header("Content-Disposition: attachment; filename=\"users.xml\"");
             echo XMLCustomWriter::getXML($doc);
             break;
         default:
             $templateMgr->display($this->getTemplatePath() . 'index.tpl');
     }
 }
 /**
  * @see ImportExportPlugin::manage()
  */
 function manage($verb, $args, &$message, &$messageParams, &$request)
 {
     parent::manage($verb, $args, $message, $messageParams, $request);
     switch ($verb) {
         case 'settings':
             $journal =& $request->getJournal();
             $form =& $this->_instantiateSettingsForm($journal);
             // FIXME: JM: duplicate code from _displayPluginHomePage()
             // Check for configuration errors:
             $configurationErrors = array();
             // 1) missing DOI prefix
             $doiPrefix = null;
             $pubIdPlugins = PluginRegistry::loadCategory('pubIds', true);
             if (isset($pubIdPlugins['DOIPubIdPlugin'])) {
                 $doiPrefix = $pubIdPlugins['DOIPubIdPlugin']->getSetting($journal->getId(), 'doiPrefix');
             }
             if (empty($doiPrefix)) {
                 $configurationErrors[] = DOI_EXPORT_CONFIGERROR_DOIPREFIX;
             }
             // 2) missing plug-in setting.
             $form =& $this->_instantiateSettingsForm($journal);
             foreach ($form->getFormFields() as $fieldName => $fieldType) {
                 if ($form->isOptional($fieldName)) {
                     continue;
                 }
                 $setting = $this->getSetting($journal->getId(), $fieldName);
                 if (empty($setting)) {
                     $configurationErrors[] = DOI_EXPORT_CONFIGERROR_SETTINGS;
                     break;
                 }
             }
             $templateMgr =& TemplateManager::getManager();
             $templateMgr->assign_by_ref('configurationErrors', $configurationErrors);
             // JM end duplicate code
             if ($request->getUserVar('save')) {
                 $form->readInputData();
                 if ($form->validate()) {
                     $form->execute();
                     $request->redirect(null, 'manager', 'importexport', array('plugin', $this->getName()));
                 } else {
                     $this->setBreadCrumbs(array(), true);
                     $form->display($request);
                 }
             } else {
                 $this->setBreadCrumbs(array(), true);
                 $form->initData();
                 $form->display($request);
             }
             return true;
         default:
             // Unknown management verb.
             assert(false);
     }
     return false;
 }
Esempio n. 27
0
 function display(&$args)
 {
     $templateMgr =& TemplateManager::getManager();
     parent::display($args);
     $issueDao =& DAORegistry::getDAO('IssueDAO');
     $journal =& Request::getJournal();
     switch (array_shift($args)) {
         case 'exportIssues':
             $issueIds = Request::getUserVar('issueId');
             if (!isset($issueIds)) {
                 $issueIds = array();
             }
             $issues = array();
             foreach ($issueIds as $issueId) {
                 $issue =& $issueDao->getIssueById($issueId);
                 if (!$issue) {
                     Request::redirect();
                 }
                 $issues[] =& $issue;
             }
             $this->exportIssues($journal, $issues);
             break;
         case 'exportIssue':
             $issueId = array_shift($args);
             $issue =& $issueDao->getIssueById($issueId);
             if (!$issue) {
                 Request::redirect();
             }
             $issues = array($issue);
             $this->exportIssues($journal, $issues);
             break;
         case 'exportArticle':
             $articleIds = array(array_shift($args));
             $result = ArticleSearch::formatResults($articleIds);
             $this->exportArticles($journal, $result);
             break;
         case 'exportArticles':
             $articleIds = Request::getUserVar('articleId');
             if (!isset($articleIds)) {
                 $articleIds = array();
             }
             $results =& ArticleSearch::formatResults($articleIds);
             $this->exportArticles($journal, $results);
             break;
         case 'issues':
             // Display a list of issues for export
             $this->setBreadcrumbs(array(), true);
             Locale::requireComponents(array(LOCALE_COMPONENT_OJS_EDITOR));
             $issueDao =& DAORegistry::getDAO('IssueDAO');
             $issues =& $issueDao->getPublishedIssues($journal->getId(), Handler::getRangeInfo('issues'));
             $templateMgr->assign_by_ref('issues', $issues);
             $templateMgr->display($this->getTemplatePath() . 'issues.tpl');
             break;
         case 'articles':
             // Display a list of articles for export
             $this->setBreadcrumbs(array(), true);
             $publishedArticleDao =& DAORegistry::getDAO('PublishedArticleDAO');
             $rangeInfo = Handler::getRangeInfo('articles');
             $articleIds = $publishedArticleDao->getPublishedArticleIdsByJournal($journal->getId(), false);
             $totalArticles = count($articleIds);
             if ($rangeInfo->isValid()) {
                 $articleIds = array_slice($articleIds, $rangeInfo->getCount() * ($rangeInfo->getPage() - 1), $rangeInfo->getCount());
             }
             import('core.VirtualArrayIterator');
             $iterator = new VirtualArrayIterator(ArticleSearch::formatResults($articleIds), $totalArticles, $rangeInfo->getPage(), $rangeInfo->getCount());
             $templateMgr->assign_by_ref('articles', $iterator);
             $templateMgr->display($this->getTemplatePath() . 'articles.tpl');
             break;
         default:
             $this->setBreadcrumbs();
             $templateMgr->assign_by_ref('journal', $journal);
             $templateMgr->display($this->getTemplatePath() . 'index.tpl');
     }
 }
 /**
  * Display the plugin.
  * @param $args array
  * @param $request PKPRequest
  */
 function display($args, $request)
 {
     $templateMgr = TemplateManager::getManager($request);
     $press = $request->getPress();
     parent::display($args, $request);
     $templateMgr->assign('plugin', $this);
     switch (array_shift($args)) {
         case 'index':
         case '':
             $templateMgr->display($this->getTemplatePath() . 'index.tpl');
             break;
         case 'export':
             $exportXml = $this->exportSubmissions((array) $request->getUserVar('selectedSubmissions'), $request->getContext(), $request->getUser());
             import('lib.pkp.classes.file.FileManager');
             $fileManager = new FileManager();
             $exportFileName = $this->getExportFileName($this->getExportPath(), 'monographs', $press, '.xml');
             $fileManager->writeFile($exportFileName, $exportXml);
             $fileManager->downloadFile($exportFileName);
             $fileManager->deleteFile($exportFileName);
             break;
         default:
             $dispatcher = $request->getDispatcher();
             $dispatcher->handle404();
     }
 }
Esempio n. 29
0
 function display(&$args)
 {
     $templateMgr =& TemplateManager::getManager();
     $request =& $this->getRequest();
     parent::display($args);
     $conference =& $request->getConference();
     $schedConf =& $request->getSchedConf();
     switch (array_shift($args)) {
         case 'exportPaper':
             $paperIds = array(array_shift($args));
             $result = array_shift(PaperSearch::formatResults($paperIds));
             $this->exportPaper($schedConf, $result['track'], $result['publishedPaper']);
             break;
         case 'exportPapers':
             $paperIds = $request->getUserVar('paperId');
             if (!isset($paperIds)) {
                 $paperIds = array();
             }
             $results =& PaperSearch::formatResults($paperIds);
             $this->exportPapers($results);
             break;
         case 'papers':
             // Display a list of papers for export
             $this->setBreadcrumbs(array(), true);
             $publishedPaperDao = DAORegistry::getDAO('PublishedPaperDAO');
             $rangeInfo = Handler::getRangeInfo($request, 'papers');
             $paperIds = $publishedPaperDao->getPublishedPaperIdsAlphabetizedBySchedConf($conference->getId(), $schedConf->getId());
             $totalPapers = count($paperIds);
             if ($rangeInfo->isValid()) {
                 $paperIds = array_slice($paperIds, $rangeInfo->getCount() * ($rangeInfo->getPage() - 1), $rangeInfo->getCount());
             }
             import('lib.pkp.classes.core.VirtualArrayIterator');
             $iterator = new VirtualArrayIterator(PaperSearch::formatResults($paperIds), $totalPapers, $rangeInfo->getPage(), $rangeInfo->getCount());
             $templateMgr->assign_by_ref('papers', $iterator);
             $templateMgr->display($this->getTemplatePath() . 'papers.tpl');
             break;
         case 'import':
             import('classes.file.TemporaryFileManager');
             $trackDao = DAORegistry::getDAO('TrackDAO');
             $user =& $request->getUser();
             $temporaryFileManager = new TemporaryFileManager();
             if ($existingFileId = $request->getUserVar('temporaryFileId')) {
                 // The user has just entered more context. Fetch an existing file.
                 $temporaryFile = $temporaryFileManager->getFile($existingFileId, $user->getId());
             } else {
                 $temporaryFile = $temporaryFileManager->handleUpload('importFile', $user->getId());
             }
             $context = array('conference' => $conference, 'schedConf' => $schedConf, 'user' => $user);
             if ($trackId = $request->getUserVar('trackId')) {
                 $context['track'] = $trackDao->getTrack($trackId);
             }
             if (!$temporaryFile) {
                 $templateMgr->assign('error', 'plugins.importexport.native.error.uploadFailed');
                 return $templateMgr->display($this->getTemplatePath() . 'importError.tpl');
             }
             $doc =& $this->getDocument($temporaryFile->getFilePath());
             if (substr($this->getRootNodeName($doc), 0, 5) === 'paper') {
                 // Ensure the user has supplied enough valid information to
                 // import papers within an appropriate context. If not,
                 // prompt them for the.
                 if (!isset($context['track'])) {
                     AppLocale::requireComponents(LOCALE_COMPONENT_APP_AUTHOR);
                     $templateMgr->assign('trackOptions', array('0' => __('author.submit.selectTrack')) + $trackDao->getTrackTitles($schedConf->getId(), false));
                     $templateMgr->assign('temporaryFileId', $temporaryFile->getId());
                     return $templateMgr->display($this->getTemplatePath() . 'paperContext.tpl');
                 }
             }
             @set_time_limit(0);
             if ($this->handleImport($context, $doc, $errors, $papers, false)) {
                 $templateMgr->assign_by_ref('papers', $papers);
                 return $templateMgr->display($this->getTemplatePath() . 'importSuccess.tpl');
             } else {
                 $templateMgr->assign_by_ref('errors', $errors);
                 return $templateMgr->display($this->getTemplatePath() . 'importError.tpl');
             }
             break;
         default:
             $this->setBreadcrumbs();
             $templateMgr->display($this->getTemplatePath() . 'index.tpl');
     }
 }
 function display(&$args, $request)
 {
     $templateMgr =& TemplateManager::getManager();
     parent::display($args, $request);
     $this->setBreadcrumbs();
     $journal =& Request::getJournal();
     $plugin =& $this->getSwordPlugin();
     $swordUrl = Request::getUserVar('swordUrl');
     $depositPointKey = Request::getUserVar('depositPoint');
     $depositPoints = $plugin->getSetting($journal->getId(), 'depositPoints');
     $username = Request::getUserVar('swordUsername');
     $password = Request::getUserVar('swordPassword');
     if (isset($depositPoints[$depositPointKey])) {
         $selectedDepositPoint = $depositPoints[$depositPointKey];
         if ($selectedDepositPoint['username'] != '') {
             $username = $selectedDepositPoint['username'];
         }
         if ($selectedDepositPoint['password'] != '') {
             $password = $selectedDepositPoint['password'];
         }
     }
     $swordDepositPoint = Request::getUserVar('swordDepositPoint');
     $depositEditorial = Request::getUserVar('depositEditorial');
     $depositGalleys = Request::getUserVar('depositGalleys');
     switch (array_shift($args)) {
         case 'deposit':
             $depositIds = array();
             try {
                 foreach (Request::getUserVar('articleId') as $articleId) {
                     $depositIds[] = $this->deposit($swordDepositPoint, $username, $password, $articleId, $depositEditorial, $depositGalleys);
                 }
             } catch (Exception $e) {
                 // Deposit failed
                 $templateMgr->assign(array('pageTitle' => 'plugins.importexport.sword.depositFailed', 'messageTranslated' => $e->getMessage(), 'backLink' => Request::url(null, null, null, array('plugin', $this->getName()), array('swordUrl' => $swordUrl, 'swordUsername' => $username, 'swordDepositPoint' => $swordDepositPoint, 'depositEditorial' => $depositEditorial, 'depositGalleys' => $depositGalleys)), 'backLinkLabel' => 'common.back'));
                 return $templateMgr->display('common/message.tpl');
             }
             // Deposit was successful
             $templateMgr->assign(array('pageTitle' => 'plugins.importexport.sword.depositSuccessful', 'message' => 'plugins.importexport.sword.depositSuccessfulDescription', 'backLink' => Request::url(null, null, null, array('plugin', $this->getName()), array('swordUrl' => $swordUrl, 'swordUsername' => $username, 'swordDepositPoint' => $swordDepositPoint, 'depositEditorial' => $depositEditorial, 'depositGalleys' => $depositGalleys)), 'backLinkLabel' => 'common.continue'));
             return $templateMgr->display('common/message.tpl');
             break;
         default:
             $journal =& Request::getJournal();
             $publishedArticleDao =& DAORegistry::getDAO('PublishedArticleDAO');
             $rangeInfo = Handler::getRangeInfo('articles');
             $articleIds = $publishedArticleDao->getPublishedArticleIdsAlphabetizedByJournal($journal->getId(), false);
             $totalArticles = count($articleIds);
             if ($rangeInfo->isValid()) {
                 $articleIds = array_slice($articleIds, $rangeInfo->getCount() * ($rangeInfo->getPage() - 1), $rangeInfo->getCount());
             }
             import('lib.pkp.classes.core.VirtualArrayIterator');
             $iterator = new VirtualArrayIterator(ArticleSearch::formatResults($articleIds), $totalArticles, $rangeInfo->getPage(), $rangeInfo->getCount());
             foreach (array('swordUrl', 'swordUsername', 'swordPassword', 'depositEditorial', 'depositGalleys', 'swordDepositPoint') as $var) {
                 $templateMgr->assign($var, Request::getUserVar($var));
             }
             $templateMgr->assign('depositPoints', $depositPoints);
             if (!empty($swordUrl)) {
                 $client = new SWORDAPPClient();
                 $doc = $client->servicedocument($swordUrl, $username, $password, '');
                 $depositPoints = array();
                 if (is_array($doc->sac_workspaces)) {
                     foreach ($doc->sac_workspaces as $workspace) {
                         if (is_array($workspace->sac_collections)) {
                             foreach ($workspace->sac_collections as $collection) {
                                 $depositPoints["{$collection->sac_href}"] = "{$collection->sac_colltitle}";
                             }
                         }
                     }
                 }
                 $templateMgr->assign_by_ref('swordDepositPoints', $depositPoints);
             }
             $templateMgr->assign_by_ref('articles', $iterator);
             $templateMgr->display($this->getTemplatePath() . 'articles.tpl');
             break;
     }
 }