After upgrading to 3.3.X, you may see Forums and Members tabs at the top of the forum duplicated. This is because the way tabs are built changed and a edit to globalTemplate is required.
To fix this:
1) Log into your Admin CP
2) Click on "Look and Feel" > "Manage Template Sets"
3) Click on the name of the template set you wish to edit
4) In the left hand menu, select 'globalTemplate' under 'Global Templates'
5) In the HTML code, scroll down until you see <!-- ::: APPLICATION TABS ::: -->
Exchange this code in the current template:
With this new code:
Save and repeat this process with any other skins that are affected.
To fix this:
1) Log into your Admin CP
2) Click on "Look and Feel" > "Manage Template Sets"
3) Click on the name of the template set you wish to edit
4) In the left hand menu, select 'globalTemplate' under 'Global Templates'
5) In the HTML code, scroll down until you see <!-- ::: APPLICATION TABS ::: -->
Exchange this code in the current template:
{parse variable="forumActive" default="" oncondition="IPS_APP_COMPONENT == 'forums'" value="active"}
{parse variable="membersActive" default="" oncondition="IPS_APP_COMPONENT == 'members'" value="active"}
{parse variable="helpActive" default="" oncondition="IPS_APP_COMPONENT == 'core' AND $this->request['module'] == 'help'" value="active"}
<if test="!ipsRegistry::$applications['forums']['app_hide_tab'] && !count(ipsRegistry::$applications['forums']['app_tab_groups']) && !IPSMember::isInGroup( $this->memberData, ipsRegistry::$applications['forums']['app_tab_groups'] )"><li id='nav_discussion' class='left {parse variable="forumActive"}'><a href='{parse url="act=idx" seotitle="false" base="public"}' title='{$this->lang->words['go_to_discussion']}'>{IPSLib::getAppTitle( 'forums' )}</a></li></if>
<if test="!ipsRegistry::$applications['members']['app_hide_tab'] && !count(ipsRegistry::$applications['members']['app_tab_groups']) && !IPSMember::isInGroup( $this->memberData, ipsRegistry::$applications['members']['app_tab_groups'] )"><li id='nav_members' class='left {parse variable="membersActive"}'><a href='{parse url="app=members&module=list" base="public" template="members_list" seotitle="false"}' title='{$this->lang->words['go_to_memberlist']}'>{IPSLib::getAppTitle( 'members' )}</a></li></if>
<if test="applicationsloop:|:is_array($header_items['applications']) AND count($header_items['applications'])">
<foreach loop="applications:$header_items['applications'] as $data">
<if test="showingapp:|:$data['app_show']">
{parse variable="appActive" default="" oncondition="$data['app_active']" value="active"}
<li id='nav_app_{$data['app_dir']}' class="left {parse variable="appActive"}"><a href='{parse url="{$data['app_link']}" seotitle="false" base="public"}' title='{parse expression="sprintf( $this->lang->words['go_to_prefix'], IPSLib::getAppTitle($data['app_dir']) )"}'>{IPSLib::getAppTitle($data['app_dir'])}</a></li>
</if>
</foreach>
</if>
With this new code:
<if test="hasCustomPrimaryNavigation:|:!empty($header_items['primary_navigation_menu'])">
{$header_items['primary_navigation_menu']}
<else />
<if test="applicationsloop:|:is_array($header_items['applications']) AND count($header_items['applications'])">
<foreach loop="applications:$header_items['applications'] as $data">
<if test="showingapp:|:$data['app_show']">
{parse variable="appActive" default="" oncondition="$data['app_active']" value="active"}
<li id='nav_app_{$data['app_dir']}' class="left {parse variable="appActive"}"><a href='{parse url="{$data['app_link']}" seotitle="{$data['app_seotitle']}" template="{$data['app_template']}" base="{$data['app_base']}"}' title='{parse expression="sprintf( $this->lang->words['go_to_prefix'], IPSLib::getAppTitle($data['app_dir']) )"}'>{IPSLib::getAppTitle($data['app_dir'])}</a></li>
</if>
</foreach>
</if>
</if>
Save and repeat this process with any other skins that are affected.











