/** * Controller's default action * * @param array $params * @throws Redirect404Exception */ public function index(array $params) { if (!isset($params['sectionId']) || !($sectionId = (int) $params['sectionId'])) { throw new Redirect404Exception(); } $forumSection = $this->forumService->findSectionById($sectionId); if (!$forumSection || $forumSection->isHidden) { throw new Redirect404Exception(); } $userId = OW::getUser()->getId(); $bcItems = array(array('href' => OW::getRouter()->urlForRoute('forum-default'), 'label' => OW::getLanguage()->text('forum', 'forum_index')), array('label' => $forumSection->name)); $breadCrumbCmp = new BASE_CMP_Breadcrumb($bcItems); $this->addComponent('breadcrumb', $breadCrumbCmp); $sectionGroupList = $this->forumService->getSectionGroupList($userId, $sectionId); $authors = array(); foreach ($sectionGroupList as $section) { foreach ($section['groups'] as $group) { if (!$group['lastReply']) { continue; } $id = $group['lastReply']['userId']; if (!in_array($id, $authors)) { array_push($authors, $id); } } } $this->assign('sectionGroupList', $sectionGroupList); $userNames = BOL_UserService::getInstance()->getUserNamesForList($authors); $this->assign('userNames', $userNames); $displayNames = BOL_UserService::getInstance()->getDisplayNamesForList($authors); $this->assign('displayNames', $displayNames); $this->addComponent('search', new FORUM_CMP_ForumSearch(array('scope' => 'section', 'sectionId' => $sectionId))); OW::getDocument()->setHeading(OW::getLanguage()->text('forum', 'forum')); OW::getDocument()->setHeadingIconClass('ow_ic_forum'); }