############################################################################### # Memberlist.pl # ############################################################################### # YaBB: Yet another Bulletin Board # # Open-Source Community Software for Webmasters # # Version: YaBB 1 Gold - SP 1.2 # # Released: December 2001; Updated January 27, 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.2"; if($username eq "Guest") { &fatal_error("$txt{'223'}"); } # 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'}); } if($action eq "mlletter") { $page = "a"; $showpage = "A"; while($page ne "z") { $LetterLinks .= qq($showpage  ); $page++; $showpage++; } $LetterLinks .= qq(Z ); } require "$sourcedir/ExtendedProfiles.pl"; my $additional_headers = ext_memberlist_tableheader(); my $headercount = 7 + ext_memberlist_get_headercount($additional_headers); $TableHeader .= qq( ); if($LetterLinks ne "") { $TableHeader .= qq( ); } $TableHeader .= qq( $additional_headers ); $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); $barchart = ($member[6] / 5); if ($barchart < 1) {$Bar = "$Bar";} elsif ($barchart > 100) { $Bar = qq~~; } else { $Bar = qq~~; } if ($Bar eq "") { $Bar=" "; } if($member[6] > 100000) { $member[6] = "$txt{'683'}"; } if($member[7] eq "Administrator") { $member[7] = "$membergroups[0]"; } my $pusername = $name; $pusername =~ s/[\r\n]//g; my $additional_tds = ext_memberlist_tds($pusername); if($tempname) { $yymain .= qq~ $member[1] ~; if ($member[19] eq "checked" && $settings[7] ne "Administrator" && $allow_hide_email eq 1) { $yymain .= qq~ $txt{'722'} ~; } else { $yymain .= qq~ $member[2] ~; } $yymain .= qq~ $member[3]  $member[6]  $member[7]  $Bar $additional_tds ~; } } $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 case_insensitive { uc($::a) cmp uc ($::b); } 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($SearchName eq $letter) {push(@ToShow,$memberfile);} } fclose(MEMBERSLISTREAD); @ToShow = sort(case_insensitive(@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); $barchart = ($member[6] / 5); if ($barchart < 1) {$Bar = "$Bar";} elsif ($barchart > 100) {$Bar = qq~~;} else { $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 ($member[19] eq "checked" && $settings[7] ne "Administrator" && $allow_hide_email eq 1) { $yymain .= qq~ $txt{'722'} ~; } else { $yymain .= qq~ $member[2] ~; } my $pusername = $membername; $pusername =~ s/[\r\n]//g; my $additional_tds = ext_memberlist_tds($pusername); $yymain .= qq~ $member[3]  $member[6]  $member[7]  $Bar $additional_tds ~; } $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); chomp @member; if($member[1] ne "") { $barchart = ($member[6] / 5); if ($barchart < 1) {$Bar = "$Bar";} elsif ($barchart > 100) {$Bar = qq~~;} else { $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]"; } $yymain .= qq~ $member[1] ~; if ($member[19] eq "checked" && $settings[7] ne "Administrator" && $allow_hide_email eq 1) { $yymain .= qq~ $txt{'722'} ~; } else { $yymain .= qq~ $member[2] ~; } my $pusername = $membername; $pusername =~ s/[\r\n]//g; my $additional_tds = ext_memberlist_tds($pusername); $yymain .= qq~ $member[3]  $member[6]  $member[7]  $Bar $additional_tds ~; } } $yymain .= qq~$TableFooter~; $yytitle = "$txt{'313'} $TopAmmount $txt{'314'}"; &template; exit; } 1;