/** * Validate that user has admin privileges and is not trying to access the admin module with a journal selected. * Redirects to the user index page if not properly authenticated. */ function validate() { parent::validate(); if (!Validation::isSiteAdmin() || Request::getRequestedJournalPath() != 'index') { Validation::redirectLogin(); } }
/** * Display reviewer index page. */ function index($args) { $this->validate(); $this->setupTemplate(); $journal =& Request::getJournal(); //%CBP% redirect or set var as appropriate $CBPPlatformDao =& DAORegistry::getDAO('CBPPlatformDAO'); $workshop = $CBPPlatformDao->getWorkshop($journal->getJournalId()); if ($workshop != "structured") { $workshop = 1; } if ($workshop == 1) { Request::redirect(Request::getRequestedJournalPath(), 'user'); } $user =& Request::getUser(); $reviewerSubmissionDao =& DAORegistry::getDAO('ReviewerSubmissionDAO'); $rangeInfo = Handler::getRangeInfo('submissions'); $page = isset($args[0]) ? $args[0] : ''; switch ($page) { case 'completed': $active = false; break; default: $page = 'active'; $active = true; } $sort = Request::getUserVar('sort'); $sort = isset($sort) ? $sort : 'title'; $sortDirection = Request::getUserVar('sortDirection'); if ($sort == 'decision') { $submissions = $reviewerSubmissionDao->getReviewerSubmissionsByReviewerId($user->getId(), $journal->getId(), $active, $rangeInfo); // Sort all submissions by status, which is too complex to do in the DB $submissionsArray = $submissions->toArray(); $compare = create_function('$s1, $s2', 'return strcmp($s1->getMostRecentDecision(), $s2->getMostRecentDecision());'); usort($submissionsArray, $compare); if ($sortDirection == SORT_DIRECTION_DESC) { $submissionsArray = array_reverse($submissionsArray); } // Convert submission array back to an ItemIterator class import('lib.pkp.classes.core.ArrayItemIterator'); $submissions =& ArrayItemIterator::fromRangeInfo($submissionsArray, $rangeInfo); } else { $submissions = $reviewerSubmissionDao->getReviewerSubmissionsByReviewerId($user->getId(), $journal->getId(), $active, $rangeInfo, $sort, $sortDirection); } $templateMgr =& TemplateManager::getManager(); $templateMgr->assign('reviewerRecommendationOptions', ReviewAssignment::getReviewerRecommendationOptions()); $templateMgr->assign('pageToDisplay', $page); $templateMgr->assign_by_ref('submissions', $submissions); import('classes.submission.reviewAssignment.ReviewAssignment'); $templateMgr->assign_by_ref('reviewerRecommendationOptions', ReviewAssignment::getReviewerRecommendationOptions()); import('classes.issue.IssueAction'); $issueAction = new IssueAction(); $templateMgr->register_function('print_issue_id', array($issueAction, 'smartyPrintIssueId')); $templateMgr->assign('helpTopicId', 'editorial.reviewersRole.submissions'); $templateMgr->assign('sort', $sort); $templateMgr->assign('sortDirection', $sortDirection); $templateMgr->display('reviewer/index.tpl'); }
function index($args, $request) { $this->validate(); PluginRegistry::loadCategory('oaiMetadataFormats', true); $oai = new JournalOAI(new OAIConfig($request->url(null, 'oai'), Config::getVar('oai', 'repository_id'))); if (!$request->getJournal() && Request::getRequestedJournalPath() != 'index') { $dispatcher = $request->getDispatcher(); return $dispatcher->handle404(); } $oai->execute(); }
/** * Get the journal associated with the current request. * @return Journal */ function &getJournal() { static $journal; if (!isset($journal)) { $path = Request::getRequestedJournalPath(); if ($path != 'index') { $journalDao =& DAORegistry::getDAO('JournalDAO'); $journal = $journalDao->getJournalByPath(Request::getRequestedJournalPath()); } } return $journal; }
/** * If no journal is selected, display list of journals. * Otherwise, display the index page for the selected journal. */ function index($args) { parent::validate(); $templateMgr =& TemplateManager::getManager(); $journalDao =& DAORegistry::getDAO('JournalDAO'); $journalPath = Request::getRequestedJournalPath(); $templateMgr->assign('helpTopicId', 'user.home'); if ($journalPath != 'index' && $journalDao->journalExistsByPath($journalPath)) { $journal =& Request::getJournal(); // Assign header and content for home page $templateMgr->assign('displayPageHeaderTitle', $journal->getJournalPageHeaderTitle(true)); $templateMgr->assign('displayPageHeaderLogo', $journal->getJournalPageHeaderLogo(true)); $templateMgr->assign('additionalHomeContent', $journal->getLocalizedSetting('additionalHomeContent')); $templateMgr->assign('homepageImage', $journal->getLocalizedSetting('homepageImage')); $templateMgr->assign('journalDescription', $journal->getLocalizedSetting('description')); $displayCurrentIssue = $journal->getSetting('displayCurrentIssue'); $issueDao =& DAORegistry::getDAO('IssueDAO'); $issue =& $issueDao->getCurrentIssue($journal->getJournalId()); if ($displayCurrentIssue && isset($issue)) { import('pages.issue.IssueHandler'); // The current issue TOC/cover page should be displayed below the custom home page. IssueHandler::setupIssueTemplate($issue); } // Display creative commons logo/licence if enabled $templateMgr->assign('displayCreativeCommons', $journal->getSetting('includeCreativeCommons')); $enableAnnouncements = $journal->getSetting('enableAnnouncements'); if ($enableAnnouncements) { $enableAnnouncementsHomepage = $journal->getSetting('enableAnnouncementsHomepage'); if ($enableAnnouncementsHomepage) { $numAnnouncementsHomepage = $journal->getSetting('numAnnouncementsHomepage'); $announcementDao =& DAORegistry::getDAO('AnnouncementDAO'); $announcements =& $announcementDao->getNumAnnouncementsNotExpiredByJournalId($journal->getJournalId(), $numAnnouncementsHomepage); $templateMgr->assign('announcements', $announcements); $templateMgr->assign('enableAnnouncementsHomepage', $enableAnnouncementsHomepage); } } $templateMgr->display('index/journal.tpl'); } else { $siteDao =& DAORegistry::getDAO('SiteDAO'); $site =& $siteDao->getSite(); if ($site->getRedirect() && ($journal = $journalDao->getJournal($site->getJournalRedirect())) != null) { Request::redirect($journal->getPath()); } $templateMgr->assign('intro', $site->getSiteIntro()); $templateMgr->assign('journalFilesPath', Request::getBaseUrl() . '/' . Config::getVar('files', 'public_files_dir') . '/journals/'); $journals =& $journalDao->getEnabledJournals(); $templateMgr->assign_by_ref('journals', $journals); $templateMgr->setCacheability(CACHEABILITY_PUBLIC); $templateMgr->display('index/site.tpl'); } }
/** * Index. */ function booksForReview() { $this->validate(); $this->setupTemplate(); $journal =& Request::getJournal(); $journalId = $journal->getJournalId(); $user =& Request::getUser(); $templateMgr =& TemplateManager::getManager(); $issueDao =& DAORegistry::getDAO('IssueDAO'); $CBPPlatformDao =& DAORegistry::getDAO('CBPPlatformDAO'); $publishedArticleDao =& DAORegistry::getDAO('PublishedArticleDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); $pendingIssuesList = $CBPPlatformDao->getPendingIssues($journalId); if (Request::getUserVar('issueId')) { $issueId = Request::getUserVar('issueId'); function in_array_r($needle, $haystack) { foreach ($haystack as $item) { if ($item === $needle || is_array($item) && in_array_r($needle, $item)) { return true; } } return false; } if (in_array_r($issueId, $pendingIssuesList)) { $comment = Request::getUserVar('comment'); $CBPPlatformDao->setReviewerIssueComment($issueId, $user->getUserId(), $comment); Request::redirect(Request::getRequestedJournalPath(), Request::getRequestedPage(), Request::getRequestedOp()); } } if (count($pendingIssuesList) > 1) { foreach ($pendingIssuesList as $pendingIssue) { $issues[] = $issueDao->getIssueById($pendingIssue['issue_id']); $issueObject = $CBPPlatformDao->getFedoraIssueObjectInformation($pendingIssue['issue_id']); $issueComments[$pendingIssue['issue_id']] = $CBPPlatformDao->getReviewerIssueComments($pendingIssue['issue_id']); $issueObjects[$pendingIssue['issue_id']]['pid'] = $issueObject['fedora_namespace'] . ":" . $issueObject['fedora_pid']; $issueObjects[$pendingIssue['issue_id']]['dsid'] = $issueObject['fedora_dsid']; $publishedArticles[$pendingIssue['issue_id']] = $publishedArticleDao->getPublishedArticles($pendingIssue['issue_id']); } $pendingIssues = $issues; } else { $pendingIssues = 0; } $templateMgr->assign('user', $userDao); $templateMgr->assign('pendingIssues', $pendingIssues); $templateMgr->assign('issueComments', $issueComments); $templateMgr->assign('publishedArticles', $publishedArticles); $templateMgr->assign('issueObjects', $issueObjects); $templateMgr->display('reviewer/booksForReview.tpl'); }
function _handleOjsUrl($matchArray) { $url = $matchArray[2]; $anchor = null; if (($i = strpos($url, '#')) !== false) { $anchor = substr($url, $i + 1); $url = substr($url, 0, $i); } $urlParts = explode('/', $url); if (isset($urlParts[0])) { switch (String::strtolower($urlParts[0])) { case 'journal': $url = Request::url(isset($urlParts[1]) ? $urlParts[1] : Request::getRequestedJournalPath(), null, null, null, null, $anchor); break; case 'article': if (isset($urlParts[1])) { $url = Request::url(null, 'article', 'view', $urlParts[1], null, $anchor); } break; case 'issue': if (isset($urlParts[1])) { $url = Request::url(null, 'issue', 'view', $urlParts[1], null, $anchor); } else { $url = Request::url(null, 'issue', 'current', null, null, $anchor); } break; case 'suppfile': if (isset($urlParts[1]) && isset($urlParts[2])) { $url = Request::url(null, 'article', 'downloadSuppFile', array($urlParts[1], $urlParts[2]), null, $anchor); } break; case 'sitepublic': array_shift($urlParts); import('file.PublicFileManager'); $publicFileManager =& new PublicFileManager(); $url = Request::getBaseUrl() . '/' . $publicFileManager->getSiteFilesPath() . '/' . implode('/', $urlParts) . ($anchor ? '#' . $anchor : ''); break; case 'public': array_shift($urlParts); $journal =& Request::getJournal(); import('file.PublicFileManager'); $publicFileManager =& new PublicFileManager(); $url = Request::getBaseUrl() . '/' . $publicFileManager->getJournalFilesPath($journal->getJournalId()) . '/' . implode('/', $urlParts) . ($anchor ? '#' . $anchor : ''); break; } } return $matchArray[1] . $url . $matchArray[3]; }
/** * Show advanced search form. */ function advanced() { parent::validate(); SearchHandler::setupTemplate(false); $templateMgr =& TemplateManager::getManager(); if (Request::getJournal() == null) { $journalDao =& DAORegistry::getDAO('JournalDAO'); $journals =& $journalDao->getEnabledJournalTitles(); //Enabled added $templateMgr->assign('siteSearch', true); $templateMgr->assign('journalOptions', array('' => Locale::Translate('search.allJournals')) + $journals); $journalPath = Request::getRequestedJournalPath(); } SearchHandler::assignAdvancedSearchParameters($templateMgr); $templateMgr->display('search/advancedSearch.tpl'); }
/** * Generate an XML sitemap for webcrawlers * Creates a sitemap index if in site context, else creates a sitemap */ function index() { if (Request::getRequestedJournalPath() == 'index') { $doc = $this->_createSitemapIndex(); header("Content-Type: application/xml"); header("Cache-Control: private"); header("Content-Disposition: inline; filename=\"sitemap_index.xml\""); XMLCustomWriter::printXML($doc); } else { $doc = $this->_createJournalSitemap(); header("Content-Type: application/xml"); header("Cache-Control: private"); header("Content-Disposition: inline; filename=\"sitemap.xml\""); XMLCustomWriter::printXML($doc); } }
/** * Display about index page. */ function index() { $this->validate(); $this->setupTemplate(); $templateMgr =& TemplateManager::getManager(); $journalDao =& DAORegistry::getDAO('JournalDAO'); $journalPath = Request::getRequestedJournalPath(); if ($journalPath != 'index' && $journalDao->journalExistsByPath($journalPath)) { $journal =& Request::getJournal(); $journalSettingsDao =& DAORegistry::getDAO('JournalSettingsDAO'); $templateMgr->assign_by_ref('journalSettings', $journalSettingsDao->getJournalSettings($journal->getId())); $customAboutItems =& $journalSettingsDao->getSetting($journal->getId(), 'customAboutItems'); if (isset($customAboutItems[AppLocale::getLocale()])) { $templateMgr->assign('customAboutItems', $customAboutItems[AppLocale::getLocale()]); } elseif (isset($customAboutItems[AppLocale::getPrimaryLocale()])) { $templateMgr->assign('customAboutItems', $customAboutItems[AppLocale::getPrimaryLocale()]); } foreach ($this->getPublicStatisticsNames() as $name) { if ($journal->getSetting($name)) { $templateMgr->assign('publicStatisticsEnabled', true); break; } } // Hide membership if the payment method is not configured import('classes.payment.ojs.OJSPaymentManager'); $paymentManager =& OJSPaymentManager::getManager(); $templateMgr->assign('paymentConfigured', $paymentManager->isConfigured()); $groupDao =& DAORegistry::getDAO('GroupDAO'); $groups =& $groupDao->getGroups(ASSOC_TYPE_JOURNAL, $journal->getId(), GROUP_CONTEXT_PEOPLE); $templateMgr->assign_by_ref('peopleGroups', $groups); $templateMgr->assign('helpTopicId', 'user.about'); $templateMgr->display('about/index.tpl'); } else { $site =& Request::getSite(); $about = $site->getLocalizedAbout(); $templateMgr->assign('about', $about); $journals =& $journalDao->getEnabledJournals(); //Enabled Added $templateMgr->assign_by_ref('journals', $journals); $templateMgr->display('about/site.tpl'); } }
/** * Show advanced search form. */ function advanced() { $this->validate(); $this->setupTemplate(false); $templateMgr =& TemplateManager::getManager(); $publishedArticleDao =& DAORegistry::getDAO('PublishedArticleDAO'); if (Request::getJournal() == null) { $journalDao =& DAORegistry::getDAO('JournalDAO'); $journals =& $journalDao->getJournalTitles(true); $templateMgr->assign('siteSearch', true); $templateMgr->assign('journalOptions', array('' => Locale::Translate('search.allJournals')) + $journals); $journalPath = Request::getRequestedJournalPath(); $yearRange = $publishedArticleDao->getArticleYearRange(null); } else { $journal =& Request::getJournal(); $yearRange = $publishedArticleDao->getArticleYearRange($journal->getId()); } $this->_assignAdvancedSearchParameters($templateMgr, $yearRange); $templateMgr->display('search/advancedSearch.tpl'); }
/** * Display about index page. */ function index() { parent::validate(); $templateMgr =& TemplateManager::getManager(); $journalDao =& DAORegistry::getDAO('JournalDAO'); $journalPath = Request::getRequestedJournalPath(); if ($journalPath != 'index' && $journalDao->journalExistsByPath($journalPath)) { $journal =& Request::getJournal(); $journalSettingsDao =& DAORegistry::getDAO('JournalSettingsDAO'); $templateMgr->assign_by_ref('journalSettings', $journalSettingsDao->getJournalSettings($journal->getJournalId())); $customAboutItems =& $journalSettingsDao->getSetting($journal->getJournalId(), 'customAboutItems'); if (isset($customAboutItems[Locale::getLocale()])) { $templateMgr->assign('customAboutItems', $customAboutItems[Locale::getLocale()]); } elseif (isset($customAboutItems[Locale::getPrimaryLocale()])) { $templateMgr->assign('customAboutItems', $customAboutItems[Locale::getPrimaryLocale()]); } foreach (AboutHandler::getPublicStatisticsNames() as $name) { if ($journal->getSetting($name)) { $templateMgr->assign('publicStatisticsEnabled', true); break; } } $groupDao =& DAORegistry::getDAO('GroupDAO'); $groups =& $groupDao->getGroups($journal->getJournalId(), GROUP_CONTEXT_PEOPLE); $templateMgr->assign_by_ref('peopleGroups', $groups); $templateMgr->assign('helpTopicId', 'user.about'); $templateMgr->display('about/index.tpl'); } else { $site =& Request::getSite(); $about = $site->getSiteAbout(); $templateMgr->assign('about', $about); $journals =& $journalDao->getEnabledJournals(); //Enabled Added $templateMgr->assign_by_ref('journals', $journals); $templateMgr->display('about/site.tpl'); } }
/** * Display the submission review page. * @param $args array */ function submission($args) { $journal =& Request::getJournal(); $journalId = $journal->getJournalId(); $session =& Request::getSession(); //%CBP% get the journal/imprint type and set var approriately $CBPPlatformDao =& DAORegistry::getDAO('CBPPlatformDAO'); $workshop = $CBPPlatformDao->getWorkshop($journalId); if ($workshop != "structured") { $workshop = 1; } $args = Request::getRequestedArgs(); if ($workshop == 1) { $args = Request::getRequestedArgs(); if (!$args[1]) { $articleId = $args[0]; $user =& Request::getUser(); if ($workshop == 1 && !$session->getSessionVar('workshopReview_' . $articleId)) { $reviewId = $CBPPlatformDao->setWorkshopReviewer($articleId, $user->getUserId()); $session->setSessionVar('workshopReview_' . $articleId, $articleId); } else { if ($workshop == 1 && $session->getSessionVar('workshopReview_' . $articleId)) { $reviewId = $CBPPlatformDao->getWorkshopReviewId($articleId, $user->getUserId()); if ($CBPPlatformDao->getWorkshopReviewCompleted($reviewId) != null) { $reviewId = $CBPPlatformDao->setWorkshopReviewer($articleId, $user->getUserId()); $session->setSessionVar('workshopReview_' . $articleId, $articleId); } } } Request::redirect(Request::getRequestedJournalPath(), Request::getRequestedPage(), Request::getRequestedOp(), array("review" => $reviewId, "redirect" => 1)); } } $reviewId = $args[0]; $this->validate($reviewId); $user =& $this->user; $submission =& $this->submission; $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO'); $reviewAssignment = $reviewAssignmentDao->getById($reviewId); $reviewFormResponseDao =& DAORegistry::getDAO('ReviewFormResponseDAO'); if ($workshop == 1) { $confirmedStatus = 1; } else { if ($submission->getDateConfirmed() == null) { $confirmedStatus = 0; } else { $confirmedStatus = 1; } } $this->setupTemplate(true, $reviewAssignment->getSubmissionId(), $reviewId); $templateMgr =& TemplateManager::getManager(); $templateMgr->assign_by_ref('user', $user); $templateMgr->assign_by_ref('submission', $submission); $templateMgr->assign_by_ref('reviewAssignment', $reviewAssignment); $templateMgr->assign('confirmedStatus', $confirmedStatus); $templateMgr->assign('declined', $submission->getDeclined()); $templateMgr->assign('reviewFormResponseExists', $reviewFormResponseDao->reviewFormResponseExists($reviewId)); $templateMgr->assign_by_ref('reviewFile', $reviewAssignment->getReviewFile()); $templateMgr->assign_by_ref('reviewerFile', $submission->getReviewerFile()); $templateMgr->assign_by_ref('suppFiles', $submission->getSuppFiles()); $templateMgr->assign_by_ref('journal', $journal); $templateMgr->assign_by_ref('reviewGuidelines', $journal->getLocalizedSetting('reviewGuidelines')); $templateMgr->assign_by_ref('workshop', $workshop); import('classes.submission.reviewAssignment.ReviewAssignment'); $templateMgr->assign_by_ref('reviewerRecommendationOptions', ReviewAssignment::getReviewerRecommendationOptions()); $templateMgr->assign('helpTopicId', 'editorial.reviewersRole.review'); $templateMgr->display('reviewer/submission.tpl'); }
/** * Unenroll a user from a role. */ function unEnroll($args) { $roleId = isset($args[0]) ? $args[0] : 0; parent::validate(); $journalDao =& DAORegistry::getDAO('JournalDAO'); $journal =& $journalDao->getJournalByPath(Request::getRequestedJournalPath()); $roleDao =& DAORegistry::getDAO('RoleDAO'); if ($roleId != $roleDao->getRoleIdFromPath('admin')) { $roleDao->deleteRoleByUserId(Request::getUserVar('userId'), $journal->getJournalId(), $roleId); } Request::redirect(null, null, 'people'); }
/** * Assigns values to e-mail parameters. * @param $paramArray array * @return void */ function assignParams($paramArray = array()) { $subject = $this->getSubject(); $body = $this->getBody(); // Add commonly-used variables to the list if (isset($this->journal)) { // FIXME Include affiliation, title, etc. in signature? $paramArray['journalName'] = $this->journal->getJournalTitle(); $paramArray['principalContactSignature'] = $this->journal->getSetting('contactName'); } else { $site =& Request::getSite(); $paramArray['principalContactSignature'] = $site->getSiteContactName(); } if (!isset($paramArray['journalUrl'])) { $paramArray['journalUrl'] = Request::url(Request::getRequestedJournalPath()); } // Replace variables in message with values foreach ($paramArray as $key => $value) { if (!is_object($value)) { $subject = str_replace('{$' . $key . '}', $value, $subject); $body = str_replace('{$' . $key . '}', $value, $body); } } $this->setSubject($subject); $this->setBody($body); }
/** * Display a list of pending issues */ function issue() { $this->validate(); $this->setupTemplate(); $templateMgr =& TemplateManager::getManager(); $issueDao =& DAORegistry::getDAO('IssueDAO'); $CBPPlatformDao =& DAORegistry::getDAO('CBPPlatformDAO'); $publishedArticleDao =& DAORegistry::getDAO('PublishedArticleDAO'); $user =& Request::getUser(); $userDao =& DAORegistry::getDAO('UserDAO'); $journalDao =& DAORegistry::getDAO('JournalDAO'); if (Request::getUserVar('filter')) { $filter = (int) Request::getUserVar('filter'); } $pendingIssuesList = $CBPPlatformDao->getPendingIssues(); foreach ($pendingIssuesList as $pendingIssue) { $journal = $journalDao->getJournal($pendingIssue['journal_id']); $journalsWithPendingIssues[$journal->getJournalTitle()] = $journal->getId(); } ksort($journalsWithPendingIssues); $pendingIssuesList = $CBPPlatformDao->getPendingIssues($filter); function in_array_r($needle, $haystack) { foreach ($haystack as $item) { if ($item === $needle || is_array($item) && in_array_r($needle, $item)) { return true; } } return false; } //%CBP% if the admin has asked to publish a book, validate its prescence in the pending array if (Request::getUserVar('publish')) { $issueId = Request::getUserVar('publish'); if (in_array_r($issueId, $pendingIssuesList)) { $issue = $issueDao->getIssueById($issueId); $issue->setPublished(1); $issue->setDatePublished(Core::getCurrentDate()); $issue->setCurrent(1); $issueDao->updateCurrentIssue($issue->getJournalId(), $issue); $CBPPlatformDao->setIssuePending($issueId, 0); //TODO enable CBP notifications // %CBP% send notifications to users that book has been published /*import('lib.pkp.classes.notification.NotificationManager'); $notificationManager = new NotificationManager(); $roleDao =& DAORegistry::getDAO('RoleDAO'); $notificationUsers = array(); $allUsers = $roleDao->getUsersByJournalId($issue->getJournalId()); while (!$allUsers->eof()) { $user =& $allUsers->next(); $notificationUsers[] = array('id' => $user->getId()); unset($user); } $url = Request::url(null, 'issue', 'current'); foreach ($notificationUsers as $userRole) { $notificationManager->createNotification( $userRole['id'], 'notification.type.issuePublished', null, $url, 1, NOTIFICATION_TYPE_PUBLISHED_ISSUE ); }*/ /*$notificationManager->sendToMailingList( $notificationManager->createNotification( 0, 'notification.type.issuePublished', null, $url, 1, NOTIFICATION_TYPE_PUBLISHED_ISSUE ) );*/ Request::redirect(Request::getRequestedJournalPath(), Request::getRequestedPage(), Request::getRequestedOp()); } } if (Request::getUserVar('issueId')) { $issueId = Request::getUserVar('issueId'); if (in_array_r($issueId, $pendingIssuesList)) { $comment = Request::getUserVar('comment'); $CBPPlatformDao->setReviewerIssueComment($issueId, $user->getUserId(), $comment); Request::redirect(Request::getRequestedJournalPath(), Request::getRequestedPage(), Request::getRequestedOp()); } } foreach ($pendingIssuesList as $pendingIssue) { $issues[] = $issueDao->getIssueById($pendingIssue['issue_id']); $issueComments[$pendingIssue['issue_id']] = $CBPPlatformDao->getReviewerIssueComments($pendingIssue['issue_id']); $issueObject = $CBPPlatformDao->getFedoraIssueObjectInformation($pendingIssue['issue_id']); $issueObjects[$pendingIssue['issue_id']]['pid'] = $issueObject['fedora_namespace'] . ":" . $issueObject['fedora_pid']; $issueObjects[$pendingIssue['issue_id']]['dsid'] = $issueObject['fedora_dsid']; $publishedArticles[$pendingIssue['issue_id']] = $publishedArticleDao->getPublishedArticles($pendingIssue['issue_id']); } $pendingIssues = $issues; $templateMgr->assign('journalsWithPendingIssues', $journalsWithPendingIssues); $templateMgr->assign('pendingIssues', $pendingIssues); $templateMgr->assign('publishedArticles', $publishedArticles); $templateMgr->assign('issueObjects', $issueObjects); $templateMgr->assign('issueComments', $issueComments); $templateMgr->assign('user', $userDao); $templateMgr->assign('filter', $filter); $templateMgr->display('admin/issue.tpl'); }
/** * Enroll a user in a role. */ function enroll($args) { $this->validate(); $roleId = (int) (isset($args[0]) ? $args[0] : Request::getUserVar('roleId')); // Get a list of users to enroll -- either from the // submitted array 'users', or the single user ID in // 'userId' $users = Request::getUserVar('users'); if (!isset($users) && Request::getUserVar('userId') != null) { $users = array(Request::getUserVar('userId')); } $journalDao =& DAORegistry::getDAO('JournalDAO'); $journal =& $journalDao->getJournalByPath(Request::getRequestedJournalPath()); $roleDao =& DAORegistry::getDAO('RoleDAO'); $rolePath = $roleDao->getRolePath($roleId); if ($users != null && is_array($users) && $rolePath != '' && $rolePath != 'admin') { for ($i = 0; $i < count($users); $i++) { if (!$roleDao->userHasRole($journal->getId(), $users[$i], $roleId)) { $role = new Role(); $role->setJournalId($journal->getId()); $role->setUserId($users[$i]); $role->setRoleId($roleId); $roleDao->insertRole($role); } } } Request::redirect(null, null, 'people', empty($rolePath) ? null : $rolePath . 's'); }
/** * Enroll a user in a role. * Last update: EL on February 14th 2013 */ function enroll($args) { $this->validate(); $roleId = (int) (isset($args[0]) ? $args[0] : Request::getUserVar('roleId')); // Get a list of users to enroll -- either from the // submitted array 'users', or the single user ID in // 'userId' $users = Request::getUserVar('users'); if (!isset($users) && Request::getUserVar('userId') != null) { $users = array(Request::getUserVar('userId')); } $journalDao =& DAORegistry::getDAO('JournalDAO'); $journal =& $journalDao->getJournalByPath(Request::getRequestedJournalPath()); $roleDao =& DAORegistry::getDAO('RoleDAO'); $rolePath = $roleDao->getRolePath($roleId); // Added by EL on April 24, 2012 // Management of the ERC Member Status $sectionEditorsDAO =& DAORegistry::getDAO('SectionEditorsDAO'); // Added by EL on February 13th 2013 // Management of the erc for the reviewers $ercReviewersDAO =& DAORegistry::getDAO('ErcReviewersDAO'); $ercMemberStatus =& Request::getUserVar('ercMemberStatus'); $ethicsCommitteeId =& Request::getUserVar('ethicsCommittee'); // the role path "reviewer" includes all the erc members but also the secretaries // if the enrollment concern secretaries, the role path and the role id is further modified if ($users != null && is_array($users) && $rolePath == 'reviewer') { // Check if info provided if (!empty($ethicsCommitteeId) && !empty($ercMemberStatus) && $ethicsCommitteeId != "NA" && $ercMemberStatus != "NA") { if ($ercMemberStatus == "Chair" or $ercMemberStatus == "Vice-Chair" or $ercMemberStatus == "Member") { $reviewers = $ercReviewersDAO->getReviewersBySectionId($journal->getId(), $ethicsCommitteeId); $chairs = $ercReviewersDAO->getReviewersBySectionIdByStatus($journal->getId(), $ethicsCommitteeId, 1); $viceChairs = $ercReviewersDAO->getReviewersBySectionIdByStatus($journal->getId(), $ethicsCommitteeId, 2); // Here the number of members per committee is set to 20, // and of chair or vice-chair to 1 if (count($reviewers) + count($users) < 21 && $ercMemberStatus == "Member" || count($chairs) + count($users) < 2 && $ercMemberStatus == "Chair" || count($viceChairs) + count($users) < 2 && $ercMemberStatus == "Vice-Chair") { for ($i = 0; $i < count($users); $i++) { if (!$ercReviewersDAO->ercReviewerExists($journal->getId(), $ethicsCommitteeId, $users[$i])) { if (!$roleDao->roleExists($journal->getId(), $users[$i], $roleId)) { // Create the role and insert it $role = new Role(); $role->setJournalId($journal->getId()); $role->setUserId($users[$i]); $role->setRoleId($roleId); $roleDao->insertRole($role); } // Assign the reviewer to the specified committee if ($ercMemberStatus == "Chair") { $status = 1; } elseif ($ercMemberStatus == "Vice-Chair") { $status = 2; } elseif ($ercMemberStatus == "Member") { $status = 3; } $ercReviewersDAO->insertReviewer($journal->getId(), $ethicsCommitteeId, $users[$i], $status); } } } } elseif ($ercMemberStatus == "Secretary") { //Get all the secretaries already enrolled in this particular committee $secretaries = $sectionEditorsDAO->getEditorsBySectionId($journal->getId(), $ethicsCommitteeId); // The role id and the role path is modified $roleId = ROLE_ID_SECTION_EDITOR; $rolePath = $roleDao->getRolePath($roleId); //Here, the number of secretaries per committee is limited to 5 if (count($secretaries) + count($users) < 6) { for ($i = 0; $i < count($users); $i++) { if (!$roleDao->roleExists($journal->getId(), $users[$i], $roleId) && !$sectionEditorsDAO->ercSecretaryExists($ethicsCommitteeId, $users[$i])) { // Create the role and insert it $role = new Role(); $role->setJournalId($journal->getId()); $role->setUserId($users[$i]); $role->setRoleId($roleId); $roleDao->insertRole($role); // Assign the secretary to the specified committee $sectionEditorsDAO->insertEditor($journal->getId(), $ethicsCommitteeId, $users[$i], 1, 1); } } } } } else { Request::redirect(null, null, 'enrollSearch'); } } else { if ($users != null && is_array($users) && $roleId == 'ExtReviewer') { $roleId = '4096'; $rolePath = 'extReviewer'; $userDAO =& DAORegistry::getDAO('UserDAO'); for ($i = 0; $i < count($users); $i++) { if (!$ercReviewersDAO->ercReviewerExists($journal->getId(), 0, $users[$i])) { if (!$roleDao->roleExists($journal->getId(), $users[$i], $roleId)) { $role = new Role(); $role->setJournalId($journal->getId()); $role->setUserId($users[$i]); $role->setRoleId($roleId); $roleDao->insertRole($role); } $ercReviewersDAO->insertReviewer($journal->getId(), 0, $users[$i], 0); } } } elseif ($users != null && is_array($users) && $rolePath != '') { for ($i = 0; $i < count($users); $i++) { if (!$roleDao->roleExists($journal->getId(), $users[$i], $roleId)) { $role = new Role(); $role->setJournalId($journal->getId()); $role->setUserId($users[$i]); $role->setRoleId($roleId); $roleDao->insertRole($role); } } } } Request::redirect(null, null, 'people', empty($rolePath) ? null : $rolePath . 's'); }
/** * Assigns values to e-mail parameters. * @param $paramArray array * @return void */ function assignParams($paramArray = array()) { // Add commonly-used variables to the list if (isset($this->journal)) { // FIXME Include affiliation, title, etc. in signature? $paramArray['journalName'] = $this->journal->getLocalizedTitle(); $paramArray['principalContactSignature'] = $this->journal->getSetting('contactName'); } else { $site =& Request::getSite(); $paramArray['principalContactSignature'] = $site->getLocalizedContactName(); } if (!isset($paramArray['journalUrl'])) { $paramArray['journalUrl'] = Request::url(Request::getRequestedJournalPath()); } return parent::assignParams($paramArray); }
/** * Generate a unique-ish hash of the page's identity, including all * context that differentiates it from other similar pages (e.g. all * articles vs. all articles starting with "l"). * @param $contextData array A set of information identifying the page * @return string hash */ function hashPageContext($contextData = array()) { return md5(Request::getRequestedJournalPath() . ',' . Request::getRequestedPage() . ',' . Request::getRequestedOp() . ',' . serialize($contextData)); }