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); $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(); } }
/** * 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; } }
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'); } }
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'); } }
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 */ 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'); } }
/** * 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'); } }
/** * Display the plugin * @param $args array * * This supports the following actions: * - unregistered, issues, articles: lists with exportable objects * - markRegistered: mark a single object (article, issue) as registered * - export: export a single object (article, issue) */ function display($args, $request) { $templateMgr = TemplateManager::getManager(); parent::display($args, $request); $journal = $request->getJournal(); switch (array_shift($args)) { case 'unregistered': return $this->_displayArticleList($templateMgr, $journal, true); break; case 'issues': return $this->_displayIssueList($templateMgr, $journal); break; case 'articles': return $this->_displayArticleList($templateMgr, $journal); break; case 'process': return $this->_process($request, $journal); break; default: $this->setBreadcrumbs(); $templateMgr->display($this->getTemplatePath() . 'index.tpl'); } }
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'); } }
function display(&$args, $request) { $templateMgr =& TemplateManager::getManager(); parent::display($args, $request); // Load the DuraCloud-PHP library. require_once 'lib/DuraCloud-PHP/DuraCloudPHP.inc.php'; $issueDao =& DAORegistry::getDAO('IssueDAO'); $journal =& $request->getJournal(); $user =& $request->getUser(); switch (array_shift($args)) { case 'importIssue': $contentId = array_shift($args); $issue =& $this->importIssue($user, $journal, $contentId); $templateMgr =& TemplateManager::getManager(); $templateMgr->assign('results', array($contentId => $issue)); $templateMgr->display($this->getTemplatePath() . 'importResults.tpl'); return; break; case 'importIssues': $results =& $this->importIssues($user, $journal, $request->getUserVar('contentId')); $templateMgr =& TemplateManager::getManager(); $templateMgr->assign('results', $results); $templateMgr->display($this->getTemplatePath() . 'importResults.tpl'); return; break; 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->getId()] =& $issue; unset($issue); } $results = $this->exportIssues($journal, $issues); $templateMgr =& TemplateManager::getManager(); $templateMgr->assign('results', $results); $templateMgr->assign_by_ref('issues', $issues); $templateMgr->display($this->getTemplatePath() . 'exportResults.tpl'); return; case 'exportIssue': $issueId = array_shift($args); $issue =& $issueDao->getIssueById($issueId, $journal->getId()); if (!$issue) { $request->redirect(); } $results = array($issue->getId() => $this->exportIssue($journal, $issue)); $templateMgr =& TemplateManager::getManager(); $templateMgr->assign('results', $results); $templateMgr->assign('issues', array($issue->getId() => $issue)); $templateMgr->display($this->getTemplatePath() . 'exportResults.tpl'); return; case 'exportableIssues': // 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() . 'exportableIssues.tpl'); return; case 'importableIssues': // Display a list of issues for import $this->setBreadcrumbs(array(), true); AppLocale::requireComponents(LOCALE_COMPONENT_OJS_EDITOR); $templateMgr->assign('issues', $this->getImportableIssues()); $templateMgr->display($this->getTemplatePath() . 'importableIssues.tpl'); return; case 'signIn': $this->setBreadcrumbs(); $this->import('DuraCloudLoginForm'); $duraCloudLoginForm = new DuraCloudLoginForm($this); $duraCloudLoginForm->readInputData(); if ($duraCloudLoginForm->validate()) { $duraCloudLoginForm->execute($this); } $duraCloudLoginForm->display($this); return; case 'signOut': $this->forgetDuraCloudConfiguration(); break; case 'selectSpace': $this->setDuraCloudSpace($request->getUserVar('duracloudSpace')); break; } // If we fall through: display the form. $this->setBreadcrumbs(); $this->import('DuraCloudLoginForm'); $duraCloudLoginForm = new DuraCloudLoginForm($this); $duraCloudLoginForm->display($this); }
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; } }
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::display() * * This supports the following actions: * - index: the plug-ins home page * - all, issues, articles, galleys, suppFiles: lists with exportable objects * - exportIssue, exportArticle, exportGalley, exportSuppFile: export a single object * - exportIssues, exportArticles, exportGalleys, exportSuppFiles: export several objects at a time * - registerIssue, registerArticle, registerGalley, registerSuppFile: register a single object * - registerIssues, registerArticles, registerGalleys, registerSuppFiles: register several objects at a time * - resetIssue, resetArticle, resetGalley, resetSuppFile: reset an object to "unregistered" state. */ function display(&$args, &$request) { parent::display($args, $request); $templateMgr =& TemplateManager::getManager(); // Retrieve journal from the request context. $journal =& $request->getJournal(); $op = array_shift($args); switch ($op) { // Show the plugin homepage case '': case 'index': return $this->_displayPluginHomePage($templateMgr, $journal); // Display cases: show a list of the specified objects // Display cases: show a list of the specified objects case 'all': case 'issues': case 'articles': case 'galleys': case 'suppFiles': // Test mode. $templateMgr->assign('testMode', $this->isTestMode($request) ? array('testMode' => 1) : array()); // Export without account. $username = $this->getSetting($journal->getId(), 'username'); $templateMgr->assign('hasCredentials', !empty($username)); switch ($op) { case 'issues': return $this->displayIssueList($templateMgr, $journal); case 'articles': return $this->displayArticleList($templateMgr, $journal); case 'galleys': return $this->_displayGalleyList($templateMgr, $journal); case 'suppFiles': return $this->displaySuppFileList($templateMgr, $journal); case 'all': return $this->displayAllUnregisteredObjects($templateMgr, $journal); } // Process register/reset/export/mark actions. // Process register/reset/export/mark actions. case 'process': $this->_process($request, $journal); break; default: fatalError('Invalid command.'); } }
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'); } }
/** * @copydoc ImportExportPlugin::display() */ function display($args, $request) { parent::display($args, $request); $context = $request->getContext(); switch (array_shift($args)) { case 'index': case '': // Check for configuration errors: $configurationErrors = array(); // 1) missing DOI prefix $doiPrefix = $exportArticles = $exportIssues = null; $pubIdPlugins = PluginRegistry::loadCategory('pubIds', true); if (isset($pubIdPlugins['doipubidplugin'])) { $doiPlugin = $pubIdPlugins['doipubidplugin']; $doiPrefix = $doiPlugin->getSetting($context->getId(), $doiPlugin->getPrefixFieldName()); $exportArticles = $doiPlugin->getSetting($context->getId(), 'enableSubmissionDoi'); $exportIssues = $doiPlugin->getSetting($context->getId(), 'enableIssueDoi'); $exportRepresentations = $doiPlugin->getSetting($context->getId(), 'enableRepresentationDoi'); } if (empty($doiPrefix)) { $configurationErrors[] = DOI_EXPORT_CONFIG_ERROR_DOIPREFIX; } // 2) missing plugin settings $form = $this->_instantiateSettingsForm($context); foreach ($form->getFormFields() as $fieldName => $fieldType) { if ($form->isOptional($fieldName)) { continue; } $pluginSetting = $this->getSetting($context->getId(), $fieldName); if (empty($pluginSetting)) { $configurationErrors[] = DOI_EXPORT_CONFIG_ERROR_SETTINGS; break; } } // Add link actions $actions = $this->getExportActions($context); $actionNames = array_intersect_key($this->getExportActionNames(), array_flip($actions)); import('lib.pkp.classes.linkAction.request.NullAction'); $linkActions = array(); foreach ($actionNames as $action => $actionName) { $linkActions[] = new LinkAction($action, new NullAction(), $actionName); } $templateMgr = TemplateManager::getManager($request); $templateMgr->assign(array('plugin' => $this, 'actionNames' => $actionNames, 'configurationErrors' => $configurationErrors, 'exportArticles' => $exportArticles, 'exportIssues' => $exportIssues, 'exportRepresentations' => $exportRepresentations)); $templateMgr->display($this->getTemplatePath() . 'index.tpl'); break; case 'exportSubmissions': case 'exportIssues': $selectedSubmissions = (array) $request->getUserVar('selectedSubmissions'); $selectedIssues = (array) $request->getUserVar('selectedIssues'); $tab = (string) $request->getUserVar('tab'); if (empty($selectedSubmissions) && empty($selectedIssues)) { fatalError(__('plugins.importexport.common.error.noObjectsSelected')); } if (!empty($selectedSubmissions)) { $objects = $this->_getPublishedArticles($selectedSubmissions, $context); $filter = $this->getSubmissionFilter(); $objectsFileNamePart = 'articles'; } elseif (!empty($selectedIssues)) { $objects = $this->_getPublishedIssues($selectedIssues, $context); $filter = $this->getIssueFilter(); $objectsFileNamePart = 'issues'; } // Execute export action $this->executeExportAction($request, $objects, $filter, $tab, $objectsFileNamePart); } }
/** * @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'); } }
/** * 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(); } }
/** * @see ImportExportPlugin::display() * * This supports the following actions: * - index: the plug-ins home page * - all, issues, articles, galleys: lists with exportable objects * - exportIssue, exportArticle, exportGalley: export a single object * - exportIssues, exportArticles, exportGalleys: export several objects at a time * - registerIssue, registerArticle, registerGalley: register a single object * - registerIssues, registerArticles, registerGalleys: register several objects at a time * - resetIssue, resetArticle, resetGalley: reset an object to "unregistered" state. */ function display(&$args, $request) { parent::display($args, $request); // Retrieve journal from the request context. $router = $request->getRouter(); $journal = $router->getContext($request); $op = strtolower_codesafe(array_shift($args)); // Check whether we deal with a single object or // multiple objects. $multiSelect = substr($op, -1) == 's'; // Check whether we serve an exportation request. if (substr($op, 0, 6) == 'export') { // Check whether the "register" button was clicked. if ($request->isPost() && !is_null($request->getUserVar('register'))) { // Fix the operation name so that we can check // operations in a single switch statement. $action = 'register'; } else { $action = 'export'; } // Check whether we serve a registration request. } elseif (substr($op, 0, 8) == 'register') { $action = 'register'; // Check whether we serve a reset request (which is allowed for single targets only). } elseif (!$multiSelect && substr($op, 0, 5) == 'reset') { $action = 'reset'; // By default we assume a display request. } else { $action = 'display'; } // Identify the operation's target. The index is the default. // NB: Order is relevant! The word "galley" contains "all" and // "index" must be last so that it is selected if nothing else // matches. $objectTypes = $this->getAllObjectTypes(); $targets = array_keys($objectTypes); if ($action != 'reset') { $targets[] = 'all'; } $targets[] = 'index'; foreach ($targets as $target) { if (strpos($op, strtolower_codesafe($target)) !== false) { break; } } if ($target == 'index') { $action = 'display'; } // Dispatch the action. switch ($action) { case 'export': case 'register': // Find the objects to be exported (registered). if ($target == 'all') { $exportSpec = array(); foreach ($objectTypes as $objectName => $exportType) { $objectIds = $request->getUserVar($objectName . 'Id'); if (!empty($objectIds)) { $exportSpec[$exportType] = $objectIds; } } } else { assert(isset($objectTypes[$target])); if ($multiSelect) { $exportSpec = array($objectTypes[$target] => $request->getUserVar($target . 'Id')); } else { $exportSpec = array($objectTypes[$target] => array_shift($args)); } } if ($action == 'export') { // Export selected objects. $result = $this->exportObjects($request, $exportSpec, $journal); } else { // Register selected objects. $result = $this->registerObjects($request, $exportSpec, $journal); // Provide the user with some visual feedback that // registration was successful. if ($result === true) { $this->_sendNotification($request, 'plugins.importexport.common.register.success', NOTIFICATION_TYPE_SUCCESS); // Redisplay the changed object list. if ($result === true) { $listAction = $target . ($target == 'all' ? '' : 's'); $request->redirect(null, null, null, array('plugin', $this->getName(), $listAction), $this->isTestMode($request) ? array('testMode' => 1) : null); } } } break; case 'reset': // Reset the selected target object to "unregistered" state. $result = $this->resetRegistration($objectTypes[$target], array_shift($args), $journal); // Redisplay the changed object list. if ($result === true) { $request->redirect(null, null, null, array('plugin', $this->getName(), $target . 's'), $this->isTestMode($request) ? array('testMode' => 1) : null); } break; default: // Display. $templateMgr = TemplateManager::getManager($request); // Test mode. $templateMgr->assign('testMode', $this->isTestMode($request) ? array('testMode' => 1) : array()); // Export without account. $username = $this->getSetting($journal->getId(), 'username'); $templateMgr->assign('hasCredentials', !empty($username)); switch ($target) { case 'issue': $this->_displayIssueList($templateMgr, $journal); break; case 'article': $this->_displayArticleList($templateMgr, $journal); break; case 'galley': $this->_displayGalleyList($templateMgr, $journal); break; case 'all': $this->displayAllUnregisteredObjects($templateMgr, $journal); break; default: $this->_displayPluginHomePage($templateMgr, $journal); } $result = true; } // Redirect to the index page. if ($result !== true) { if (is_array($result) && !empty($result)) { foreach ($result as $error) { assert(is_array($error) && count($error) >= 1); $this->_sendNotification($request, $error[0], NOTIFICATION_TYPE_ERROR, isset($error[1]) ? $error[1] : null); } } $path = array('plugin', $this->getName()); $request->redirect(null, null, null, $path); } }
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($journal, $result); break; case 'exportArticles': $articleIds = $request->getUserVar('articleId'); if (!isset($articleIds)) { $articleIds = array(); } $articleSearch = new ArticleSearch(); $results = $articleSearch->formatResults($articleIds); $this->exportArticles($journal, $results); break; case 'issues': // Display a list of issues for export // that contain an article with DOI AppLocale::requireComponents(LOCALE_COMPONENT_APP_EDITOR); $issueDao = DAORegistry::getDAO('IssueDAO'); $publishedArticleDao = DAORegistry::getDAO('PublishedArticleDAO'); $allIssues = $issueDao->getPublishedIssues($journal->getId()); $issues = array(); $numArticles = array(); while ($issue = $allIssues->next()) { $issueArticles =& $publishedArticleDao->getPublishedArticles($issue->getId()); $issueArticlesNo = 0; foreach ($issueArticles as $issueArticle) { if ($issueArticle->getPubId('doi')) { if (!in_array($issue, $issues)) { $issues[] = $issue; } $issueArticlesNo++; } } $numArticles[$issue->getId()] = $issueArticlesNo; } // Paginate issues. $rangeInfo = Handler::getRangeInfo('issues'); import('lib.pkp.classes.core.VirtualArrayIterator'); $iterator = VirtualArrayIterator::factory($issues, $rangeInfo); $templateMgr->assign('issues', $iterator); $templateMgr->assign('numArticles', $numArticles); $templateMgr->display($this->getTemplatePath() . 'issues.tpl'); break; case 'articles': // Display a list of articles with DOI for export $publishedArticleDao = DAORegistry::getDAO('PublishedArticleDAO'); $articleIterator = $publishedArticleDao->getPublishedArticlesByJournalId($journal->getId()); $articleIds = array(); while ($article = $articleIterator->next()) { // Check whether there is a DOI. if ($article->getPubId('doi')) { $articleIds[] = $article->getId(); } } // Paginate articles. $rangeInfo = Handler::getRangeInfo('articles'); import('lib.pkp.classes.core.VirtualArrayIterator'); $iterator = VirtualArrayIterator::factory(ArticleSearch::formatResults($articleIds), $rangeInfo); $templateMgr->assign_by_ref('articles', $iterator); $templateMgr->display($this->getTemplatePath() . 'articles.tpl'); break; default: $doiPrefix = null; $pubIdPlugins = PluginRegistry::loadCategory('pubIds', true); if (isset($pubIdPlugins['DOIPubIdPlugin'])) { $doiPrefix = $pubIdPlugins['DOIPubIdPlugin']->getSetting($journal->getId(), 'doiPrefix'); } $templateMgr->assign('doiPrefix', $doiPrefix); $templateMgr->display($this->getTemplatePath() . 'index.tpl'); } }
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'); } }
/** * @copydoc ImportExportPlugin::display() */ function display($args, $request) { parent::display($args, $request); $context = $request->getContext(); switch (array_shift($args)) { case 'index': case '': // Add link actions $actions = $this->getExportActions($context); $actionNames = array_intersect_key($this->getExportActionNames(), array_flip($actions)); import('lib.pkp.classes.linkAction.request.NullAction'); $linkActions = array(); foreach ($actionNames as $action => $actionName) { $linkActions[] = new LinkAction($action, new NullAction(), $actionName); } $templateMgr = TemplateManager::getManager($request); $templateMgr->assign(array('plugin' => $this, 'actionNames' => $actionNames)); break; case 'exportSubmissions': case 'exportIssues': case 'exportRepresentations': $selectedSubmissions = (array) $request->getUserVar('selectedSubmissions'); $selectedIssues = (array) $request->getUserVar('selectedIssues'); $selectedRepresentations = (array) $request->getUserVar('selectedRepresentations'); $tab = (string) $request->getUserVar('tab'); if (empty($selectedSubmissions) && empty($selectedIssues) && empty($selectedRepresentations)) { fatalError(__('plugins.importexport.common.error.noObjectsSelected')); } if (!empty($selectedSubmissions)) { $objects = $this->getPublishedArticles($selectedSubmissions, $context); $filter = $this->getSubmissionFilter(); $objectsFileNamePart = 'articles'; } elseif (!empty($selectedIssues)) { $objects = $this->getPublishedIssues($selectedIssues, $context); $filter = $this->getIssueFilter(); $objectsFileNamePart = 'issues'; } elseif (!empty($selectedRepresentations)) { $objects = $this->getArticleGalleys($selectedRepresentations, $context); $filter = $this->getRepresentationFilter(); $objectsFileNamePart = 'galleys'; } // Execute export action $this->executeExportAction($request, $objects, $filter, $tab, $objectsFileNamePart); } }
/** * 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(); } }