function getContents(&$templateMgr)
 {
     if (Request::getRequestedPage() . '/' . Request::getRequestedOp() !== 'record/view') {
         return '';
     }
     return parent::getContents($templateMgr);
 }
Example #2
0
/**
 * 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 '';
     }
 }
Example #4
0
 /**
  * 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');
 }
Example #8
0
 /**
  * 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;
 }
Example #10
0
 function index($args)
 {
     Request::redirect(null, null, 'view', Request::getRequestedOp());
 }
Example #11
0
 /**
  * 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());
 }
Example #13
0
 /**
  * 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;
 }
Example #17
0
 /**
  * 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;
 }
Example #21
0
 /**
  * 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));
 }
Example #22
0
    /**
     * 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;
    }
Example #23
0
 /**
  * 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;
    }
Example #26
0
 /**
  * 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));
 }
Example #27
0
 /**
  * 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 ? '&amp;' : '&';
     $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;
 }
Example #28
0
    /**
     * 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);
    }