164 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			164 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
<?php
 | 
						|
  require 'lib/function.php';
 | 
						|
  require 'lib/rpg.php';
 | 
						|
  require 'lib/layout.php';
 | 
						|
  function sortbyexp($a,$b){
 | 
						|
    if($a[2]=='NAN' && $a[2]!='0') $a[2]=-1;
 | 
						|
    if($b[2]=='NAN' && $b[2]!='0') $b[2]=-1;
 | 
						|
    return($b[2]-$a[2]);
 | 
						|
  }
 | 
						|
  function sortbyrating($a,$b){return($b[1]-$a[1]);}
 | 
						|
  if($sex) $qsex="&sex=$sex";
 | 
						|
  if($pow) $qpow="&pow=$pow";
 | 
						|
  if($page) $qpag="&page=$page";
 | 
						|
  if($bio) $qbio="&bio=$bio";
 | 
						|
  if($ppp) $qppp="&ppp=$ppp";
 | 
						|
  if($rpg) $qrpg="&rpg=1";
 | 
						|
  $q=$qppp.$qpag.$qbio.$qrpg;
 | 
						|
  if(!$ppp) $ppp=50;
 | 
						|
  if(!$page) $page=0;
 | 
						|
  $lnk='<a href=memberlist.php?sort';
 | 
						|
  $clmn="$tccellhs>$lnk=$sort$qsex$qpow$qpag$qppp&bio=1>Show bio</a></td>";
 | 
						|
  if($bio) $clmn="$tccellh>User bio $smallfont($lnk=$sort$qsex$qpow$qpag$qppp>hide</a>)</td>";
 | 
						|
  if($sort=='rating') $clmn="$tccellh colspan=3>User rating</td>";
 | 
						|
  if($sex=='m') $where='WHERE sex=0';
 | 
						|
  if($sex=='f') $where='WHERE sex=1';
 | 
						|
  if($sex=='n') $where='WHERE sex=2';
 | 
						|
  if($pow!=''){
 | 
						|
    if($where) $where.=" AND powerlevel=$pow";
 | 
						|
    else $where="WHERE powerlevel=$pow";
 | 
						|
  }
 | 
						|
  $query='SELECT id,posts,regdate,name,picture,bio,powerlevel,sex,r.* FROM users LEFT JOIN users_rpg r ON id=uid ';
 | 
						|
  if($sort=='posts' or $sort=='')		$users1=mysql_query("$query$where ORDER BY posts DESC");
 | 
						|
  if($sort=='name')				$users1=mysql_query("$query$where ORDER BY name");
 | 
						|
  if($sort=='reg')				$users1=mysql_query("$query$where ORDER BY regdate DESC");
 | 
						|
  if($sort=='exp' or $sort=='rating')	$users1=mysql_query("$query$where");
 | 
						|
  if($sort=='age'){
 | 
						|
    if($sex=='m') $where='AND sex=0';
 | 
						|
    if($sex=='f') $where='AND sex=1';
 | 
						|
    if($sex=='n') $where='AND sex=2';
 | 
						|
    $where.=($where?' AND birthday':'WHERE birthday');
 | 
						|
    $users1=mysql_query("$query $where ORDER BY birthday") or print mysql_error();
 | 
						|
  }
 | 
						|
  $numusers=mysql_num_rows($users1);
 | 
						|
  for($i=0;$user=mysql_fetch_array($users1);$i++){
 | 
						|
    $user[days]=(ctime()-$user[regdate])/86400;
 | 
						|
    $user[exp]=calcexp($user[posts],$user[days]);
 | 
						|
    $user[lvl]=calclvl($user[exp]);
 | 
						|
    $users[$user[id]]=$user;
 | 
						|
    $rate[$i][0]=$user[id];
 | 
						|
    $rate[$i][2]=$user[exp];
 | 
						|
  }
 | 
						|
  if($sort=='rating'){
 | 
						|
    mysql_data_seek($users1,0);
 | 
						|
    for($i=0;$user=mysql_fetch_array($users1);$i++){
 | 
						|
	$ratescore=0;
 | 
						|
	$ratetotal=0;
 | 
						|
	$ratings=mysql_query("SELECT userfrom,userrated,rating FROM userratings WHERE userrated=$user[id]");
 | 
						|
	while($rating=@mysql_fetch_array($ratings)){
 | 
						|
	  $l=$users[$rating[userfrom]][lvl];
 | 
						|
	  if($l<1) $l=1;
 | 
						|
	  $ratescore+=$rating[rating]*$l;
 | 
						|
	  $ratetotal+=10*$l;
 | 
						|
	}
 | 
						|
	$numvotes=@mysql_num_rows($ratings);
 | 
						|
	$s=($numvotes>1?'s':'');
 | 
						|
	if($numvotes){
 | 
						|
	  $rate[$i][0]=$user[id];
 | 
						|
	  $rate[$i][1]=$ratescore*100000/$ratetotal;
 | 
						|
	  $users[$user[id]][5]='<center><b>'.(sprintf('%01.2f',$rate[$i][1]/10000))."</b></td>$tccell2>$ratescore / $ratetotal</td>$tccell2>$numvotes vote$s</td>";
 | 
						|
	  $rate[$i][1]=$rate[$i][1]/10+10000;
 | 
						|
	}else{
 | 
						|
	  $numusers--;
 | 
						|
	  $i--;
 | 
						|
	}
 | 
						|
    }
 | 
						|
    usort($rate,'sortbyrating');
 | 
						|
  }
 | 
						|
  if($sort=='exp') usort($rate,'sortbyexp');
 | 
						|
  $pagelinks=$smallfont.'Pages:';
 | 
						|
  for($i=0;$i<($numusers/$ppp);$i++){
 | 
						|
    $pagelinks.=($i==$page?' '.($i+1):" <a href=memberlist.php?sort=$sort$qsex$qpow$qbio$qrpg$qppp&page=$i>".($i+1).'</a>');
 | 
						|
  }
 | 
						|
  if($numusers>1) $s="s";
 | 
						|
  print "
 | 
						|
	$header<br>$tblstart
 | 
						|
	$tccellh colspan=2>$numusers user$s found.<tr>
 | 
						|
	$tccell1s>	Sort by:
 | 
						|
	$tccell2s>
 | 
						|
	 $lnk=posts$q$qpow$qsex>Total posts</a> | 
 | 
						|
	 $lnk=exp$q$qpow$qsex>EXP</a> | 
 | 
						|
	 $lnk=name$q$qpow$qsex>User name</a> | 
 | 
						|
	 $lnk=reg$q$qpow$qsex>Registration date</a> | 
 | 
						|
	 $lnk=age$q$qpow$qsex>Age</a> | 
 | 
						|
	 $lnk=rating$q$qpow$qsex>Rating</a><tr>
 | 
						|
	$tccell1s>	Sex:
 | 
						|
	$tccell2s>
 | 
						|
	 $lnk=$sort$q$qpow&sex=m>Male</a> | 
 | 
						|
	 $lnk=$sort$q$qpow&sex=f>Female</a> | 
 | 
						|
	 $lnk=$sort$q$qpow&sex=n>N/A</a> | 
 | 
						|
	 $lnk=$sort$q$qpow>All</a><tr>
 | 
						|
	$tccell1s>	Powerlevel:
 | 
						|
	$tccell2s>
 | 
						|
	 $lnk=$sort$q$qsex&pow=-1>Banned</a> | 
 | 
						|
	 $lnk=$sort$q$qsex&pow=0>Normal</a> | 
 | 
						|
	 $lnk=$sort$q$qsex&pow=1>Local moderator</a> | 
 | 
						|
	 $lnk=$sort$q$qsex&pow=2>Full moderator</a> | 
 | 
						|
	 $lnk=$sort$q$qsex&pow=3>Administrator</a> | 
 | 
						|
	 $lnk=$sort$q$qsex>All</a>
 | 
						|
	$tblend<br>$tblstart
 | 
						|
	$tccellh width=30>#</td>
 | 
						|
	$tccellh width=60>Picture</td>
 | 
						|
	$tccellh>Username</td>
 | 
						|
  ";
 | 
						|
  if(!$rpg){
 | 
						|
    print "
 | 
						|
	$clmn
 | 
						|
	$tccellh width=150>Registered on</td>
 | 
						|
	$tccellh width=60>Posts</td>
 | 
						|
	$tccellh width=30>Level</td>
 | 
						|
	$tccellh width=100>EXP<tr>
 | 
						|
    ";
 | 
						|
  }else{
 | 
						|
    print "$tccellh width=30>Level</td>";
 | 
						|
    for($i=0;$i<9;$i++) print "$tccellh width=6%>".$stat[$i].'</td>';
 | 
						|
    print "$tccellh width=9%><img src=images/coin.gif><tr>";
 | 
						|
  }
 | 
						|
  $i=$ppp*$page;
 | 
						|
  for($u=0;$rate[$i] && $i<($ppp*($page+1)) && $i<$numusers;$u++){
 | 
						|
    if($u) $ulist.='<tr>';
 | 
						|
    $user=$users[$rate[$i][0]];
 | 
						|
    $t=$user[0];
 | 
						|
    $user[picture]=str_replace('>','%3E',$user[picture]);
 | 
						|
    $userpicture="<img width=60 height=60 src=\"$user[picture]\">";
 | 
						|
    if(!$user[picture]) $userpicture=' ';
 | 
						|
    $namecolor=getnamecolor($user[sex],$user[powerlevel]);
 | 
						|
    if(!$bio and $sort!='rating') $user[5]=' ';
 | 
						|
    if($rpg){
 | 
						|
	$eqitems=mysql_query("SELECT * FROM items");
 | 
						|
	while($item=mysql_fetch_array($eqitems)) $items[$item[id]]=$item;
 | 
						|
	$stats=getstats($user,$items);
 | 
						|
    }
 | 
						|
    $ulist.="
 | 
						|
	$tccell2>".($i+1).".</td>
 | 
						|
	$tccell1l>$userpicture</td>
 | 
						|
	$tccell2l><a href=profile.php?id=$t><font $namecolor>$user[3]</font></a></td>
 | 
						|
    ";
 | 
						|
    if(!$rpg){
 | 
						|
	$ulist.="
 | 
						|
	  $tccell1ls>$user[5]</td>
 | 
						|
	  $tccell2>".date($dateformat,$user[2]+$tzoff)."</td>
 | 
						|
	  $tccell1>$user[1]</td>
 | 
						|
	  $tccell1>$user[lvl]</td>
 | 
						|
	  $tccell1>$user[exp]
 | 
						|
	";
 | 
						|
    }else{
 | 
						|
	$ulist.="$tccell1>$user[lvl]</td>";
 | 
						|
	for($k=0;$k<9;$k++) $ulist.="$tccell1>".$stats[$stat[$k]].'</td>';
 | 
						|
	$ulist.="$tccell1>$stats[GP]</td>";
 | 
						|
    }
 | 
						|
    $i++;
 | 
						|
  }
 | 
						|
  print "$ulist$tblend$pagelinks$footer";
 | 
						|
  printtimedif($startingtime);
 | 
						|
?>
 |