############################################################################### # Memberlist.pl # ############################################################################### # YaBB: Yet another Bulletin Board # # Open-Source Community Software for Webmasters # # Version: YaBB 1 Gold - SP 1.3 # # Released: December 2001; Updated April 6, 2003 # # Distributed by: http://www.yabbforum.com # # =========================================================================== # # Copyright (c) 2000-2003 YaBB (www.yabbforum.com) - All Rights Reserved. # # Software by: The YaBB Development Team # # with assistance from the YaBB community. # # Sponsored by: Xnull Internet Media, Inc. - http://www.ximinc.com # ############################################################################### $memberlistplver = "1 Gold - SP 1.3"; if($username eq "Guest") { &fatal_error("$txt{'223'}"); } require "$sourcedir/StealthMail.pl"; # Load the membergroups list. fopen(FILE, "$vardir/membergroups.txt") || &fatal_error("100 $txt{'106'}: $txt{'23'} membergroups.txt"); @membergroups = ; fclose(FILE); if($action eq "mlall") { $Sort .= qq($txt{'303'} | ); } else { $Sort .= qq($txt{'303'} | ); } if($action eq "mlletter") { $Sort .= qq($txt{'304'} | ); } else { $Sort .= qq($txt{'304'} | ); } if($action eq "mltop") { $Sort .= qq($txt{'305'} $txt{'411'} $TopAmmount $txt{'306'}); } else { $Sort .= qq($txt{'305'} $txt{'411'} $TopAmmount $txt{'306'}); } $barmax = 0; fopen(MEMBERLISTREAD,"$memberdir/memberlist.txt"); @member = (); while(chomp($membername=)) { fopen(MEMBERFILE,"$memberdir/$membername.dat"); @member = ; fclose(MEMBERFILE); chomp @member; if($member[6] > $barmax) { $barmax = $member[6]; } } fclose(MEMBERLISTREAD); if($barmax == 0) { $barmax = 1; } if($action eq "mlletter") { $page = "a"; $showpage = "A"; while($page ne "z") { $LetterLinks .= qq($showpage  ); $page++; $showpage++; } $LetterLinks .= qq(Z $txt{'800'} ); } $TableHeader .= qq( ); if($LetterLinks ne "") { $TableHeader .= qq( ); } $TableHeader .= qq( ); $TableFooter = qq~
$Sort
$LetterLinks
$txt{'35'} $txt{'307'} $txt{'96'} $txt{'86'} $txt{'87'} $txt{'21'}
~; sub MLAll { if($username eq "Guest") { &fatal_error("$txt{'223'}"); } # Get the number of members fopen(FILE, "$memberdir/memberlist.txt"); @memberlist = ; $memcount = @memberlist; @membername = @memberlist; fclose(FILE); if($INFO{'start'} eq "") { $start=0; } else { $start="$INFO{'start'}"; } $numshown=0; $numbegin = ($start + 1); $numend = ($start + $MembersPerPage); if($numend > $memcount) { $numend = $memcount; } $b = $start; $yymain .= qq~
$txt{'308'} $numbegin $txt{'311'} $numend ($txt{'309'} $memcount $txt{'310'})

~; $yymain .= qq~$TableHeader~; while(($numshown < $MembersPerPage)) { $numshown++; $c=0; $pages=""; chomp(@membername); $tempname = $membername[$b]; $membername[$b] =~ s/ //gi; $membername[$b] =~ s/\n//gi; $name = $membername[$b]; $b++; @member = (); $Bar = ""; $ICQ = ""; fopen(MEMBERFILEREAD,"$memberdir/$name.dat"); @member = ; fclose(MEMBERFILEREAD); chomp @member; &FormatUserName($name); if($member[4] ne "" && $member[4] !~ m~\Ahttp://\S*~) { $member[4] = "$member[3]"; } elsif($member[4] ne "") { $member[4] = "$member[3]"; } $barchart = ($member[6] * 100) / $barmax; $barchart = int($barchart + 0.5); if($barchart > 100) {$barchart = 100} $Bar = qq~~; if ($Bar eq "") { $Bar=" "; } if($member[6] > 100000) { $member[6] = "$txt{'683'}"; } if($member[7] eq "Administrator") { $member[7] = "$membergroups[0]"; } if($tempname) { $cryptmail = &scramble($member[2]); $memail = qq~$scripturl?action=mailto;user=$name;mail_id=$cryptmail~; $yymain .= qq~ $member[1] ~; if ($showgmod_email) { if ($member[19] eq "checked" && $settings[7] ne "Administrator" && $settings[7] ne 'Global Moderator' && $allow_hide_email eq 1) { $yymain .= qq~ $txt{'722'} ~; } else { $yymain .= qq~ $txt{'hidemail'} ~; } } else { if ($member[19] eq "checked" && $settings[7] ne "Administrator" && $settings[7] eq 'Global Moderator' && $allow_hide_email eq 1) { $yymain .= qq~ $txt{'722'} ~; } else { $yymain .= qq~ $txt{'hidemail'} ~; } } $yymain .= qq~ $member[4]  $member[6]  $member[7]  $Bar ~; } } $yymain .= qq~$TableFooter~; # Build the page links list. $postdisplaynum = 8; # max number of pages to display $max = $memcount; $start = $INFO{'start'} || 0; $start = ( int( $start / $MembersPerPage ) ) * $MembersPerPage; $tmpa = 1; $tmpx = int( $max / $MembersPerPage ); if ($start >= (($postdisplaynum-1) * $MembersPerPage)) { $startpage = $start - (($postdisplaynum-1) * $MembersPerPage); $tmpa = int( $startpage /$MembersPerPage ) + 1; } if ($max >= $start + ($postdisplaynum * $MembersPerPage)) { $endpage = $start + ($postdisplaynum * $MembersPerPage); } else { $endpage = $max } if ($startpage > 0) { $pageindex = qq~1 ... ~; } if ($startpage == $MembersPerPage) { $pageindex = qq~1 ~;} for( $counter = $startpage; $counter < $endpage; $counter += $MembersPerPage ) { $pageindex .= $start == $counter ? qq~$tmpa ~ : qq~$tmpa ~; $tmpa++; } $tmpx = $max - $MembersPerPage; $outerpn = int($tmpx / $MembersPerPage) + 0; $lastpn = int($memcount / $MembersPerPage) + 1; $lastptn = ($lastpn - 1) * $MembersPerPage; if ($endpage < $max - ($MembersPerPage) ) {$pageindexadd = qq~ ... ~;} if ($endpage != $max) {$pageindexadd .= qq~ $lastpn~;} $pageindex .= $pageindexadd; $yymain .= qq~
$txt{'139'}: $pageindex
~; $yytitle = "$txt{'308'} $numbegin $txt{'311'} $numend"; &template; exit; } sub MLByLetter { if($username eq "Guest") { &fatal_error("$txt{'223'}"); } $yymain .= qq~$TableHeader~; $letter = $INFO{'letter'}; if($INFO{'start'} eq "") { $start=0; } else { $start="$INFO{'start'}"; } unless(!$letter) { fopen(MEMBERSLISTREAD,"$memberdir/memberlist.txt"); while(chomp($memberfile=)) { fopen(MEMBERFILEREAD,"$memberdir/$memberfile.dat"); @member = ; fclose(MEMBERFILEREAD); chomp @member; $SearchName = $member[1]; $SearchName = substr $SearchName,0,1; $SearchName = lc $SearchName; if($letter eq "other" && (($SearchName lt "a") || ($SearchName gt "z"))) { push(@ToShow,$memberfile); } elsif($SearchName eq $letter) { push(@ToShow,$memberfile); } } fclose(MEMBERSLISTREAD); @ToShow = sort { uc($a) cmp uc($b)} @ToShow; $memcount=@ToShow; $numshown=0; $b=$start; unless ($memcount == 0) { while(($numshown < $MembersPerPage)) { $membername=@ToShow[$b]; if ($membername ne "") { @member = (); $Bar = ""; $ICQ = ""; fopen(MEMBERFILEREAD,"$memberdir/$membername.dat"); @member = ; fclose(MEMBERFILEREAD); chomp @member; &FormatUserName($membername); $cryptmail = &scramble($member[2]); $memail = qq~$scripturl?action=mailto;user=$membername;mail_id=$cryptmail~; if($member[4] ne "" && $member[4] !~ m~\Ahttp://\S*~) { $member[4] = "$member[3]"; } elsif($member[4] ne "") { $member[4] = "$member[3]"; } $barchart = ($member[6] * 100) / $barmax; $barchart = int($barchart + 0.5); if($barchart > 100) {$barchart = 100} $Bar = qq~~; $member[8] =~ s/[\n\r]//g; if ($Bar eq "") { $Bar=" "; } if($member[6] > 100000) { $member[6] = "$txt{'683'}"; } if($member[7] eq "Administrator") { $member[7] = "$membergroups[0]"; } $yymain .= qq~ $member[1] ~; if ($showgmod_email) { if ($member[19] eq "checked" && $settings[7] ne "Administrator" && $settings[7] ne 'Global Moderator' && $allow_hide_email eq 1) { $yymain .= qq~ $txt{'722'} ~; } else { $yymain .= qq~ $txt{'hidemail'} ~; } } else { if ($member[19] eq "checked" && $settings[7] ne "Administrator" && $settings[7] eq 'Global Moderator' && $allow_hide_email eq 1) { $yymain .= qq~ $txt{'722'} ~; } else { $yymain .= qq~ $txt{'hidemail'} ~; } } $yymain .= qq~ $member[4]  $member[6]  $member[7]  $Bar ~; } $numshown++; $b++; } } } if(!$letter) {$yymain .= qq~
$txt{'759'}

~;} if($memcount == 0 && $letter) {$yymain .= qq~
$txt{'760'}

~;} $yymain .= qq~$TableFooter~; unless ($memcount == 0) { # Build the page links list. $postdisplaynum = 4; # max number of pages to display $max = $memcount; $start = $INFO{'start'} || 0; $start = ( int( $start / $MembersPerPage ) ) * $MembersPerPage; $tmpa = 1; $tmpx = int( $max / $MembersPerPage ); if ($start >= (($postdisplaynum-1) * $MembersPerPage)) { $startpage = $start - (($postdisplaynum-1) * $MembersPerPage); $tmpa = int( $startpage /$MembersPerPage ) + 1; } if ($max >= $start + ($postdisplaynum * $MembersPerPage)) { $endpage = $start + ($postdisplaynum * $MembersPerPage); } else { $endpage = $max } if ($startpage > 0) { $pageindex = qq~1 ... ~; } if ($startpage == $MembersPerPage) { $pageindex = qq~1 ~;} for( $counter = $startpage; $counter < $endpage; $counter += $MembersPerPage ) { $pageindex .= $start == $counter ? qq~$tmpa ~ : qq~$tmpa ~; $tmpa++; } $tmpx = $max - $MembersPerPage; $outerpn = int($tmpx / $MembersPerPage) + 0; $lastpn = int($memcount / $MembersPerPage) + 1; $lastptn = ($lastpn - 1) * $MembersPerPage; if ($endpage < $max - ($MembersPerPage) ) {$pageindexadd = qq~ ... ~;} if ($endpage != $max) {$pageindexadd .= qq~ $lastpn~;} $pageindex .= $pageindexadd; $yymain .= qq~
$txt{'139'}: $pageindex
~; } $yytitle = "$txt{'312'}"; &template; exit; } sub MLTop { if($username eq "Guest") { &fatal_error("$txt{'223'}"); } $yymain .= qq~$TableHeader~; %TopMembers = (); fopen(MEMBERLISTREAD,"$memberdir/memberlist.txt"); @member = (); while(chomp($membername=)) { fopen(MEMBERFILE,"$memberdir/$membername.dat"); @member = ; fclose(MEMBERFILE); chomp @member; $TopMembers{$membername} = $member[6]; } fclose(MEMBERLISTREAD); my @toplist = sort {$TopMembers{$a} <=> $TopMembers{$b}} keys %TopMembers; @toplist = reverse @toplist; $TopListNum = $TopAmmount - 1; for ($i=0;$i<=$TopListNum;$i++) { @member = (); $Bar = ""; $ICQ = ""; $membername = @toplist[$i]; fopen(MEMBERFILEREAD,"$memberdir/$membername.dat"); @member = ; fclose(MEMBERFILEREAD); &FormatUserName($membername); if($member[4] ne "" && $member[4] !~ m~\Ahttp://\S*~) { $member[4] = "$member[3]"; } elsif($member[4] ne "") { $member[4] = "$member[3]"; } chomp @member; if($member[1] ne "") { $barchart = ($member[6] * 100) / $barmax; $barchart = int($barchart + 0.5); if($barchart > 100) {$barchart = 100} $Bar = qq~~; $member[8] =~ s/[\n\r]//g; if($member[8] ne "") { $ICQ = qq~$member[8]~; } if ($Bar eq "") { $Bar=" "; } if($member[6] > 100000) { $member[6] = "$txt{'683'}"; } if($member[7] eq "Administrator") { $member[7] = "$membergroups[0]"; } $cryptmail = &scramble($member[2]); $memail = qq~$scripturl?action=mailto;user=$membername;mail_id=$cryptmail~; $yymain .= qq~ $member[1] ~; if ($showgmod_email) { if ($member[19] eq "checked" && $settings[7] ne "Administrator" && $settings[7] ne 'Global Moderator' && $allow_hide_email eq 1) { $yymain .= qq~ $txt{'722'} ~; } else { $yymain .= qq~ $txt{'hidemail'} ~; } } else { if ($member[19] eq "checked" && $settings[7] ne "Administrator" && $settings[7] eq 'Global Moderator' && $allow_hide_email eq 1) { $yymain .= qq~ $txt{'722'} ~; } else { $yymain .= qq~ $txt{'hidemail'} ~; } } $yymain .= qq~ $member[4]  $member[6]  $member[7]  $Bar ~; } } $yymain .= qq~$TableFooter~; $yytitle = "$txt{'313'} $TopAmmount $txt{'314'}"; &template; exit; } sub ShowStaff { my(@members, @mem, @membera, $membernum, $adm, $gmod, %mod); my (@members, $curentry); $adm = ''; $gmod = ''; fopen(FILE, "$memberdir/memberlist.txt"); @members = ; fclose(FILE); foreach $curentry (@members) { chomp $curentry; &LoadUser($curentry); $cryptmail = &scramble($userprofile{$curentry}->[2]); $memail = qq~$scripturl?action=mailto;user=$curentry;mail_id=$cryptmail~; if( $userprofile{$curentry}->[7] eq 'Administrator' ) { $adm .= qq~
$userprofile{$curentry}->[1] $txt{'190'} $staff_txt{'7'} $userprofile{$curentry}->[7] $img{'message_sm'} $img{'email_sm'}
\n~; } elsif( $userprofile{$curentry}->[7] eq 'Global Moderator' ) { $gmod .= qq~
$userprofile{$curentry}->[1] $txt{'190'} $staff_txt{'7'} $userprofile{$curentry}->[7] $img{'message_sm'} $img{'email_sm'}
\n~; } } #Load up boards so we can check moderators opendir(BOARD, "$boardsdir"); @board = readdir(BOARD); closedir(BOARD); chomp @board; foreach $line (@board){ ($name, $extension) = split (/\./, $line); if ($extension eq "dat") { #$tmpa .= "$name|"; fopen(BOARD, "$boardsdir/$line"); #Load up the boards moderators @data = ; fclose(BOARD); chomp @data; @moder = split(/\|/, $data[2]); foreach $modera (@moder) { fopen(FIL, "$memberdir/$modera.dat"); @mema = ; fclose(FILE); if($mema[7] ne 'Administrator' && $mema[7] ne 'Global Moderator') { $mod{$modera} .= "$name,"; } } # $mod{$name} = "$data[2]"; } } $yymain .= qq~
   $mbname
   $staff_txt{'2'}
$staff_txt{'4'}
$staff_txt{'3'} $webmaster_email


~; #Display the admins $yymain .= qq~ $adm
$txt{'684'}
$txt{'68'} $staff_txt{'5'} $txt{'87'} $staff_txt{'6'} $txt{'69'}


~; #Display the GM's $yymain .= qq~ $gmod
$txt{'gmod4'}
$txt{'68'} $staff_txt{'5'} $txt{'87'} $staff_txt{'6'} $txt{'69'}


~; # Print the moderator header $yymain .= qq~ ~; #Finally, start displaying the moderators #@tmp = split(/\,/, $tmpa); while (($key, $value) = each %mod) { my(@tmpmod, @tmpc, $bnames); @tmpmod = split(/\,/, $value); foreach $line (@tmpmod) { fopen(tmp, "$boardsdir/$line.dat"); @tmpc = ; fclose(tmp); chomp @tmpc; $bnames .= qq~$tmpc[0]
~; } $bnames =~ s~, \Z~~; &LoadUser($key); $cryptmail = &scramble($userprofile{$key}->[2]); $memail = qq~$scripturl?action=mailto;user=$key;mail_id=$cryptmail~; if($userprofile{$key}->[7] eq 'Administrator' || $userprofile{$key}->[7] eq 'Global Moderator') { next; } $yymain .= qq~
~; } $yymain .= qq~
$txt{'299'}
$txt{'68'} $staff_txt{'5'} $txt{'87'} $staff_txt{'6'} $txt{'69'}
$userprofile{$key}->[1] $bnames $txt{'12'} $img{'message_sm'} $img{'email_sm'}


~; $yytitle = "$staff_txt{'1'}"; &template; exit; } 1;