/** * Assign the review records to the view. Finds all if no reviews given. * * @param mixed $reviews The reviews to assign. Must be array or array like object. * @return void */ protected function assignReviews($reviews = null) { if (!is_array($reviews) || !$reviews instanceof Traversable) { if ($this->activeBackendUser->isAdmin()) { $reviews = $this->reviewRepository->findAllActive(); } else { $mountpoints = $this->activeBackendUser->getDbMountpointsRecursive(); $pageUids = array(); foreach ($mountpoints as $mountpoint) { $pageUids = array_merge($pageUids, $this->localRepository->getPageTreeUids($mountpoint, -1)); } $reviews = $this->reviewRepository->findActiveInPages($pageUids); } } $maximumReviewers = 0; foreach ($reviews as $review) { $maximumReviewers = max(max($maximumReviewers, $review->getRequired()), $review->getReviewed()->count()); } $this->view->assign('reviewerIndices', range(1, $maximumReviewers)); $this->view->assign('maximumReviewers', $maximumReviewers); $this->view->assign('reviews', $reviews); $this->view->assign('activeReview', $this->review); $this->view->assign('reviewConfiguration', $this->reviewConfiguration); }
/** * Checks if the active backend user is part of the reviewers and returns the corresponding Reviewed entry. * * @param Tx_Contentstage_Domain_Model_BackendUser $backendUser Optional backend user to look for instead. * @return Tx_Contentstage_Domain_Model_Reviewed The reviewed record or null. */ public function getActiveReviewed(Tx_Contentstage_Domain_Model_BackendUser $backendUser = null) { $uid = $backendUser === null ? intval($GLOBALS['BE_USER']->user['uid']) : $backendUser->getUid(); $found = null; foreach ($this->getReviewed() as $reviewed) { if ($uid === $reviewed->getReviewer()->getUid()) { $found = $reviewed; } } return $found; }