function getContents(&$templateMgr) { if (Request::getRequestedPage() . '/' . Request::getRequestedOp() !== 'record/view') { return ''; } return parent::getContents($templateMgr); }
/** * Handle a new request. */ function handleRequest() { if (!Config::getVar('general', 'installed') && pageRequiresInstall()) { // Redirect to installer if application has not been installed Request::redirect(null, 'install'); } // Determine the handler for this request $page = Request::getRequestedPage(); $op = Request::getRequestedOp(); $sourceFile = sprintf('pages/%s/index.php', $page); // If a hook has been registered to handle this page, give it the // opportunity to load required resources and set HANDLER_CLASS. if (!HookRegistry::call('LoadHandler', array(&$page, &$op, &$sourceFile))) { if (file_exists($sourceFile)) { require $sourceFile; } else { require 'pages/index/index.php'; } } if (!defined('SESSION_DISABLE_INIT')) { // Initialize session $sessionManager =& SessionManager::getManager(); $session =& $sessionManager->getUserSession(); } $methods = array_map('strtolower', get_class_methods(HANDLER_CLASS)); if (in_array(strtolower($op), $methods)) { // Call a specific operation call_user_func(array(HANDLER_CLASS, $op), Request::getRequestedArgs()); } else { // Call the selected handler's index operation call_user_func(array(HANDLER_CLASS, 'index'), Request::getRequestedArgs()); } }
/** * Get the HTML contents for this block. * @param $templateMgr object * @return $string */ function getContents(&$templateMgr) { $journal =& Request::getJournal(); $cacheManager =& CacheManager::getManager(); $cache =& $cacheManager->getFileCache('keywords_' . AppLocale::getLocale(), $journal->getId(), array(&$this, '_cacheMiss')); // If the cache is older than a couple of days, regenerate it if (time() - $cache->getCacheTime() > 60 * 60 * 24 * KEYWORD_BLOCK_CACHE_DAYS) { $cache->flush(); } $keywords =& $cache->getContents(); if (empty($keywords)) { return ''; } // Get the max occurrences for all keywords $maxOccurs = array_shift(array_values($keywords)); // Now sort the array alphabetically ksort($keywords); $page = Request::getRequestedPage(); $op = Request::getRequestedOp(); $templateMgr->assign_by_ref('cloudKeywords', $keywords); $templateMgr->assign_by_ref('maxOccurs', $maxOccurs); if ($page == 'index' && $op == 'index' || $page == 'issue' || $page == 'search') { return parent::getContents($templateMgr); } else { return ''; } }
/** * Log a request for an lineable galley (e.g. text file). */ function logRequestInline($hookName, $args) { $journal =& Request::getJournal(); if (!$journal || Request::getRequestedPage() != 'article' || Request::getRequestedOp() != 'view') { return false; } $counterReportDao =& DAORegistry::getDAO('CounterReportDAO'); $counterReportDao->incrementCount($journal->getJournalId(), (int) strftime('%Y'), (int) strftime('%m'), false, false); }
/** * Get the HTML contents for this block. * @param $templateMgr object * @return $string */ function getContents(&$templateMgr) { // Only show the block for article pages. switch (Request::getRequestedPage() . '/' . Request::getRequestedOp()) { case 'article/view': return parent::getContents($templateMgr); default: return ''; } }
function callback($hookName, $args) { $templateMgr =& $args[0]; $op = Request::getRequestedOp(); $currentJournal = $templateMgr->get_template_vars('currentJournal'); if (!empty($currentJournal) and ($op == 'viewMetadata' or $op == 'submit')) { $additionalHeadData = $templateMgr->get_template_vars('additionalHeadData'); $additionalHeadData .= $templateMgr->fetch('../plugins/generic/jsonKeywords/jsonKeywordsHeader.tpl'); $templateMgr->assign('additionalHeadData', $additionalHeadData); } return false; }
/** * 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'); }
/** * Override the block contents based on the current role being * browsed. * @return string */ function getBlockTemplateFilename() { $conference =& Request::getConference(); $schedConf =& Request::getSchedConf(); $user =& Request::getUser(); if (!$conference || !$schedConf || !$user) { return null; } $userId = $user->getId(); $conferenceId = $conference->getId(); $schedConfId = $schedConf->getId(); $templateMgr =& TemplateManager::getManager(); switch (Request::getRequestedPage()) { case 'author': switch (Request::getRequestedOp()) { case 'submit': case 'saveSubmit': case 'submitSuppFile': case 'saveSubmitSuppFile': case 'deleteSubmitSuppFile': // Block disabled for submission return null; default: $authorSubmissionDao =& DAORegistry::getDAO('AuthorSubmissionDAO'); $submissionsCount = $authorSubmissionDao->getSubmissionsCount($userId, $schedConfId); $templateMgr->assign('submissionsCount', $submissionsCount); return 'author.tpl'; } case 'director': if (Request::getRequestedOp() == 'index') { return null; } $directorSubmissionDao =& DAORegistry::getDAO('DirectorSubmissionDAO'); $submissionsCount =& $directorSubmissionDao->getDirectorSubmissionsCount($schedConfId); $templateMgr->assign('submissionsCount', $submissionsCount); return 'director.tpl'; case 'trackDirector': $trackDirectorSubmissionDao =& DAORegistry::getDAO('TrackDirectorSubmissionDAO'); $submissionsCount =& $trackDirectorSubmissionDao->getTrackDirectorSubmissionsCount($userId, $schedConfId); $templateMgr->assign('submissionsCount', $submissionsCount); return 'trackDirector.tpl'; case 'reviewer': $reviewerSubmissionDao =& DAORegistry::getDAO('ReviewerSubmissionDAO'); $submissionsCount = $reviewerSubmissionDao->getSubmissionsCount($userId, $schedConfId); $templateMgr->assign('submissionsCount', $submissionsCount); return 'reviewer.tpl'; } return null; }
function register($category, $path) { $success = parent::register($category, $path); if ($success && $this->getEnabled()) { # Hide reviewer name if (Request::getRequestedOp() == 'submissionReview') { HookRegistry::register('ReviewAssignmentDAO::_fromRow', array($this, 'hideReviewerNames')); } # Hide logs HookRegistry::register('EmailLogDAO::build', array($this, 'hideEmailLog')); HookRegistry::register('EventLogDAO::build', array($this, 'hideEventLog')); # Hook user profile edit, if new email > update all author table matching emails ???? problems? } return $success; }
function index($args) { Request::redirect(null, null, 'view', Request::getRequestedOp()); }
/** * Override the block contents based on the current role being * browsed. * @return string */ function getBlockTemplateFilename() { $journal =& Request::getJournal(); $user =& Request::getUser(); if (!$journal || !$user) { return null; } $userId = $user->getId(); $journalId = $journal->getId(); $templateMgr =& TemplateManager::getManager(); switch (Request::getRequestedPage()) { case 'author': switch (Request::getRequestedOp()) { case 'submit': case 'saveSubmit': case 'submitSuppFile': case 'saveSubmitSuppFile': case 'deleteSubmitSuppFile': case 'expediteSubmission': // Block disabled for submission return null; default: $authorSubmissionDao =& DAORegistry::getDAO('AuthorSubmissionDAO'); $submissionsCount = $authorSubmissionDao->getSubmissionsCount($userId, $journalId); $templateMgr->assign('submissionsCount', $submissionsCount); return 'author.tpl'; } case 'copyeditor': $copyeditorSubmissionDao =& DAORegistry::getDAO('CopyeditorSubmissionDAO'); $submissionsCount = $copyeditorSubmissionDao->getSubmissionsCount($userId, $journalId); $templateMgr->assign('submissionsCount', $submissionsCount); return 'copyeditor.tpl'; case 'layoutEditor': $layoutEditorSubmissionDao =& DAORegistry::getDAO('LayoutEditorSubmissionDAO'); $submissionsCount = $layoutEditorSubmissionDao->getSubmissionsCount($userId, $journalId); $templateMgr->assign('submissionsCount', $submissionsCount); return 'layoutEditor.tpl'; case 'editor': if (Request::getRequestedOp() == 'index') { return null; } $editorSubmissionDao =& DAORegistry::getDAO('EditorSubmissionDAO'); $submissionsCount =& $editorSubmissionDao->getEditorSubmissionsCount($journal->getId()); $templateMgr->assign('submissionsCount', $submissionsCount); return 'editor.tpl'; case 'sectionEditor': $sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO'); $submissionsCount =& $sectionEditorSubmissionDao->getSectionEditorSubmissionsCount($user->getSecretaryCommitteeId(), $journalId); $templateMgr->assign('submissionsCount', $submissionsCount); return 'sectionEditor.tpl'; case 'proofreader': $proofreaderSubmissionDao =& DAORegistry::getDAO('ProofreaderSubmissionDAO'); $submissionsCount = $proofreaderSubmissionDao->getSubmissionsCount($userId, $journalId); $templateMgr->assign('submissionsCount', $submissionsCount); return 'proofreader.tpl'; case 'reviewer': $reviewerSubmissionDao =& DAORegistry::getDAO('ReviewerSubmissionDAO'); $submissionsCount = $reviewerSubmissionDao->getSubmissionsCount($userId, $journalId); $templateMgr->assign('submissionsCount', $submissionsCount); return 'reviewer.tpl'; } return null; }
function index() { Request::redirect(null, null, 'PaperPackageEdPlugin', Request::getRequestedOp()); }
/** * Hook callback function for TemplateManager::display * @param $hookName string * @param $args array * @return boolean */ function callback($hookName, $args) { // Only pages requests interest us here $request =& Registry::get('request'); if (!is_a($request->getRouter(), 'PKPPageRouter')) { return null; } $templateManager =& $args[0]; $page = Request::getRequestedPage(); $op = Request::getRequestedOp(); $enableFields = $this->getEnableFields($templateManager, $page, $op); if (!empty($enableFields)) { $baseUrl = $templateManager->get_template_vars('baseUrl'); $additionalHeadData = $templateManager->get_template_vars('additionalHeadData'); $enableFields = join(',', $enableFields); $allLocales = Locale::getAllLocales(); $localeList = array(); foreach ($allLocales as $key => $locale) { $localeList[] = String::substr($key, 0, 2); } if (Validation::isSiteAdmin() || Validation::isJournalManager()) { $tinymceScript = ' <script language="javascript" type="text/javascript" src="' . $baseUrl . '/' . TINYMCE_JS_PATH . '/tiny_mce_gzip.js"></script> <script language="javascript" type="text/javascript"> tinyMCE_GZ.init({ relative_urls : false, convert_urls : false, plugins : "paste,ibrowser,fullscreen,table", forced_root_block : "p", force_p_newlines : true, force_br_newlines : false, themes : "advanced", languages : "' . join(',', $localeList) . '", disk_cache : true }); </script> <script language="javascript" type="text/javascript"> tinyMCE.init({ entity_encoding : "raw", plugins : "paste,ibrowser,fullscreen,table", mode : "exact", language : "' . String::substr(Locale::getLocale(), 0, 2) . '", elements : "' . $enableFields . '", relative_urls : false, convert_urls : false, forced_root_block : "p", force_br_newlines : false, force_p_newlines : true, paste_auto_cleanup_on_paste : true, apply_source_formatting : false, theme : "advanced", theme_advanced_buttons1 : "newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,forecolor,backcolor,|,formatselect,fontselect,fontsizeselect", theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,ibrowser,code,|,sub,sup,|,charmap,|,fullscreen", theme_advanced_buttons3 : "tablecontrols" }); </script>'; } else { $tinymceScript = ' <script language="javascript" type="text/javascript" src="' . $baseUrl . '/' . TINYMCE_JS_PATH . '/tiny_mce_gzip.js"></script> <script language="javascript" type="text/javascript"> tinyMCE_GZ.init({ relative_urls : false, plugins : "paste,fullscreen,table", forced_root_block : "p", force_p_newlines : true, force_br_newlines : false, themes : "advanced", languages : "' . join(',', $localeList) . '", disk_cache : true }); </script> <script language="javascript" type="text/javascript"> tinyMCE.init({ entity_encoding : "raw", plugins : "paste,fullscreen,table", mode : "exact", language : "' . String::substr(Locale::getLocale(), 0, 2) . '", elements : "' . $enableFields . '", relative_urls : false, forced_root_block : "p", force_p_newlines : true, force_br_newlines : false, paste_auto_cleanup_on_paste : true, apply_source_formatting : false, theme : "advanced", theme_advanced_buttons1 : "newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,forecolor,backcolor,|,formatselect,fontselect,fontsizeselect", theme_advanced_buttons2 : "", theme_advanced_buttons3 : "" }); </script>'; } $templateManager->assign('additionalHeadData', $additionalHeadData . "\n" . $tinymceScript); } return false; }
/** * 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'); }
/** * Index handler * @param $args array * @param $request Request */ function index($args, &$request) { $router =& $request->getRouter(); $journal =& $router->getContext($request); $op = Request::getRequestedOp(&$request); $plugin =& PluginRegistry::getPlugin('generic', 'OrcidProfilePlugin'); $params = $request->getQueryArray(); $json = array(); $orcid = ''; if (isset($params['q'])) { if (strpos($params['q'], '@') !== FALSE) { // email query $curl = curl_init(); curl_setopt_array($curl, array(CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => 'http://pub.orcid.org/v1.2/search/orcid-bio/?q=email:' . $params['q'], CURLOPT_HTTPHEADER => array('Accept: application/json'))); $result = curl_exec($curl); $info = curl_getinfo($curl); if ($info['http_code'] == 200) { $json = json_decode($result, true); } // extract ORCID from json if (isset($json['orcid-search-results']['orcid-search-result'][0]['orcid-profile']['orcid-identifier']['path'])) { $orcid = $json['orcid-search-results']['orcid-search-result'][0]['orcid-profile']['orcid-identifier']['path']; } } else { // orcid query import('lib.pkp.classes.validation.ValidatorORCID'); $validator = new ValidatorORCID(); if ($validator->isValid($params['q'])) { $orcid = substr($params['q'], -19); } else { $orcid = $params['q']; } } if ($orcid) { $curl = curl_init(); curl_setopt_array($curl, array(CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => 'http://pub.orcid.org/v1.2/' . $orcid . '/orcid-profile', CURLOPT_HTTPHEADER => array('Accept: application/json'))); $result = curl_exec($curl); $info = curl_getinfo($curl); if ($info['http_code'] == 200) { $json = json_decode($result, true); } } } else { } // TODO: switch back to JSON content-type header('Content-type: application/json'); $return = array(); if ($orcid) { $return['orcid'] = 'http://orcid.org/' . $orcid; } if (isset($json['orcid-profile']['orcid-bio']['personal-details']['family-name']['value'])) { $return['lastName'] = $json['orcid-profile']['orcid-bio']['personal-details']['family-name']['value']; } if (isset($json['orcid-profile']['orcid-bio']['personal-details']['given-names']['value'])) { $return['firstName'] = $json['orcid-profile']['orcid-bio']['personal-details']['given-names']['value']; } $return['affiliation'] = ''; if (isset($json['orcid-profile']['orcid-activities']['affiliations']['affiliation'][0]['organization']['name'])) { $return['affiliation'] .= $json['orcid-profile']['orcid-activities']['affiliations']['affiliation'][0]['organization']['name'] . "\n"; } if (isset($json['orcid-profile']['orcid-activities']['affiliations']['affiliation'][0]['department-name'])) { $return['affiliation'] .= $json['orcid-profile']['orcid-activities']['affiliations']['affiliation'][0]['organization']['address']['city'] . "\n"; } if (isset($json['orcid-profile']['orcid-activities']['affiliations']['affiliation'][0]['organization']['address']['region'])) { $return['affiliation'] .= $json['orcid-profile']['orcid-activities']['affiliations']['affiliation'][0]['organization']['address']['region'] . "\n"; } if (!$return['affiliation']) { unset($return['affiliation']); } if (isset($json['orcid-profile']['orcid-bio']['contact-details']['email'][0]['value'])) { $return['email'] = $json['orcid-profile']['orcid-bio']['contact-details']['email'][0]['value']; } if (isset($json['orcid-profile']['orcid-bio']['researcher-urls']['researcher-url'][0]['url']['value'])) { $return['userUrl'] = $json['orcid-profile']['orcid-bio']['researcher-urls']['researcher-url'][0]['url']['value']; } if (isset($json['orcid-profile']['orcid-activities']['affiliations']['affiliation']['organization']['address']['country'])) { $return['country'] = $json['orcid-profile']['orcid-activities']['affiliations']['affiliation']['organization']['address']['country']; } // TODO: this should be localized, and may need special treatment because of TinyMCE if (isset($json['orcid-profile']['orcid-bio']['biography']['value'])) { $return['biography'] = $json['orcid-profile']['orcid-bio']['biography']['value']; } print json_encode($return); }
/** * Enable TinyMCE support for object for review text fields. * @param $hookName string (TinyMCEPlugin::getEnableFields) * @param $params array (plugin, fields) * @return boolean false to continue processing subsequent hooks */ function enableTinyMCE($hookName, $params) { $fields =& $params[1]; $page = Request::getRequestedPage(); $op = Request::getRequestedOp(); $reviewObjectTypeId = (int) Request::getUserVar('reviewObjectTypeId'); $reviewObjectMetadataDao =& DAORegistry::getDAO('ReviewObjectMetadataDAO'); $textareaReviewObjectMetadataIds = $reviewObjectMetadataDao->getTextareaReviewObjectMetadataIds($reviewObjectTypeId); if ($page == 'editor') { if ($op == 'createReviewObjectType' || $op == 'editReviewObjectType' || $op == 'updateReviewObjectType') { $fields[] = 'description'; } elseif ($op == 'previewReviewObjectType') { $fields[] = 'textarea_metadata_type'; } elseif ($op == 'createObjectForReview' || $op == 'editObjectForReview' || $op == 'updateObjectForReview') { $fields[] = 'notes'; foreach ($textareaReviewObjectMetadataIds as $metadataId) { $fields[] = "ofrSettings-{$metadataId}"; } } elseif ($op == 'objectsForReviewSettings') { $fields[] = 'additionalInformation'; } } return false; }
/** * Hook callback function for TemplateManager::display * @param $hookName string * @param $args array * @return boolean */ function displayCallback($hookName, $args) { $page = Request::getRequestedPage(); $op = Request::getRequestedOp(); $scripts = JQueryPlugin::getEnabledScripts($page, $op); if (empty($scripts)) { return null; } $templateManager =& $args[0]; $additionalHeadData = $templateManager->get_template_vars('additionalHeadData'); $baseUrl = $templateManager->get_template_vars('baseUrl'); $jQueryScript = JQueryPlugin::addScripts($baseUrl, $scripts); $templateManager->assign('additionalHeadData', $additionalHeadData . "\n" . $jQueryScript); }
function index() { Request::redirect(null, null, 'PackagesPlugin', Request::getRequestedOp()); // Request::redirect(null, null, 'view', Request::getRequestedOp()); }
/** * Return an instance of the template manager. * @param $request PKPRequest FIXME: is optional for backwards compatibility only - make mandatory * @return TemplateManager the template manager object */ function &getManager($request = null) { $instance =& Registry::get('templateManager', true, null); if ($instance === null) { $instance = new TemplateManager($request); } $supportedLocales = AppLocale::getSupportedLocales(); $instance->assign('supportedLocales', $supportedLocales); $instance->assign('localePrecedence', AppLocale::getLocalePrecedence()); $instance->assign('requestedPage', Request::getRequestedPage()); $instance->assign('requestedOp', Request::getRequestedOp()); $conference =& Request::getConference(); if (isset($conference)) { $instance->assign('conferenceId', $conference->getId()); $instance->assign('isConferenceManager', Validation::isConferenceManager($conference->getId())); $instance->assign('analyticsTrackingID', $conference->getSetting('analyticsTrackingID')); $schedConf =& Request::getSchedConf(); if (isset($schedConf)) { $instance->assign('isDirector', Validation::isDirector($conference->getId(), $schedConf->getId())); $instance->assign('isTrackDirector', Validation::isTrackDirector($conference->getId(), $schedConf->getId())); $instance->assign('isAuthor', Validation::isAuthor($conference->getId(), $schedConf->getId())); $registrationDao =& DAORegistry::getDAO('RegistrationDAO'); $user = Request::getUser(); if (isset($user)) { $instance->assign('isRegistrationUser', $registrationDao->isValidRegistrationByUser($user->getUserId(), $schedConf->getId())); } } } AppLocale::requireComponents(array(LOCALE_COMPONENT_OCS_MANAGER, LOCALE_COMPONENT_OCS_ADMIN, LOCALE_COMPONENT_OCS_DIRECTOR, LOCALE_COMPONENT_PKP_MANAGER, LOCALE_COMPONENT_PKP_SUBMISSION)); // FIXME: For timeline constants return $instance; }
/** * Enable TinyMCE support for book for review text fields. */ function enableTinyMCE($hookName, $params) { $fields =& $params[1]; $page = Request::getRequestedPage(); $op = Request::getRequestedOp(); if ($page == 'editor' && ($op == 'createBookForReview' || $op == 'editBookForReview' || $op == 'updateBookForReview')) { $fields[] = 'description'; $fields[] = 'notes'; } elseif ($page == 'editor' && $op == 'booksForReviewSettings') { $fields[] = 'additionalInformation'; } return false; }
/** * 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)); }
/** * Hook callback function for TemplateManager::display * @param $hookName string * @param $args array * @return boolean */ function callback($hookName, $args) { $templateManager =& $args[0]; $page = Request::getRequestedPage(); $op = Request::getRequestedOp(); $config = $this->getEnableFields($templateManager, $page, $op); $enableFields = $config["fields"]; $features = $config["features"]; if (!empty($enableFields)) { $baseUrl = $templateManager->get_template_vars('baseUrl'); $additionalHeadData = $templateManager->get_template_vars('additionalHeadData'); $enableFields = join(',', $enableFields); $allLocales = AppLocale::getAllLocales(); $localeList = array(); foreach ($allLocales as $key => $locale) { $localeList[] = String::substr($key, 0, 2); } $tinymceScript = ' <script language="javascript" type="text/javascript" src="' . $baseUrl . '/' . TINYMCE_JS_PATH . '/tiny_mce_gzip.js"></script> <script language="javascript" type="text/javascript"> tinyMCE_GZ.init({ relative_urls : "false", plugins : "paste,fullscreen,jbimages", themes : "advanced", languages : "' . join(',', $localeList) . '", disk_cache : true }); </script>'; if ($features === "full") { $tinymceScript .= '<script language="javascript" type="text/javascript"> tinyMCE.init({ entity_encoding : "raw", plugins : "paste,fullscreen,jbimages", mode : "exact", language : "' . String::substr(AppLocale::getLocale(), 0, 2) . '", elements : "' . $enableFields . '", relative_urls : false, forced_root_block : false, paste_auto_cleanup_on_paste : true, apply_source_formatting : false, theme : "advanced", theme_advanced_toolbar_location : "top", theme_advanced_buttons1 : "cut,copy,paste,|,fontsizeselect,forecolor,bold,italic,underline,bullist,numlist,aligncenter,|,jbimages,link,unlink,code,fullscreen", theme_advanced_buttons2 : "", theme_advanced_buttons3 : "", }); </script>'; } else { $tinymceScript .= '<script language="javascript" type="text/javascript"> tinyMCE.init({ entity_encoding : "raw", plugins : "paste,fullscreen", mode : "exact", language : "' . String::substr(AppLocale::getLocale(), 0, 2) . '", elements : "' . $enableFields . '", relative_urls : false, forced_root_block : false, paste_auto_cleanup_on_paste : true, apply_source_formatting : false, theme : "advanced", theme_advanced_toolbar_location : "top", theme_advanced_buttons1 : "cut,copy,paste,|,forecolor,bold,italic,underline,bullist,numlist,aligncenter,|,link,unlink,fullscreen", theme_advanced_buttons2 : "", theme_advanced_buttons3 : "", }); </script>'; } $templateManager->assign('additionalHeadData', $additionalHeadData . "\n" . $tinymceScript); } return false; }
/** * Validate that user has permissions to manage e-mail templates. * Redirects to user index page if not properly authenticated. */ function validate() { parent::validate(); $schedConf =& Request::getSchedConf(); // If the user is a Conference Manager, but has specified a scheduled conference, // redirect so no scheduled conference is present (otherwise they would end up managing // scheduled conference e-mails.) if ($schedConf && !Validation::isConferenceManager()) { Request::redirect(null, 'index', Request::getRequestedPage(), Request::getRequestedOp()); } return true; }
/** * 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'); }
/** * Hook callback function for TemplateManager::display * @param $hookName string * @param $args array * @return boolean */ function callback($hookName, $args) { $templateManager =& $args[0]; $page = Request::getRequestedPage(); $op = Request::getRequestedOp(); $enableFields = $this->getEnableFields($templateManager, $page, $op); if (!empty($enableFields)) { $baseUrl = $templateManager->get_template_vars('baseUrl'); $additionalHeadData = $templateManager->get_template_vars('additionalHeadData'); $enableFields = join(',', $enableFields); $allLocales = Locale::getAllLocales(); $localeList = array(); foreach ($allLocales as $key => $locale) { $localeList[] = String::substr($key, 0, 2); } $tinymceScript = ' <script language="javascript" type="text/javascript" src="' . $baseUrl . '/' . TINYMCE_JS_PATH . '/tiny_mce_gzip.js"></script> <script language="javascript" type="text/javascript"> tinyMCE_GZ.init({ relative_urls : "false", plugins : "paste,ibrowser,fullscreen", themes : "advanced", languages : "' . join(',', $localeList) . '", disk_cache : true }); </script> <script language="javascript" type="text/javascript"> tinyMCE.init({ entity_encoding : "raw", plugins : "paste,ibrowser,fullscreen", mode : "exact", language : "' . String::substr(Locale::getLocale(), 0, 2) . '", elements : "' . $enableFields . '", relative_urls : false, forced_root_block : false, apply_source_formatting : false, theme : "advanced", theme_advanced_buttons1 : "cut,copy,paste,pastetext,pasteword,|,bold,italic,underline,bullist,numlist,|,link,unlink,help,code,fullscreen,ibrowser", theme_advanced_buttons2 : "", theme_advanced_buttons3 : "" }); </script>'; $templateManager->assign('additionalHeadData', $additionalHeadData . "\n" . $tinymceScript); } return false; }
/** * 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(implode(',', Request::getRequestedContextPath()) . ',' . Request::getRequestedPage() . ',' . Request::getRequestedOp() . ',' . serialize($contextData)); }
/** * Build a URL into OJS. * @param $journalPath string Optional path for journal to use * @param $page string Optional name of page to invoke * @param $op string Optional name of operation to invoke * @param $path mixed Optional string or array of args to pass to handler * @param $params array Optional set of name => value pairs to pass as user parameters * @param $anchor string Optional name of anchor to add to URL * @param $escape boolean Whether or not to escape ampersands for this URL; default false. */ function url($journalPath = null, $page = null, $op = null, $path = null, $params = null, $anchor = null, $escape = false) { $pathInfoDisabled = !Request::isPathInfoEnabled(); $amp = $escape ? '&' : '&'; $prefix = $pathInfoDisabled ? $amp : '?'; // Establish defaults for page and op $defaultPage = Request::getRequestedPage(); $defaultOp = Request::getRequestedOp(); // If a journal has been specified, don't supply default // page or op. if ($journalPath) { $journalPath = rawurlencode($journalPath); $defaultPage = null; $defaultOp = null; } else { $journal =& Request::getJournal(); if ($journal) { $journalPath = $journal->getPath(); } else { $journalPath = 'index'; } } // Get overridden base URLs (if available). $overriddenBaseUrl = Config::getVar('general', "base_url[{$journalPath}]"); // If a page has been specified, don't supply a default op. if ($page) { $page = rawurlencode($page); $defaultOp = null; } else { $page = $defaultPage; } // Encode the op. if ($op) { $op = rawurlencode($op); } else { $op = $defaultOp; } // Process additional parameters $additionalParams = ''; if (!empty($params)) { foreach ($params as $key => $value) { if (is_array($value)) { foreach ($value as $element) { $additionalParams .= $prefix . $key . '%5B%5D=' . rawurlencode($element); $prefix = $amp; } } else { $additionalParams .= $prefix . $key . '=' . rawurlencode($value); $prefix = $amp; } } } // Process anchor if (!empty($anchor)) { $anchor = '#' . rawurlencode($anchor); } else { $anchor = ''; } if (!empty($path)) { if (is_array($path)) { $path = array_map('rawurlencode', $path); } else { $path = array(rawurlencode($path)); } if (!$page) { $page = 'index'; } if (!$op) { $op = 'index'; } } $pathString = ''; if ($pathInfoDisabled) { $joiner = $amp . 'path%5B%5D='; if (!empty($path)) { $pathString = $joiner . implode($joiner, $path); } if (empty($overriddenBaseUrl)) { $baseParams = "?journal={$journalPath}"; } else { $baseParams = ''; } if (!empty($page) || !empty($overriddenBaseUrl)) { $baseParams .= empty($baseParams) ? '?' : $amp . "page={$page}"; if (!empty($op)) { $baseParams .= $amp . "op={$op}"; } } } else { if (!empty($path)) { $pathString = '/' . implode('/', $path); } if (empty($overriddenBaseUrl)) { $baseParams = "/{$journalPath}"; } else { $baseParams = ''; } if (!empty($page)) { $baseParams .= "/{$page}"; if (!empty($op)) { $baseParams .= "/{$op}"; } } } return (empty($overriddenBaseUrl) ? Request::getIndexUrl() : $overriddenBaseUrl) . $baseParams . $pathString . $additionalParams . $anchor; }
/** * Hook callback function for TemplateManager::display * @param $hookName string * @param $args array * @return boolean */ function displayCallback($hookName, $args) { // Only pages can receive scripts $request =& Registry::get('request'); if (!is_a($request->getRouter(), 'PKPPageRouter')) { return null; } $page = Request::getRequestedPage(); $op = Request::getRequestedOp(); $scripts = JQueryPlugin::getEnabledScripts($page, $op); if (empty($scripts)) { return null; } $templateManager =& $args[0]; $additionalHeadData = $templateManager->get_template_vars('additionalHeadData'); $baseUrl = $templateManager->get_template_vars('baseUrl'); if (Config::getVar('general', 'enable_cdn')) { $jQueryScript = '<script src="http://www.google.com/jsapi"></script> <script> google.load("jquery", "1"); google.load("jqueryui", "1"); </script>'; } else { $jQueryScript = '<script type="text/javascript" src="' . Request::getBaseUrl() . '/lib/pkp/js/lib/jquery/jquery.min.js"></script> <script type="text/javascript" src="' . Request::getBaseUrl() . '/lib/pkp/js/lib/jquery/plugins/jqueryUi.min.js"></script>'; } $jQueryScript .= "\n" . JQueryPlugin::addScripts($baseUrl, $scripts); $templateManager->assign('additionalHeadData', $additionalHeadData . "\n" . $jQueryScript); }