public static function getTabsSupported() { if (Nobita_Teams_Validation::assetXenMediaValidAndUsable()) { $photoTabTitle = new XenForo_Phrase('Teams_media'); } elseif (Nobita_Teams_Validation::assetSonnbXenGalleryValidAndUsable()) { $photoTabTitle = new XenForo_Phrase('Teams_gallery'); } else { $photoTabTitle = new XenForo_Phrase('Teams_photos'); } return array('wtype_member' => array('title' => new XenForo_Phrase('Teams_member_wall'), 'explain' => new XenForo_Phrase('Teams_disable_wall_tab_explain')), 'wtype_moderator' => array('title' => new XenForo_Phrase('Teams_staff_wall'), 'explain' => new XenForo_Phrase('Teams_disable_wall_tab_explain')), 'member_list' => array('title' => new XenForo_Phrase('Teams_members_list'), 'explain' => new XenForo_Phrase('Teams_disable_member_list_explain')), 'photos' => array('title' => $photoTabTitle, 'explain' => new XenForo_Phrase($photoTabTitle . '_disable_explain')), 'events' => array('title' => new XenForo_Phrase('Teams_events'), 'explain' => new XenForo_Phrase('Teams_disable_event_explain')), 'threads' => array('title' => new XenForo_Phrase('threads'))); }
/** * Control tabs to display *members, photos, events * @params $tabId */ public function canViewTabAndContainer($tabId, array $team, array $category, &$errorPhraseKey = '', array $viewingUser = null) { $this->standardizeViewingUserReference($viewingUser); $allowTabs = array('members', 'photos', 'events', 'extra', 'threads'); if (!in_array($tabId, $allowTabs)) { return false; } $setup = $this->_teamSetup(); $photoProvider = $setup->getOption('photoProvider'); if ($tabId == 'photos' && $photoProvider == 'disabled') { return false; } if (!$this->isOpen($team)) { // should be invisible to guest if team not public // @privacy error $user = $this->isTeamMember($team['team_id'], $viewingUser); if (!$viewingUser['user_id'] || empty($user)) { $errorPhraseKey = 'requested_page_not_found'; return false; } } $disableTabs = explode(',', $team['disable_tabs']); if ('threads' == $tabId && empty($category['discussion_node_id'])) { return false; } switch ($tabId) { case 'members': if ($this->isTeamAdmin($team['team_id'], $viewingUser)) { return true; } return !in_array('member_list', $disableTabs); case 'photos': return !in_array($tabId, $disableTabs) && (Nobita_Teams_Validation::assetXenMediaValidAndUsable() || Nobita_Teams_Validation::assetSonnbXenGalleryValidAndUsable()); case 'extra': case 'events': case 'threads': return !in_array($tabId, $disableTabs); } }