Add More Membergroups 1.5 This allows you to add as much Membergroups as you want easily from the Admin Center. - you can choose how many stars a Membergroup should have and can choose a pic for the stars (ex: staradmin.gif) - you can add Membergroups to the category access list and if a user reaches the post count of the Membergroup the category will become visible and accessable for him - if you give a user a Membergroup nothing else will be shown in the user display - except if he's an Moderator in a forum - full implemented Global Moderator Mod (created by DaveB) - you can set effects/colors to the MemberNames assigned to the Membergroups - you can create MemberGroups which aren't accessable by posts - you can search Members which you have given a specific MemberGroup History: V 1.5: - SP1.3/1.3.1 compatible - Added ability to hide Admins, GMods and Mods from Thread Display - Added ability to add MemberGroups in any order you want/need - Added ability to use MemberGroup-Display in YaBB Standard - Added easy MemberGroup update functions - Improved Speed for Assigned Member Search - Fixed Bug where Admins lost powers if they updated their profile if Admin Group Name was changed - Fixed Bug where users still had no access to hidden forums which got available for them throug postcount - Compatible with more mods V 1.2: - Fixed bug which shows hidden Board to users which got access through their postcount there but hadn't let them entered - Fixed bug which caused loosing Administrator powers if you renamed the Admin Display Name and edited Admin profile - Fixed bug which had showed wrong MemberGroup Names for Admin and Global Mod if Membergroup was renamed - Cleaned some code V 1.1: - Fixed the bug that Global Moderators and Admins weren't checked in the Category options if they got access to a Category. - Fixed the bug that Global Moderators and Admins still have access if the Displayed Names of the Membergroups were changed. - Fixed some Layout Bugs (Class Tags) - Fixed the bug that the Moderator Function picture wasn't shown dOCda S! english.lng $txt{'800'} = "Other"; # Add More MemberGroups Mod $txt{'gmod1'} = "Admin"; $txt{'gmod2'} = "Global Moderator"; $txt{'gmod3'} = "Show Global Moderators the \"Global Moderators - Center\"?"; $txt{'gmod4'} = "Global Moderators"; $txt{'gmod5'} = "YaBB Global Moderators Center"; $txt{'gmod6'} = "This is your '$txt{'gmod5'}'. You can ban Members, edit the News and take a look into the board statistics.

We thank you for using YaBB!"; $txt{'gmod7'} = "Allow $txt{'gmod4'} to see hidden email addresses?"; $txt{'gmod8'} = "Allow $txt{'gmod4'} to edit the forum template?"; $txt{'gmod9'} = "Allow $txt{'gmod4'} to edit Boards and Categories?"; $txt{'gmod10'} = "Allow $txt{'gmod4'} to ban members?"; $txt{'gmod11'} = "Allow $txt{'gmod4'} to do basic forum maintenance?"; $txt{'gmod12'} = "Allow $txt{'gmod4'} to edit user profiles (high security items not editable)?"; $amgtxt{'01'} = "Colors/Effects Center for Member Names"; $amgtxt{'02'} = "Allow Global Moderators to edit news and ban members?"; $amgtxt{'03'} = "Member Title to display"; $amgtxt{'04'} = "# of Posts"; $amgtxt{'05'} = "# of Stars"; $amgtxt{'06'} = "Star"; $amgtxt{'07'} = "Effect"; $amgtxt{'08'} = "Color"; $amgtxt{'09'} = "Example"; $amgtxt{'10'} = "Global Moderator Center"; $amgtxt{'11'} = "This is your Global Moderator Center. You can add/edit news items and the banned user listing.

If you have any problems, please read the manual regarding these features as listed under the admin functions! You may also find answers to your problems on the"; $amgtxt{'12'} = "support forum"; $amgtxt{'13'} = "or at"; $amgtxt{'14'} = "BoardMod's Site"; $amgtxt{'15'} = "Global Moderator Options"; $amgtxt{'16'} = "Description"; $amgtxt{'17'} = "Choose Star"; $amgtxt{'18'} = "Own Pic"; $amgtxt{'19'} = "Pic"; $amgtxt{'20'} = "Administrator Star"; $amgtxt{'21'} = "Global Mod Star"; $amgtxt{'22'} = "Moderator Star"; $amgtxt{'23'} = "Blue Star"; $amgtxt{'24'} = "Silver Star"; $amgtxt{'25'} = "Gold Star"; $amgtxt{'26'} = "Other"; $amgtxt{'27'} = "Del?"; $amgtxt{'28'} = "Here you can edit/delete Member Groups!"; $amgtxt{'29'} = "Here you can add new Member Groups!"; $amgtxt{'30'} = "Search assigned Members"; $amgtxt{'31'} = "Choose MemberGroup"; $amgtxt{'32'} = "No Members found with that search criteria!"; $amgtxt{'33'} = "Sorry! You made an error!

Error information:

