Ejemplo n.º 1
0
 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')));
 }
Ejemplo n.º 2
0
 /**
  * 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);
     }
 }