############################################################################### # TabMenu.pm # # $Date: 06.01.16 $ # ############################################################################### # YaBB: Yet another Bulletin Board # # Open-Source Community Software for Webmasters # # Version: YaBB 2.6.13 # # Packaged: June 1, 2016 # # Distributed by: http://www.yabbforum.com # # =========================================================================== # # Copyright (c) 2000-2016 YaBB (www.yabbforum.com) - All Rights Reserved. # # Software by: The YaBB Development Team # # with assistance from the YaBB community. # ############################################################################### #no warnings qw(uninitialized once); our $VERSION = '2.6.13'; $tabmenupmver = 'YaBB 2.6.13 $Revision$'; $action ||= q{}; if ( $action eq 'detailedversion' ) { return 1; } LoadLanguage('TabMenu'); get_micon(); $tabsep = q{}; $tabfill = q{}; sub mainMenu { my @acting = ( [ 'search2', 'favorites', 'shownotify', 'im', 'imdraft', 'imoutbox', 'imstorage', 'imsend', 'imsend2', 'imshow', 'profileCheck', 'myviewprofile', 'myprofile', 'myprofileContacts', 'myprofileOptions', 'myprofileBuddy', 'myprofileIM', 'myprofileAdmin', 'myusersrecentposts', 'messagepagetext', 'messagepagedrop', 'threadpagetext', 'threadpagedrop', 'post', 'notify', 'boardnotify', 'sendtopic', 'modify', 'guestpm2' ], [ 'search', 'mycenter', 'mycenter', 'mycenter', 'mycenter', 'mycenter', 'mycenter', 'mycenter', 'mycenter', 'mycenter', 'mycenter', 'mycenter', 'mycenter', 'mycenter', 'mycenter', 'mycenter', 'mycenter', 'mycenter', 'mycenter', 'home', 'home', 'home', 'home', 'home', 'home', 'home', 'home', 'home', 'guestpm' ], ); ## Mod hook 1 ## if ( $action eq 'addtab' && $iamadmin ) { require Sources::AdvancedTabs; AddNewTab(); } elsif ( $action eq 'edittab' && $iamadmin ) { require Sources::AdvancedTabs; EditTab(); } elsif ( $INFO{'board'} || $INFO{'num'} ) { $tmpaction = q{}; } elsif ( $action ) { for my $i ( 0 .. $#{ $acting[0] } ) { my $img0 = $acting[0]->[$i]; my $img1 = $acting[1]->[$i]; if ( $action eq $img0 ) { $tmpaction = $img1; } else { $tmpaction = $action; } } } else { $tmpaction = 'home'; } my $tabhtml_l = q~
  • \n~; $tab{'home'} = qq~$tabhtml_l"$scripturl" title="$img_txt{'103'}">$img_txt{'103'}$tabhtml_r~; $tab{'help'} = qq~$tabhtml_l"$scripturl?action=help" title="$img_txt{'119'}" class="help">$img_txt{'119'}$tabhtml_r~; if ( $maxsearchdisplay && $maxsearchdisplay > -1 && $advsearchaccess && $advsearchaccess eq 'granted' ) { $tab{'search'} = qq~$tabhtml_l"$scripturl?action=search" title="$img_txt{'182'}">$img_txt{'182'}$tabhtml_r~; } $Show_EventButton ||= 0; if ( $Show_EventButton == 2 || ( !$iamguest && $Show_EventButton == 1 ) ) { $tab{'eventcal'} = qq~$tabhtml_l"$scripturl?action=eventcal;calshow=1" title="$img_txt{'eventcal'}">$img_txt{'eventcal'}$tabhtml_r~; } $Show_BirthdayButton ||= 0; if ( $Show_BirthdayButton == 2 || ( !$iamguest && $Show_BirthdayButton == 1 ) ) { $tab{'birthdaylist'} = qq~$tabhtml_l"$scripturl?action=birthdaylist" title="$img_txt{'birthdaylist'}">$img_txt{'birthdaylist'}$tabhtml_r~; } if ( !$ML_Allowed || ( $ML_Allowed == 1 && !$iamguest ) || ( $ML_Allowed == 2 && $staff ) || ( $ML_Allowed == 3 && ( $iamadmin || $iamgmod ) ) || ( $ML_Allowed == 4 && ( $iamadmin || $iamgmod || $iamfmod ) ) ) { $tab{'ml'} = qq~$tabhtml_l"$scripturl?action=ml" title="$img_txt{'331'}">$img_txt{'331'}$tabhtml_r~; } if ($iamadmin) { if ($do_scramble_id) { $user = cloak($username); } else { $user = $username; } $tab{'admin'} = qq~$tabhtml_l"$boardurl/AdminIndex.$yyaext?action=admincheck;username=$user" title="$img_txt{'2'}">$img_txt{'2'}$tabhtml_r~; } if ($iamgmod) { get_gmod(); if ($allow_gmod_admin) { if ($do_scramble_id) { $user = cloak($username); } else { $user = $username; } $tab{'admin'} = qq~$tabhtml_l"$boardurl/AdminIndex.$yyaext?action=admincheck;username=$user" title="$img_txt{'2'}">$img_txt{'2'}$tabhtml_r~; } } $sessionvalid ||= 0; if ( $sessionvalid == 0 && !$iamguest && !$INFO{'set'}) { my $sesredir; if ( $testenv && $action ne 'revalidatesession' && $action ne 'revalidatesession2' ) { $sesredir = $testenv; $sesredir =~ s/\=/\~/gxsm; $sesredir =~ s/;/x3B/gxsm; $sesredir = qq~;sesredir=$sesredir~; } $tab{'revalidatesession'} = qq~$tabhtml_l"$scripturl?action=revalidatesession$sesredir" title="$img_txt{'34a'}">$img_txt{'34a'}$tabhtml_r~; } if ($iamguest) { my $sesredir; if ($testenv) { $sesredir = $testenv; $sesredir =~ s/\=/\~/gxsm; $sesredir =~ s/;/x3B/gxsm; $sesredir = qq~;sesredir=$sesredir~; } $tab{'login'} = qq~$tabhtml_l"~ . ( $loginform ? "javascript:if(jumptologin>1)alert('$maintxt{'35'}');jumptologin++;window.scrollTo(0,10000);document.loginform.username.focus();" : "$scripturl?action=login$sesredir" ) . qq~" title="$img_txt{'34'}">$img_txt{'34'}$tabhtml_r~; if ($regtype) { $tab{'register'} = qq~$tabhtml_l"$scripturl?action=register" title="$img_txt{'97'}">$img_txt{'97'}$tabhtml_r~; } if ( $PMenableGuestButton && $PM_level > 0 && $PMenableBm_level > 0 ) { $tab{'guestpm'} = qq~$tabhtml_l"$scripturl?action=guestpm" title="$img_txt{'pmadmin'}">$img_txt{'pmadmin'}$tabhtml_r~; } } else { $tab{'mycenter'} = qq~$tabhtml_l"$scripturl?action=mycenter" title="$img_txt{'mycenter'}">$img_txt{'mycenter'}$tabhtml_r~; $tab{'logout'} = qq~$tabhtml_l"$scripturl?action=logout" title="$img_txt{'108'}">$img_txt{'108'}$tabhtml_r~; } ## Tab Mod Hook ## $yytabmenu = qq~~; if ( $iamadmin && $addtab_on == 1 ) { my $seladdtab = q{}; my $seledittab = q{}; if ( $action eq 'addtab' ) { $seladdtab = q~ class="selected"~; } elsif ( $action eq 'edittab' ) { $seledittab = q~ class="selected"~; } $yytabadd = qq~~; } else { $yytabadd = q~ ~; } return; } sub GetTabtxt2 { $tab_lang = $language ? $language : $lang; if ( -e "$langdir/$tab_lang/tabtext.txt" ) { fopen( TABTXT, "$langdir/$tab_lang/tabtext.txt" ); @tabtext = ; fclose(TABTXT); chomp @tabtext; for ( @tabtext ) { if ( $_ ) { ($key, $val ) = split /\t/xsm, $_; $tabtxt{$key} = $val; } } } elsif ( -e "$langdir/English/tabtext.txt" ) { fopen( TABTXT, "$langdir/English/tabtext.txt" ); @tabtext = ; fclose(TABTXT); chomp @tabtext; for ( @tabtext ) { if ( $_ ) { ($key, $val ) = split /\t/xsm, $_; $tabtxt{$key} = $val; } } if ( -e "$langdir/$tab_lang/Main.lng" ) { fopen( TABTXT, ">$langdir/$tab_lang/tabtext.txt" ); print {TABTXT} map { "$_\t$tabtxt{$_}\n" } keys %tabtxt or croak "$croak{'print'} TABTXT"; fclose(TABTXT); } } return; } sub GetTabtxt { $tab_lang = $language ? $language : $lang; if ( -e "$langdir/$tab_lang/tabtext.txt" ) { fopen( TABTXT, "$langdir/$tab_lang/tabtext.txt" ); %tabtxt = map { /(.*)\t(.*)/xsm } ; fclose(TABTXT); for (keys %tabtxt) { chomp $tabtxt{$_} } } elsif ( -e "$langdir/English/tabtext.txt" ) { fopen( TABTXT, "$langdir/English/tabtext.txt" ); %tabtxt = map { /(.*)\t(.*)/xsm } ; fclose(TABTXT); if ( -e "$langdir/$tab_lang/Main.lng" ) { fopen( TABTXT, ">$langdir/$tab_lang/tabtext.txt" ); print {TABTXT} map { "$_\t$tabtxt{$_}\n" } keys %tabtxt or croak "$croak{'print'} TABTXT"; fclose(TABTXT); } } return; } 1;