Example #1
0
    /**
     * Retrieve an array of spotlights matching a press id.
     * @param $pressId int
     * @return array Array containing matching Spotlights
     */
    function getByPressId($pressId, $rangeInfo = null)
    {
        $result = $this->retrieveRange('SELECT *
			FROM spotlights
			WHERE press_id = ?
			ORDER BY spotlight_id DESC', array((int) $pressId), $rangeInfo);
        $spotlightFactory = new DAOResultFactory($result, $this, '_fromRow');
        $returner = array();
        // Avoid spotlights without items.
        while ($spotlight = $spotlightFactory->next()) {
            $spotlightItem = $spotlight->getSpotlightItem();
            if ($spotlightItem) {
                $returner[$spotlight->getId()] = $spotlight;
            }
        }
        return $returner;
    }
Example #2
0
 /**
  * Populate the sub-filters (if any) for the
  * given parent filter.
  * @param $parentFilter PersistableFilter
  */
 function _populateSubFilters(&$parentFilter)
 {
     if (!is_a($parentFilter, 'CompositeFilter')) {
         // Nothing to do. Only composite filters
         // can have sub-filters.
         return;
     }
     // Retrieve the sub-filters from the database.
     $parentFilterId = $parentFilter->getId();
     $result =& $this->retrieve('SELECT * FROM filters WHERE parent_filter_id = ? ORDER BY seq', $parentFilterId);
     $daoResultFactory = new DAOResultFactory($result, $this, '_fromRow', array('filter_id'));
     // Add sub-filters.
     while (!$daoResultFactory->eof()) {
         // Retrieve the sub filter.
         // NB: This recursively loads sub-filters
         // of this filter via _fromRow().
         $subFilter =& $daoResultFactory->next();
         // Add the sub-filter to the filter list
         // of its parent filter.
         $parentFilter->addFilter($subFilter);
         unset($subFilter);
     }
 }
    /**
     * Remove all user group assignments in a given context
     * @param int $contextId
     * @param int $userId
     */
    function deleteAssignmentsByContextId($contextId, $userId = null)
    {
        $params = array((int) $contextId);
        if ($userId) {
            $params[] = (int) $userId;
        }
        $result = $this->retrieve('SELECT	uug.user_group_id, uug.user_id
			FROM	user_groups ug
				JOIN user_user_groups uug ON ug.user_group_id = uug.user_group_id
			WHERE	ug.context_id = ?
				' . ($userId ? ' AND uug.user_id = ?' : ''), $params);
        $assignments = new DAOResultFactory($result, $this, '_fromRow');
        while ($assignment = $assignments->next()) {
            $this->deleteByUserId($assignment->getUserId(), $assignment->getUserGroupId());
        }
    }
Example #4
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');
 }