Beispiel #1
0
 /**
  * Displays the editor role selection page.
  */
 function index($args, $request)
 {
     $this->validate();
     $this->setupTemplate(EDITOR_SECTION_HOME);
     $templateMgr =& TemplateManager::getManager();
     $journal =& $request->getJournal();
     $journalId = $journal->getId();
     $user =& $request->getUser();
     $editorSubmissionDao =& DAORegistry::getDAO('EditorSubmissionDAO');
     $sectionDao =& DAORegistry::getDAO('SectionDAO');
     $sections =& $sectionDao->getSectionTitles($journal->getId());
     $templateMgr->assign('sectionOptions', array(0 => AppLocale::Translate('editor.allSections')) + $sections);
     $templateMgr->assign('fieldOptions', $this->_getSearchFieldOptions());
     $templateMgr->assign('dateFieldOptions', $this->_getDateFieldOptions());
     // Bring in the print_issue_id function (FIXME?)
     import('classes.issue.IssueAction');
     $issueAction = new IssueAction();
     $templateMgr->register_function('print_issue_id', array($issueAction, 'smartyPrintIssueId'));
     // If a search was performed, get the necessary info.
     if (array_shift($args) == 'search') {
         $rangeInfo = $this->getRangeInfo('submissions');
         // Get the user's search conditions, if any
         $searchField = $request->getUserVar('searchField');
         $dateSearchField = $request->getUserVar('dateSearchField');
         $searchMatch = $request->getUserVar('searchMatch');
         $search = $request->getUserVar('search');
         $sort = $request->getUserVar('sort');
         $sort = isset($sort) ? $sort : 'id';
         $sortDirection = $request->getUserVar('sortDirection');
         $sortDirection = isset($sortDirection) && ($sortDirection == 'ASC' || $sortDirection == 'DESC') ? $sortDirection : 'ASC';
         $fromDate = $request->getUserDateVar('dateFrom', 1, 1);
         if ($fromDate !== null) {
             $fromDate = date('Y-m-d H:i:s', $fromDate);
         }
         $toDate = $request->getUserDateVar('dateTo', 32, 12, null, 23, 59, 59);
         if ($toDate !== null) {
             $toDate = date('Y-m-d H:i:s', $toDate);
         }
         if ($sort == 'status') {
             $rawSubmissions =& $editorSubmissionDao->_getUnfilteredEditorSubmissions($journal->getId(), $request->getUserVar('section'), 0, $searchField, $searchMatch, $search, $dateSearchField, $fromDate, $toDate, null, null, $sort, $sortDirection);
             $submissions = new DAOResultFactory($rawSubmissions, $editorSubmissionDao, '_returnEditorSubmissionFromRow');
             // Sort all submissions by status, which is too complex to do in the DB
             $submissionsArray = $submissions->toArray();
             $compare = create_function('$s1, $s2', 'return strcmp($s1->getSubmissionStatus(), $s2->getSubmissionStatus());');
             usort($submissionsArray, $compare);
             if ($sortDirection == 'DESC') {
                 $submissionsArray = array_reverse($submissionsArray);
             }
             // Convert submission array back to an ItemIterator class
             import('lib.pkp.classes.core.ArrayItemIterator');
             $submissions =& ArrayItemIterator::fromRangeInfo($submissionsArray, $rangeInfo);
         } else {
             $rawSubmissions =& $editorSubmissionDao->_getUnfilteredEditorSubmissions($journal->getId(), $request->getUserVar('section'), 0, $searchField, $searchMatch, $search, $dateSearchField, $fromDate, $toDate, null, $rangeInfo, $sort, $sortDirection);
             $submissions = new DAOResultFactory($rawSubmissions, $editorSubmissionDao, '_returnEditorSubmissionFromRow');
         }
         // If only result is returned from a search, fast-forward to it
         if ($search && $submissions && $submissions->getCount() == 1) {
             $submission =& $submissions->next();
             $request->redirect(null, null, 'submission', array($submission->getId()));
         }
         $templateMgr->assign_by_ref('submissions', $submissions);
         $templateMgr->assign('section', $request->getUserVar('section'));
         // Set search parameters
         foreach ($this->_getSearchFormDuplicateParameters() as $param) {
             $templateMgr->assign($param, $request->getUserVar($param));
         }
         $templateMgr->assign('dateFrom', $fromDate);
         $templateMgr->assign('dateTo', $toDate);
         $templateMgr->assign('displayResults', true);
         $templateMgr->assign('sort', $sort);
         $templateMgr->assign('sortDirection', $sortDirection);
     }
     $submissionsCount =& $editorSubmissionDao->getEditorSubmissionsCount($journal->getId());
     $templateMgr->assign('submissionsCount', $submissionsCount);
     $templateMgr->assign('helpTopicId', 'editorial.editorsRole');
     $templateMgr->display('editor/index.tpl');
 }