/** * 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(); } }
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(); } }
/** * 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())); }
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'); } }
/** * 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'); } }
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'); } }
/** * 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'); } }
/** * 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(); } }
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'); } }
/** * @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; }
/** * 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'); } }
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'); } }
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'); } }
/** * 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; }
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; }
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(); } }
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; } }