Esempio n. 1
0
 /**
  * Display an RT search context
  * @param $args array
  * @param $request Request
  */
 function context($args, &$request)
 {
     $router =& $request->getRouter();
     $this->setupTemplate();
     $paperId = isset($args[0]) ? $args[0] : 0;
     $galleyId = isset($args[1]) ? (int) $args[1] : 0;
     $contextId = isset($args[2]) ? (int) $args[2] : 0;
     $this->validate($request, $paperId, $galleyId);
     $conference =& $router->getContext($request, CONTEXT_CONFERENCE);
     $paper =& $this->paper;
     $rtDao =& DAORegistry::getDAO('RTDAO');
     $conferenceRt =& $rtDao->getConferenceRTByConference($conference);
     $context =& $rtDao->getContext($contextId);
     if ($context) {
         $version =& $rtDao->getVersion($context->getVersionId(), $conference->getId());
     }
     if (!$context || !$version || !$conferenceRt || $conferenceRt->getVersion() == null || $conferenceRt->getVersion() != $context->getVersionId()) {
         $request->redirect(null, null, 'paper', 'view', array($paperId, $galleyId));
     }
     // Deal with the post and URL parameters for each search
     // so that the client browser can properly submit the forms
     // with a minimum of client-side processing.
     $searches = array();
     // Some searches use parameters other than the "default" for
     // the search (i.e. keywords, author name, etc). If additional
     // parameters are used, they should be displayed as part of the
     // form for ALL searches in that context.
     $searchParams = array();
     foreach ($context->getSearches() as $search) {
         $params = array();
         $searchParams += RTHandler::getParameterNames($search->getSearchUrl());
         if ($search->getSearchPost()) {
             $searchParams += RTHandler::getParameterNames($search->getSearchPost());
             $postParams = explode('&', $search->getSearchPost());
             foreach ($postParams as $param) {
                 // Split name and value from each parameter
                 $nameValue = explode('=', $param);
                 if (!isset($nameValue[0])) {
                     break;
                 }
                 $name = trim($nameValue[0]);
                 $value = trim(isset($nameValue[1]) ? $nameValue[1] : '');
                 if (!empty($name)) {
                     $params[] = array('name' => $name, 'value' => $value);
                 }
             }
         }
         $search->postParams = $params;
         $searches[] = $search;
     }
     // Remove duplicate extra form elements and get their values
     $searchParams = array_unique($searchParams);
     $searchValues = array();
     foreach ($searchParams as $key => $param) {
         switch ($param) {
             case 'author':
                 $searchValues[$param] = $paper->getAuthorString();
                 break;
             case 'coverageGeo':
                 $searchValues[$param] = $paper->getLocalizedCoverageGeo();
                 break;
             case 'title':
                 $searchValues[$param] = $paper->getLocalizedTitle();
                 break;
             default:
                 // UNKNOWN parameter! Remove it from the list.
                 unset($searchParams[$key]);
                 break;
         }
     }
     $templateMgr =& TemplateManager::getManager();
     $templateMgr->assign('paperId', $paperId);
     $templateMgr->assign('galleyId', $galleyId);
     $templateMgr->assign_by_ref('paper', $paper);
     $templateMgr->assign_by_ref('version', $version);
     $templateMgr->assign_by_ref('context', $context);
     $templateMgr->assign_by_ref('searches', $searches);
     $templateMgr->assign('searchParams', $searchParams);
     $templateMgr->assign('searchValues', $searchValues);
     $templateMgr->assign('defineTerm', $request->getUserVar('defineTerm'));
     $templateMgr->assign('keywords', explode(';', $paper->getLocalizedSubject()));
     $templateMgr->assign('coverageGeo', $paper->getLocalizedCoverageGeo());
     $templateMgr->assign_by_ref('conferenceSettings', $conference->getSettings());
     $templateMgr->display('rt/context.tpl');
 }
Esempio n. 2
0
 /**
  * Display the "finding references" search engine list
  */
 function findingReferences($args)
 {
     $articleId = isset($args[0]) ? $args[0] : 0;
     $galleyId = isset($args[1]) ? (int) $args[1] : 0;
     list($journal, $issue, $article) = RTHandler::validate($articleId, $galleyId);
     $rtDao =& DAORegistry::getDAO('RTDAO');
     $journalRt =& $rtDao->getJournalRTByJournal($journal);
     if (!$journalRt || !$journalRt->getFindingReferences()) {
         Request::redirect(null, Request::getRequestedPage());
     }
     $templateMgr =& TemplateManager::getManager();
     $templateMgr->assign('articleId', $articleId);
     $templateMgr->assign('galleyId', $galleyId);
     $templateMgr->assign_by_ref('journalRt', $journalRt);
     $templateMgr->assign_by_ref('article', $article);
     $templateMgr->display('rt/findingReferences.tpl');
 }