You gave a new MemberGroup a higher or equal postcount than an already existing MemberGroup!
This would end in a board failure by output the user-info!
Please use your back button and fix this error!
"; $amgtxt{'34'} = "Moderator Functions:"; $amgtxt{'35'} = "YaBB Style MemberGroups Display in Posts"; $amgtxt{'36'} = "Hide Administrator Status in Posts and IMs"; $amgtxt{'37'} = "Hide Global Moderator Status in Posts and IMs"; $amgtxt{'38'} = "Hide Moderator Status in Posts"; $amgtxt{'39'} = "Allow $txt{'gmod4'} to edit the censored words?"; $amgtxt{'40'} = "Allow $txt{'gmod4'} to view the forum statistics?"; $amgtxt{'41'} = "Allow $txt{'gmod4'} to edit the news?"; $amgtxt{'42'} = "Rebuild MemberGroups Files"; $amgtxt{'43'} = "Update Assigned MemberGroups for Users"; $amgtxt{'44'} = "Missed to mark a user?"; $amgtxt{'45'} = "You've missed to upload the MemberStats.txt to your \"Variables\" directory!
Please Upload the file in ASCII into the directory before proceeding."; $amgtxt{'46'} = "You've missed to upload the MemberGroups.pl to your \"Sources\" directory!
Please Upload the file in ASCII into the directory before proceeding.";
$img{'admin_func'} = qq~$txt{'137'}~; $img{'moderator_func'} = qq~$amgtxt{'34'}~; $img{'admin_func'} = qq~$txt{'137'} $txt{'137'}~; $img{'moderator_func'} = qq~$txt{'137'} $amgtxt{'34'}~; YaBB.pl require "$sourcedir/Security.pl"; if (!-e("$vardir/MemberStats.txt")) { &fatal_error("$amgtxt{'45'}"); } if (!-e("$sourcedir/MemberGroups.pl")) { &fatal_error("$amgtxt{'46'}"); } require "$vardir/MemberStats.txt"; Sources/Admin.pl $txt{'426'} - $txt{'8'}
- $amgtxt{'01'}
- $amgtxt{'30'}
- $amgtxt{'42'}
- $amgtxt{'43'}
---------------------------------------------------
- $txt{'5'}
- $txt{'8'}
- $txt{'5'}
sub FullStats { &is_admin; sub FullStats { &is_admin_or_gmod; if ($settings[7] eq 'Global Moderator' && $showgmod_info != 1 ) { &fatal_error("$txt{'1'}"); } $yyAccessCat{$curcat} = $settings[7] eq 'Administrator' || $moderators{$username} || ! $curcataccess; $yyAccessCat{$curcat} = $settings[7] eq 'Administrator' || $settings[7] eq 'Global Moderator' || $moderators{$username} || ! $curcataccess; &LoadAdmins; &LoadGMods; $txt{'684'}: $administrators

$txt{'gmod4'}: $gmoderators

sub ShowClickLog { &is_admin; sub ShowClickLog { &is_admin_or_gmod; if ($settings[7] eq 'Global Moderator' && $showgmod_info != 1 ) { &fatal_error("$txt{'1'}"); } sub AdminBoardRecount { &is_admin; sub AdminBoardRecount { &is_admin_or_gmod; if ($settings[7] eq 'Global Moderator' && $allowgmod_maint != 1 ) { &fatal_error("$txt{'1'}"); } sub RebuildMemList { &is_admin; sub RebuildMemList { &is_admin_or_gmod; if ($settings[7] eq 'Global Moderator' && $allowgmod_maint != 1 ) { &fatal_error("$txt{'1'}"); } sub ipban { &is_admin; sub ipban { &is_admin_or_gmod; if ($settings[7] eq 'Global Moderator' && $allowgmod_ban != 1 ) { &fatal_error("$txt{'1'}"); } sub ipban2 { &is_admin; sub ipban2 { &is_admin_or_gmod; if ($settings[7] eq 'Global Moderator' && $allowgmod_ban != 1 ) { &fatal_error("$txt{'1'}"); } print FILE "$FORM{'ban_memname'}"; fclose(FILE); $yySetLocation = qq~$cgi;action=admin~; print FILE "$FORM{'ban_memname'}"; fclose(FILE); if ($settings[7] eq 'Global Moderator') { $yySetLocation = qq~$cgi\;action=moderate~; } else { $yySetLocation = qq~$cgi\;action=admin~; } sub ver_detail { &is_admin; sub ver_detail { &is_admin_or_gmod; if ($settings[7] eq 'Global Moderator' && $showgmod_info != 1 ) { &fatal_error("$txt{'1'}"); } Sources/AdminEdit.pl my($snfchecked, $fls1, $fls2, $fls3, $utfchecked, $truncchecked, $mts1, $mts2, $mts3, $tsl8, $tsl7, $tsl6, $tsl5, $tsl4, $tsl3, $tsl2, $tsl1); my($gmodchecked, $disprealinfochecked, $hideadminchecked, $hidegmodchecked, $hidemodchecked); my($gmodedittemplate, $gmodeditcat, $gmodban, $gmodmaint, $gmodeditprof); if ($enable_ubbc) { $ubbcchecked = ' checked'; } if ($allow_mod) { $gmodchecked = ' checked'; } if ($disprealinfo) { $disprealinfochecked = ' checked'; } if ($hideadmin) { $hideadminchecked = ' checked'; } if ($hidegmod) { $hidegmodchecked = ' checked'; } if ($hidemod) { $hidemodchecked = ' checked'; } if ($showgmod_info) {$gmodshowstats = ' checked'; } if ($allowgmod_censor) {$gmodshowcensor = ' checked'; } if ($allowgmod_edittemp) {$gmodedittemplate = ' checked'; } if ($allowgmod_editcat) {$gmodeditcat = ' checked'; } if ($allowgmod_ban) {$gmodban = ' checked'; } if ($allowgmod_news) {$gmodnews = ' checked'; } if ($allowgmod_maint) {$gmodmaint = ' checked'; } if ($allowgmod_editprof) {$gmodeditprof = ' checked'; }
$txt{'588'} $txt{'589'} $txt{'590'} $txt{'591'}
MemberGroups Options $amgtxt{'35'} $txt{'gmod3'} $amgtxt{'40'} $amgtxt{'41'} $amgtxt{'39'} $txt{'gmod8'} $txt{'gmod9'} $txt{'gmod10'} $txt{'gmod11'} $txt{'gmod12'} $amgtxt{'36'} $amgtxt{'37'} $amgtxt{'38'} AMM 1.5    $timeout = $FORM{'timeout'} || 5; $allow_mod = $FORM{'allow_mod'} || 0; $disprealinfo = $FORM{'oldskool'} || 0; $hideadmin = $FORM{'hideadmin'} || 0; $hidegmod = $FORM{'hidegmod'} || 0; $hidemod = $FORM{'hidemod'} || 0; $showgmod_info = $FORM{'showgmod_info'} || 0; $allowgmod_censor = $FORM{'allowgmod_censor'} || 0; $allowgmod_edittemp = $FORM{'allowgmod_edittemp'} || 0; $allowgmod_editcat = $FORM{'allowgmod_editcat'} || 0; $allowgmod_ban = $FORM{'allowgmod_ban'} || 0; $allowgmod_news = $FORM{'allowgmod_news'} || 0; $allowgmod_maint = $FORM{'allowgmod_maint'} || 0; $allowgmod_editprof = $FORM{'allowgmod_editprof'} || 0; $maxsiglen = $FORM{'maxsiglen'} || 200; $jrmem = $FORM{'jrmem'} || 50; $fullmem = $FORM{'fullmem'} || 100; $srmem = $FORM{'srmem'} || 250; $godmem = $FORM{'godmem'} || 500; $language = $FORM{'language'} || 'english.lng'; $maxsiglen = $FORM{'maxsiglen'} || 200; $language = $FORM{'language'} || 'english.lng'; ########## Feature Settings ########## ######## AMM Feature Settings ######## \$disprealinfo = $disprealinfo; # Set to 1 to use YaBBs original MemberGroup display in posts \$hideadmin = $hideadmin; # Set to 1 to disable showing Admin Status in Posts and IMs \$hidegmod = $hidegmod; # Set to 1 to disable showing Global Mod Status in Posts and IMs \$hidemod = $hidemod; # Set to 1 to disable showing Moderato Status in Posts \$allow_mod = $allow_mod; # Set to 1 to activate a "Global Moderators - Center" \$allowgmod_news = $allowgmod_news; # Set to 1 to let Global Moderators edit the news \$showgmod_info = $showgmod_info; # Set to 1 to let Global Moderators see board statistics \$allowgmod_censor = $allowgmod_censor; # Set to 1 to let Global Moderators edit censored words \$allowgmod_edittemp = $allowgmod_edittemp; # Set to 1 to let Global Moderators edit the forum template \$allowgmod_editcat = $allowgmod_editcat; # Set to 1 to let Global Moderators edit the forum boards and categories \$allowgmod_ban = $allowgmod_ban; # Set to 1 to let Global Moderators edit the ban list \$allowgmod_maint = $allowgmod_maint; # Set to 1 to let Global Moderators perform routine forum maintenance \$allowgmod_editprof = $allowgmod_editprof; # Set to 1 to let Global Moderators edit non-security related profile items ########## Membergroups ########## \$JrPostNum = $jrmem; # Number of Posts required to show person as 'junior' membergroup \$FullPostNum = $fullmem; # Number of Posts required to show person as 'full' membergroup \$SrPostNum = $srmem; # Number of Posts required to show person as 'senior' membergroup \$GodPostNum = $godmem; # Number of Posts required to show person as 'god' membergroup ########## MemberPic Settings ########## ########## MemberPic Settings ########## sub EditNews { &is_admin; sub EditNews { &is_admin_or_gmod; if ($settings[7] eq 'Global Moderator' && $allowgmod_news != 1 ) { &fatal_error("$txt{'1'}"); } sub EditNews2 { &is_admin; sub EditNews2 { &is_admin_or_gmod; if ($settings[7] eq 'Global Moderator' && $allowgmod_news != 1 ) { &fatal_error("$txt{'1'}"); } print FILE "$FORM{'news'}"; fclose(FILE); $yySetLocation = qq~$cgi\;action=admin~; print FILE "$FORM{'news'}"; fclose(FILE); if ($settings[7] eq 'Global Moderator') { $yySetLocation = qq~$cgi\;action=moderate~; } else { $yySetLocation = qq~$cgi\;action=admin~; } sub SetCensor { &is_admin; sub SetCensor { &is_admin_or_gmod; if ($settings[7] eq 'Global Moderator' && $allowgmod_censor != 1 ) { &fatal_error("$txt{'1'}"); } sub SetCensor2 { &is_admin; sub SetCensor2 { &is_admin_or_gmod; if ($settings[7] eq 'Global Moderator' && $allowgmod_censor != 1 ) { &fatal_error("$txt{'1'}"); } fopen(FILE, ">$vardir/censor.txt", 1); foreach my $i (@lines) { $i =~ tr/\n//d; unless( $i && $i =~ m~.+\=.+~ ) { next; } print FILE "$i\n"; } fclose(FILE); $yySetLocation = qq~$cgi;action=admin~; fopen(FILE, ">$vardir/censor.txt", 1); foreach my $i (@lines) { $i =~ tr/\n//d; unless( $i && $i =~ m~.+\=.+~ ) { next; } print FILE "$i\n"; } fclose(FILE); if ($settings[7] eq 'Global Moderator') { $yySetLocation = qq~$cgi\;action=moderate~; } else { $yySetLocation = qq~$cgi\;action=admin~; } sub ModifyTemplate { &is_admin; sub ModifyTemplate { &is_admin_or_gmod; if ($settings[7] eq 'Global Moderator' && $allowgmod_edittemp != 1 ) { &fatal_error("$txt{'1'}"); } sub ModifyTemplate2 { &is_admin; sub ModifyTemplate2 { &is_admin_or_gmod; if ($settings[7] eq 'Global Moderator' && $allowgmod_edittemp != 1 ) { &fatal_error("$txt{'1'}"); } print FILE $FORM{'template'}; fclose(FILE); $yySetLocation = qq~$cgi;action=admin~; print FILE $FORM{'template'}; fclose(FILE); if ($settings[7] eq 'Global Moderator') { $yySetLocation = qq~$cgi\;action=moderate~; } else { $yySetLocation = qq~$cgi\;action=admin~; } Sources/BoardIndex.pl foreach $tmpa (@membergroups) { if($tmpa eq $settings[7]) { $openmemgr{$curcat} = 1; last; } } if(!$cataccess{$curcat} || $settings[7] eq 'Administrator') { $openmemgr{$curcat} = 1; } my($mscount); $mscount=0; foreach $tmpa (@membergroups) { if( $tmpa eq $settings[7]) { $openmemgr{$curcat} = 1; last; } while($MemStat[$mscount]) { if($settings[6] >= $MemPostNum[$mscount] && $MemPostNum[$mscount] ne "x") { $memberinfo = "$MemStat[$mscount]"; } ++$mscount; } if ( $memberinfo eq $tmpa ) { $openmemgr{$curcat} = 1; last; } } if( ! $cataccess{$curcat} || $settings[7] eq 'Administrator' ) { $openmemgr{$curcat} = 1; } Sources/Display.pl if(exists $moderators{$username} || $settings[7] eq 'Administrator') { $yymain .= qq~$img{'admin_func'} if(exists $moderators{$username} || $settings[7] eq 'Administrator' || $settings[7] eq 'Global Moderator') { if($settings[7] eq 'Administrator') {$sadminf = $img{'admin_func'};} else {$sadminf = $img{'moderator_func'};} $yymain .= qq~$sadminf $mip = $settings[7] eq 'Administrator' ? $mip : "$txt{'511'}"; if ($settings[7] eq 'Administrator' || $settings[7] eq 'Global Moderator' && $allow_mod == 1) { $mip = $mip } else { $mip = "$txt{'511'}"; } $usernamelink = qq~$mname~; $postinfo = ''; $usernamelink = qq~$mname~; if ($memberinfo eq "$txt{'28'}") { $usernamelink = qq~$mname
~; } $postinfo = '';
$usernamelink = qq~$userprofile[1]~; $usernamelink = $link{$musername}; $usernamelink
$usernamelink elsif ($userprofile[19] ne "checked" || $settings[7] eq "Administrator" || $allow_hide_email ne 1) { elsif ($userprofile[19] ne "checked" || $settings[7] eq "Administrator" || $settings[7] eq "Global Moderator" || $allow_hide_email ne 1) { if(exists $moderators{$username} || $settings[7] eq 'Administrator' || $username eq $musername) { if(exists $moderators{$username} || $settings[7] eq 'Administrator' || $username eq $musername || $settings[7] eq 'Global Moderator') { # For each post in this thread: foreach (@messages) { undef $realgroup; $memail = $userprofile[2]; } else { $musername = "Guest"; $memail = $userprofile[2]; if ($disprealinfo == 1) { if ($userprofile[7] ne "Global Moderator" && $userprofile[7] ne "Administrator") { undef $star; require "$sourcedir/MemberGroups.pl"; $realname=$musername; &Load_Real_Group; $realgroup = "$memrealinfo{$realname}"; $star = $memberstar{$musername}; if ($memrealinfo{$realname} eq "$memberinfo{$musername}") { $realgroup = ""; } } } } else { $musername = "Guest"; Sources/Load.pl if($userprofile{$user}->[6] > $GodPostNum) { $memberinfo{$user} = "$membergroups[6]"; $memberstar{$user} = qq~*****~; } elsif($userprofile{$user}->[6] > $SrPostNum) { $memberinfo{$user} = "$membergroups[5]"; $memberstar{$user} = qq~****~; } elsif($userprofile{$user}->[6] > $FullPostNum) { $memberinfo{$user} = "$membergroups[4]"; $memberstar{$user} = qq~***~; } elsif($userprofile{$user}->[6] > $JrPostNum) { $memberinfo{$user} = "$membergroups[3]"; $memberstar{$user} = qq~**~; } else { $memberinfo{$user} = "$membergroups[2]"; $memberstar{$user} = qq~*~; } if(exists $moderators{$user} && $sender ne "im") { $modinfo{$user} = "$membergroups[1]
"; $memberstar{$user} = qq~*****~; } if($userprofile{$user}->[7] eq 'Administrator') { $memberstar{$user} = qq~*****~; $memberinfo{$user} = "$membergroups[0]"; } if($userprofile{$user}->[7] && $userprofile{$user}->[7] ne 'Administrator') { $groupinfo{$user} = "$userprofile{$user}->[7]
"; } if($userprofile{$user}->[7] ne 'Administrator') { $memberinfo{$user} = "$modinfo{$user}$groupinfo{$user}$memberinfo{$user}"; }
if( $userprofile{$user}->[7] eq 'Administrator' && $hideadmin != 1) { if ($MemTypeAdmin == 1) { $link{$user} = qq~$userprofile{$user}->[1]
~; } elsif ($MemTypeAdmin == 2) { $link{$user} = qq~$userprofile{$user}->[1]
~; } else { $link{$user} = qq~$userprofile{$user}->[1]
~; } $memberinfo{$user} = "$MemStatAdmin"; $starnum = "0"; if ($MemStarNumAdmin eq "") { $MemStarNumAdmin = "0"; } $memberstartemp =''; while($MemStarNumAdmin ne "$starnum") { $memberstartemp .= qq(*); ++$starnum; } $memberstar{$user} = $memberstartemp; $starnum = "0"; } elsif ( $userprofile{$user}->[7] eq 'Global Moderator' && $hidegmod != 1) { if ($MemTypeGMod == 1) { $link{$user} = qq~$userprofile{$user}->[1]
~; } elsif ($MemTypeGMod == 2) { $link{$user} = qq~$userprofile{$user}->[1]
~; } else { $link{$user} = qq~$userprofile{$user}->[1]
~; } $memberinfo{$user} = "$MemStatGMod"; $starnum = "0"; if ($MemStarNumGMod eq "") { $MemStarNumGMod = "0"; } $memberstartemp =''; while($MemStarNumGMod ne "$starnum") { $memberstartemp .= qq(*); ++$starnum; } $memberstar{$user} = $memberstartemp; $starnum = "0"; } else { if ($MemStarNumNewbie eq "") { $MemStarNumNewbie = "0"; } $starnum = "0"; if( $userprofile{$user}->[6] >= $MemPostNewbie) { if ($MemTypeNewbie == 1) { $link{$user} = qq~$userprofile{$user}->[1]
~; } elsif ($MemTypeNewbie == 2) { $link{$user} = qq~$userprofile{$user}->[1]
~; } else { $link{$user} = qq~$userprofile{$user}->[1]
~; } $memberinfo{$user} = "$MemStatNewbie"; $memberstartemp =''; while($MemStarNumNewbie ne "$starnum") { $memberstartemp .= qq(*); ++$starnum; } $memberstar{$user} = $memberstartemp; $starnum = "0"; $msstatcount = "0"; $starnum = "0"; while($MemStat[$msstatcount]) { if( $userprofile{$user}->[6] >= $MemPostNum[$msstatcount] && $MemPostNum[$msstatcount] ne "x") { if ($MemType[$msstatcount] == 1) { $link{$user} = qq~$userprofile{$user}->[1]
~; } elsif ($MemType[$msstatcount] == 2) { $link{$user} = qq~$userprofile{$user}->[1]
~; } else { $link{$user} = qq~$userprofile{$user}->[1]
~; } $memberinfo{$user} = "$MemStat[$msstatcount]"; if ($MemStarNum[$msstatcount] eq "") { $MemStarNum[$msstatcount] = "0"; } $memberstartemp =''; while($MemStarNum[$msstatcount] ne "$starnum") { $memberstartemp .= qq(*); ++$starnum; } $memberstar{$user} = $memberstartemp; $starnum = "0"; } ++$msstatcount; } } if( exists $moderators{$user} && $sender ne "im" && $hidemod != 1) { if ($MemTypeMod == 1) { $link{$user} = qq~$userprofile{$user}->[1]
~; } elsif ($MemTypeMod == 2) { $link{$user} = qq~$userprofile{$user}->[1]
~; } else { $link{$user} = qq~$userprofile{$user}->[1]
~; } $modinfo{$user} = "$MemStatMod"; $starnum = "0"; if ($MemStarNumMod eq "") { $MemStarNumMod = "0"; } $memberstartemp =''; while($MemStarNumMod ne "$starnum") { $memberstartemp .= qq(*); ++$starnum; } $memberstar{$user} = $memberstartemp; $starnum = "0"; } if ($disprealinfo == 1) { if( $userprofile{$user}->[7] && $userprofile{$user}->[7] ne 'Administrator' && $userprofile{$user}->[7] ne 'Global Moderator') { $memberinfo{$user} = "$userprofile{$user}->[7]
$memberinfo{$user}"; if ($modinfo{$user}) { $memberinfo{$user} = "$modinfo{$user}
$memberinfo{$user}" } } } else { if( $userprofile{$user}->[7] && $userprofile{$user}->[7] ne 'Administrator' && $userprofile{$user}->[7] ne 'Global Moderator'&& !$modinfo{$user}) { $msstatcount = "0"; $starnum = "0"; while($MemStat[$msstatcount] && $MemStat[$msstatcount] ne "$userprofile{$user}->[7]") { $msstatcount++; } if($MemStat[$msstatcount] eq "$userprofile{$user}->[7]") { if ($MemType[$msstatcount] == 1) { $link{$user} = qq~$userprofile{$user}->[1]
~; } elsif ($MemType[$msstatcount] == 2) { $link{$user} = qq~$userprofile{$user}->[1]
~; } else { $link{$user} = qq~$userprofile{$user}->[1]
~; } $memberinfo{$user} = "$MemStat[$msstatcount]"; if ($MemStarNum[$msstatcount] eq "") { $MemStarNum[$msstatcount] = "0"; } $memberstartemp =''; while($MemStarNum[$msstatcount] ne "$starnum") { $memberstartemp .= qq(*); $starnum++; } $memberstar{$user} = $memberstartemp; $starnum = "0"; } } if ($modinfo{$user}) { $memberinfo{$user} = "$modinfo{$user}
$memberinfo{$user}"; } } }
sub LoadLogCount { &is_admin; sub LoadLogCount { &is_admin_or_gmod; if ($settings[7] eq 'Global Moderator' && $showgmod_info != 1 ) { &fatal_error("$txt{'1'}"); } if (!$user_ip && $settings[7] eq 'Administrator') { $yyim .= qq~
$txt{'773'}~; }
if (!$user_ip && ($settings[7] eq 'Administrator' || $settings[7] eq 'Global Moderator')) { $yyim .= qq~
$txt{'773'}~; }
sub LoadLogCount { sub LoadGMods { &is_admin_or_gmod; my (@members, $curentry); $gmoderators = ''; fopen(FILE, "$memberdir/memberlist.txt"); @members = ; fclose(FILE); foreach $curentry (@members) { chomp $curentry; &LoadUser($curentry); if($userprofile{$curentry}->[7] eq 'Global Moderator') { $gmoderators .= qq~ $userprofile{$curentry}->[1], \n~; } } $gmoderators =~ s~, \n\Z~~; } Sources/LockThread.pl if((exists $moderators{$username}) || $settings[7] eq "Administrator") { if((exists $moderators{$username}) || $settings[7] eq "Global Moderator" || $settings[7] eq "Administrator") { Sources/ManageBoards.pl sub ManageBoards { &is_admin; sub ManageBoards { &is_admin_or_gmod; if ($settings[7] eq 'Global Moderator' && $allowgmod_editcat != 1 ) { &fatal_error("$txt{'1'}"); } sub ReorderBoards { &is_admin; sub ReorderBoards { &is_admin_or_gmod; if ($settings[7] eq 'Global Moderator' && $allowgmod_editcat != 1 ) { &fatal_error("$txt{'1'}"); } sub ReorderBoards2 { &is_admin; sub ReorderBoards2 { &is_admin_or_gmod; if ($settings[7] eq 'Global Moderator' && $allowgmod_editcat != 1 ) { &fatal_error("$txt{'1'}"); } sub ModifyBoard { &is_admin; sub ModifyBoard { &is_admin_or_gmod; if ($settings[7] eq 'Global Moderator' && $allowgmod_editcat != 1 ) { &fatal_error("$txt{'1'}"); } sub CreateBoard { &is_admin; sub CreateBoard { &is_admin_or_gmod; if ($settings[7] eq 'Global Moderator' && $allowgmod_editcat != 1 ) { &fatal_error("$txt{'1'}"); } Sources/ManageCats.pl my $mgroups = qq~~; $mgroups .= qq~\n~; $mgroups .= qq~\n~; $mgroups .= qq~\n~; $count=0; while($MemStat[$count]) { $mgroups .= qq~\n~; $count++; $mgroups = qq~~; $mgroups .= qq~\n~; $mgroups .= qq~\n~; $mgroups .= qq~\n$MemStatNewbie~; $count=0; while($MemStat[$count]) { $groups[$i] =~ s~[\n\r]~~g; chomp $groups[$i]; $selected = ""; foreach $cur (@curcatgroups) { $cur =~ s~[\n\r]~~g; chomp $cur; if($cur eq $MemStat[$count]) { $selected = " selected"; break;} } $groups[$i] =~ s~\<~<~g; $groups[$i] =~ s~\>~>~g; $mgroups .= qq~\n$MemStat[$count]~; $count++; sub ManageCats { &is_admin; sub ManageCats { &is_admin_or_gmod; if ($settings[7] eq 'Global Moderator' && $allowgmod_editcat != 1 ) { &fatal_error("$txt{'1'}"); } sub ReorderCats { &is_admin; sub ReorderCats { &is_admin_or_gmod; if ($settings[7] eq 'Global Moderator' && $allowgmod_editcat != 1 ) { &fatal_error("$txt{'1'}"); } sub CreateCat { &is_admin; sub CreateCat { &is_admin_or_gmod; if ($settings[7] eq 'Global Moderator' && $allowgmod_editcat != 1 ) { &fatal_error("$txt{'1'}"); } sub ModifyCat { &is_admin; sub ModifyCat { &is_admin_or_gmod; if ($settings[7] eq 'Global Moderator' && $allowgmod_editcat != 1 ) { &fatal_error("$txt{'1'}"); } Sources/Memberlist.pl if ($member[19] eq "checked" && $settings[7] ne "Administrator" && $allow_hide_email eq 1) { $yymain .= qq~ if ($member[19] eq "checked" && $settings[7] ne "Administrator" && $settings[7] ne 'Global Moderator' && $allow_hide_email eq 1) { $yymain .= qq~ if ($member[19] eq "checked" && $settings[7] ne "Administrator" && $allow_hide_email eq 1) { $yymain .= qq~ if ($member[19] eq "checked" && $settings[7] ne "Administrator" && $settings[7] ne 'Global Moderator' && $allow_hide_email eq 1) { $yymain .= qq~ if ($member[19] eq "checked" && $settings[7] ne "Administrator" && $allow_hide_email eq 1) { $yymain .= qq~ if ($member[19] eq "checked" && $settings[7] ne "Administrator" && $settings[7] ne 'Global Moderator' && $allow_hide_email eq 1) { $yymain .= qq~ Sources/ModifyMessage.pl if($musername ne $username && (!exists $moderators{$username}) && $settings[7] ne 'Administrator' ) { if($musername ne $username && (!exists $moderators{$username}) && $settings[7] ne 'Administrator' && $settings[7] ne 'Global Moderator' ) { unless($musername eq $username || exists $moderators{$username} || $settings[7] eq 'Administrator') { &fatal_error("$txt{'73'}"); } } else { unless($musername eq $username || exists $moderators{$username} || $settings[7] eq 'Administrator') { &fatal_error("$txt{'67'}"); unless($musername eq $username || exists $moderators{$username} || $settings[7] eq 'Administrator' || $settings[7] eq 'Global Moderator' ) { &fatal_error("$txt{'73'}"); } } else { unless($musername eq $username || exists $moderators{$username} || $settings[7] eq 'Administrator' || $settings[7] eq 'Global Moderator') { &fatal_error("$txt{'67'}"); Sources/MoveThread.pl if((!exists $moderators{$username}) && $settings[7] ne "Administrator") { &fatal_error("$txt{'134'}"); } if((!exists $moderators{$username}) && $settings[7] ne "Administrator" && $settings[7] ne "Global Moderator") { &fatal_error("$txt{'134'}"); } if((!exists $moderators{$username}) && $settings[7] ne "Administrator") { &fatal_error("$txt{'134'}"); } if((!exists $moderators{$username}) && $settings[7] ne "Administrator" && $settings[7] ne "Global Moderator") { &fatal_error("$txt{'134'}"); } Sources/Profile.pl ~; fopen(FILE, "$vardir/membergroups.txt"); @lines = ; fclose(FILE); if($settings[7] eq 'Administrator') { $position=''; foreach $curl (@lines) { if($curl ne $lines[1] && $curl ne $lines[2] && $curl ne $lines[3] && $curl ne $lines[4] && $curl ne $lines[5] && $curl ne $lines[6]) { if($curl ne $lines[0]) { $position= qq~$position



~; $yytitle = $txt{'79'}; &template; exit; } ~; if($settings[7] eq "Administrator") { if($memsettings[7] eq 'Administrator') { $tt2 = $MemStatAdmin; $tt = "Administrator"; } elsif ($memsettings[7] eq 'Global Moderator') { $tt2 = $MemStatGMod; $tt = "Global Moderator"; } else { $tt = $memsettings[7]; $tt2 = $memsettings[7]; } $yymain .= qq~
$txt{'86'}: $txt{'87'}: $txt{'233'}:br> $txt{'421'} ~; } $yymain .= qq~

~; $yytitle = $txt{'79'}; &template; exit; } fopen(FILE, "$vardir/membergroups.txt"); @membergroups = ; fclose(FILE); if($memsettings[6] > $GodPostNum) { $memberinfo = "$membergroups[6]"; } elsif($memsettings[6] > $SrPostNum) { $memberinfo = "$membergroups[5]"; } elsif($memsettings[6] > $FullPostNum) { $memberinfo = "$membergroups[4]"; } elsif($memsettings[6] > $JrPostNum) { $memberinfo = "$membergroups[3]"; } else { $memberinfo = "$membergroups[2]"; } if($memsettings[7] ne "") { $memberinfo = "$memsettings[7]"; } if($memsettings[7] eq "Administrator") { $memberinfo = "$membergroups[0]"; } my ($msstatcount); $msstatcount=0; if ($memsettings[7]) { chomp($memsettings[7]); if ($memsettings[7] eq "Administrator") { $memberinfo = $MemStatAdmin; } elsif ($memsettings[7] eq "Global Moderator") { $memberinfo = $MemStatGMod; } else { $memberinfo = "$memsettings[7]"; } } else { if( $memsettings[6] >= $MemPostNewbie) { $memberinfo = "$MemStatNewbie"; } while($MemStat[$msstatcount] && $MemPostNum[$msstatcount] ne "x") { if( $memsettings[6] >= $MemPostNum[$msstatcount] ) { $memberinfo = "$MemStat[$msstatcount]"; } ++$msstatcount; } } @membergroups = split( /,/, $cataccess{$curcat} ); foreach $tmpa (@membergroups) { if( $tmpa eq $settings[7]) { $openmemgr{$curcat} = 1; last; } } if( ! $cataccess{$curcat} || $settings[7] eq 'Administrator' ) { $openmemgr{$curcat} = 1; } unless( $openmemgr{$curcat} ) { next; } my($mscount); $mscount=0; @membergroups = split( /,/, $cataccess{$curcat} ); foreach $tmpa (@membergroups) { $tmpa =~ s/\n//g; if( $settings[7] eq "$tmpa") { $openmemgr{$curcat} = 1; last; } while($MemStat[$mscount]) { if( $settings[6] >= $MemPostNum[$mscount] && $MemPostNum[$mscount] ne "x") { $memberinfo = "$MemStat[$mscount]"; } ++$mscount; } if ( $memberinfo eq $tmpa ) { $openmemgr{$curcat} = 1; last; } } if( ! $cataccess{$curcat} || $settings[7] eq 'Administrator' ) { $openmemgr{$curcat} = 1; } unless( $openmemgr{$curcat} ) { next; } if ($memsettings[19] ne "checked" || $settings[7] eq "Administrator" || !$allow_hide_email) { if ($username ne $INFO{'username'} && ($settings[7] eq "Global Moderator" && $allowgmod_editprof)) { $modify = qq~« $txt{'17'} »~; } if ($memsettings[19] ne "checked" || $settings[7] eq "Administrator" || ($settings[7] eq 'Global Moderator') || !$allow_hide_email) { if($newpassemail) { if($memset[7] ne "$member{'settings7'}") { require "$sourcedir/MemberGroups.pl"; &RebuildMemGroup; } Sources/Recent.pl if($settings[7] ne 'Administrator' && !exists $membergroups{$settings[7]}) { next; } if($settings[7] ne 'Administrator' && $settings[7] ne 'Global Moderator' && !exists $membergroups{$settings[7]}) { next; } if( ! $cataccess{$curcat} || $settings[7] eq 'Administrator' ) { if( ! $cataccess{$curcat} || $settings[7] eq 'Administrator' || $settings[7] eq 'Global Moderator' ) { Sources/RemoveThread.pl if((!exists $moderators{$username}) && $settings[7] ne "Administrator") { if((!exists $moderators{$username}) && $settings[7] ne "Administrator" && $settings[7] ne "Global Moderator") { Sources/Security.pl sub banning { sub is_admin_or_gmod { if($settings[7] ne 'Administrator' && ($settings[7] ne 'Global Moderator' || $allow_mod != 1)) { &fatal_error($txt{'1'}); } } Sources/Search.pl @membergroups = split( /,/, $cataccess{$curcat} ); foreach $tmpa (@membergroups) { if( $tmpa eq $settings[7]) { $openmemgr{$curcat} = 1; last; } } if( ! $cataccess{$curcat} || $settings[7] eq 'Administrator' ) { $openmemgr{$curcat} = 1; } unless( $openmemgr{$curcat} ) { next; } my($mscount); $mscount=0; @membergroups = split( /,/, $cataccess{$curcat} ); foreach $tmpa (@membergroups) { $tmpa =~ s/\n//g; if( $settings[7] eq "$tmpa") { $openmemgr{$curcat} = 1; last; } while($MemStat[$mscount]) { if( $settings[6] >= $MemPostNum[$mscount] && $MemPostNum[$mscount] ne "x") { $memberinfo = "$MemStat[$mscount]"; } ++$mscount; } if ( $memberinfo eq $tmpa ) { $openmemgr{$curcat} = 1; last; } } if( ! $cataccess{$curcat} || $settings[7] eq 'Administrator' ) { $openmemgr{$curcat} = 1; } unless( $openmemgr{$curcat} ) { next; } Sources/SubList.pl 'modmemgr',"AdminEdit.pl&EditMemberGroups", 'modmemgr2',"AdminEdit.pl&EditMemberGroups2", 'modmemgr',"MemberGroups.pl&EditMemberGroups", 'modmemgr2',"MemberGroups.pl&EditMemberGroups2", 'modify',"ModifyMessage.pl&ModifyMessage", 'modify',"ModifyMessage.pl&ModifyMessage", 'gmodeditprofile',"MemberGroups.pl&GModEditProfile", 'gmodeditprofile2',"MemberGroups.pl&GModEditProfile2", 'moderate',"MemberGroups.pl&Moderate", 'ipban',"Admin.pl&ipban", 'ipbangm',"MemberGroups.pl&ipban", 'ipban2gm',"MemberGroups.pl&ipban2", 'clean_log',"Admin.pl&clean_log", 'cefmemgr',"MemberGroups.pl&MemGroup_Effects", 'cefmemgr2',"MemberGroups.pl&MemGroup_Effects2", 'editnews',"AdminEdit.pl&EditNews", 'editnewsgm',"MemberGroups.pl&EditNews", 'editnews2',"AdminEdit.pl&EditNews2", 'editnews2gm',"MemberGroups.pl&EditNews2", 'admin',"Admin.pl&Admin", 'assigned',"MemberGroups.pl&Assigned_Members", 'assigned2',"MemberGroups.pl&Assigned_Members2", 'reorderboards2',"ManageBoards.pl&ReorderBoards2", 'rebmemgrp',"MemberGroups.pl&RebuildMemGroup", 'membershiprecount',"Admin.pl&AdminMembershipRecount", 'memupdate',"MemberGroups.pl&Members_Update", 'memupdate2',"MemberGroups.pl&Members_Update2", 'memupdate3',"MemberGroups.pl&Members_Update3", Sources/Subs.pl if($settings[7] eq 'Administrator') { $yymenu .= qq~$menusep$img{'admin'}~; } if($settings[7] eq 'Global Moderator' && $allow_mod == 1) { $yymenu .= qq~$menusep$img{'admin'}~; } foreach ( split(/\,/, $curcataccess) ) { if( $_ && $_ eq $settings[7]) { $yyAccessCat{$yyCatBoard{$curboard}} = 1; last; } foreach ( split(/\,/, $curcataccess) ) { my $mscount=0; if( $_ && $_ eq $settings[7]) { $yyAccessCat{$yyCatBoard{$curboard}} = 1; last; } while($MemStat[$mscount]) { if($settings[6] >= $MemPostNum[$mscount] && $MemPostNum[$mscount] ne "x") { $memberinfo = $MemStat[$mscount]; } $mscount++; if ( $_ && $_ eq $memberinfo ) { $yyAccessCat{$yyCatBoard{$curboard}} = 1; last; } }