[ PHPXref.com ] [ Generated: Sun Jul 20 20:01:31 2008 ] [ PHPWind 4.3.2 ]
[ Index ]     [ Variables ]     [ Functions ]     [ Classes ]     [ Constants ]     [ Statistics ]

title

Body

[close]

/upload/ -> sort.php (source)

   1  <?php
   2  $wind_in='st';
   3  require_once ('global.php');
   4  require_once (R_P.'require/header.php');
   5  $groupid=='guest'&&    Showmsg('not_login');
   6  !$gp_allowsort && Showmsg('sort_group_right');
   7  
   8  $per=24;
   9  $cachenum=20;
  10  $cachetime='';
  11  
  12  if(empty($action)){
  13      @include_once(D_P.'data/bbscache/olcache.php');
  14      $usertotal=$guestinbbs+$userinbbs;
  15      $bbsinfo=$db->get_one("SELECT * FROM pw_bbsinfo WHERE id=1");
  16      $bbsinfo['higholtime']=get_date($bbsinfo['higholtime']);
  17      $rs=$db->get_one("SELECT SUM(fd.topic) as topic,SUM(fd.subtopic) as subtopic,SUM(fd.article) as article,SUM(fd.tpost) as tposts FROM pw_forums f LEFT JOIN pw_forumdata fd USING(fid) WHERE f.ifsub='0' AND f.cms!='1'");
  18      $topic=$rs['topic']+$rs['subtopic'];
  19      $article=$rs['article'];
  20      $tposts=$rs['tposts'];
  21      if($bbsinfo['tdtcontrol']!=$tdtime){
  22          if($db_hostweb == 1){
  23              $db->update("UPDATE pw_bbsinfo SET yposts='$tposts',tdtcontrol='$tdtime' WHERE id=1");
  24              $db->update("UPDATE pw_forumdata SET tpost=0 WHERE tpost<>'0'");
  25          }
  26          if(file_exists(D_P.'data/bbscache/ip_cache.php')){
  27              P_unlink(D_P.'data/bbscache/ip_cache.php');
  28          }
  29      }
  30      require PrintEot('sort');footer();
  31  } elseif($action=='ipstate'){
  32      !$type && $type='month';
  33      if($type=='month'){
  34          $c_month=date('Y-n');
  35          $c_year=is_numeric($year) ? $year : date('Y');
  36          $p_year=$c_year-1;
  37          $n_year=$c_year+1;
  38          $summip=0;
  39          $m_ipdb=array();
  40          $query=$db->query("SELECT month,sum(nums) as nums FROM pw_ipstates WHERE month like '$c_year%' group by month");
  41          while($rt=$db->fetch_array($query)){
  42              $summip+=$rt['nums'];
  43              $key=substr($rt['month'],strrpos($rt['month'],'-')+1);
  44              $rt['_month'] = str_replace('-','_',$rt['month']);
  45              $m_ipdb[$key]=$rt;
  46          }
  47          for($i=1;$i<=12;$i++){
  48              !$m_ipdb[$i] && $m_ipdb[$i]=array('month'=>$c_year.'-'.$i,'_month'=>$c_year.'_'.$i,'nums'=>'0');
  49          }
  50          ksort($m_ipdb);
  51      }elseif($type=='day'){
  52          $c_month=$month ? str_replace('_','-',$month) : date('Y-n');
  53          list($Y,$M)=explode('-',$c_month);
  54          if(!is_numeric($Y) || !is_numeric($M)){
  55              Showmsg('undefined_action');
  56          }
  57          if($M==1){
  58              $p_month=($Y-1).'_12';
  59              $n_month=$Y.'_2';
  60          }elseif($M==12){
  61              $p_month=$Y.'_11';
  62              $n_month=($Y+1).'_1';
  63          }else{
  64              $p_month=$Y.'_'.($M-1);
  65              $n_month=$Y.'_'.($M+1);
  66          }
  67          $sumip=0;
  68          $d_ipdb=array();
  69          $query=$db->query("SELECT day,nums FROM pw_ipstates WHERE month='$c_month' ORDER BY day");
  70          while($rt=$db->fetch_array($query)){
  71              $sumip+=$rt['nums'];
  72              $key=substr($rt['day'],strrpos($rt['day'],'-')+1);
  73              $d_ipdb[$key]=$rt;
  74          }
  75          for($i=1;$i<=date('t',strtotime($c_month.'-1'));$i++){
  76              !$d_ipdb[$i] && $d_ipdb[$i]=array('day'=>"$c_month-$i",'nums'=>'0');
  77          }
  78          ksort($d_ipdb);
  79      }
  80      require PrintEot('sort');footer();
  81  } elseif($action=='online'){
  82      require_once (R_P.'require/forum.php');
  83      require_once(D_P.'data/bbscache/forum_cache.php');
  84      require_once(D_P.'data/bbscache/level.php');
  85      $ltitle['-1']='Member';
  86      $onlinedb=openfile(D_P.'data/bbscache/online.php');
  87      if(count($onlinedb)==1){
  88          $onlinedb=array();
  89      } else{
  90          unset($onlinedb[0]);
  91      }
  92      $online_A=$guest_A=array();
  93      foreach($onlinedb as $online){
  94          if(trim($online)){
  95              $detail=explode("\t",$online);
  96              $online_A[$online]=$detail[1];
  97          }
  98      }
  99      unset($onlinedb);
 100      @asort($online_A);
 101      $online_A=@array_keys($online_A);
 102  
 103      $guestdb=openfile(D_P.'data/bbscache/guest.php');
 104      if(count($guestdb)==1){
 105          $guestdb=array();
 106      } else{
 107          unset($guestdb[0]);
 108      }
 109      foreach($guestdb as $online){
 110          if(trim($online)){
 111              $detail=explode("\t",$online);
 112              $guest_A[$online]=$detail[1];
 113          }
 114      }
 115      unset($guestdb);
 116      @asort($guest_A);
 117      $guest_A=@array_keys($guest_A);
 118      $online_A = array_merge ($online_A, $guest_A);
 119      unset($guest_A);
 120      $count=count($online_A);
 121      if(!is_numeric($page) || $page<1){
 122          $page=1;
 123      }
 124      $numofpage=$count%$db_perpage==0 ? floor($count/$db_perpage) : floor($count/$db_perpage)+1;
 125      $numofpage && $page>$numofpage && $page=$numofpage;
 126      $pages=numofpage($count,$page,$numofpage,"sort.php?action=online&");
 127      $start=($page-1)*$db_perpage;
 128      $end=min($start+$db_perpage,$count);
 129  
 130      $threaddb=array();
 131      for($i=$start;$i<$end;$i++){
 132          if(!$online_A[$i]) continue;
 133          $thread=explode("\t",$online_A[$i]);
 134          if(count($thread)<10){
 135              $thread['username']='Guest';
 136              $thread['ip']=$windid!=$manager ? "-" : $thread[0];
 137              $thread['group']='Guest';
 138              $thread['action']=$thread[4];
 139              $thread['lasttime']=$thread[5];
 140              $thread[2]=str_replace('<FiD>','',$thread[2]);
 141              $forum[$thread[2]]['name'] && $thread['forum']="<a href='thread.php?fid=$thread[2]'>".$forum[$thread[2]]['name']."</a>";
 142              $thread['atc']=$thread[3];
 143          } else{
 144              $thread['username']=$thread[0];
 145              $thread['ip']=$windid!=$manager ? "-" : $thread[2];
 146              $thread['group']=$ltitle[$thread[5]];
 147              $thread['action']=$thread[6];
 148              $thread['lasttime']=$thread[7];
 149              $forum[$thread[3]]['name'] && $thread['forum']="<a href='thread.php?fid=$thread[3]'>".$forum[$thread[3]]['name']."</a>";
 150              $thread['atc']=$thread[4];
 151          }
 152          $threaddb[]=$thread;
 153      }
 154      require_once(PrintEot('sort'));footer();
 155  } elseif($action=='member'){
 156      @set_time_limit(0);
 157      list($db_moneyname,$db_moneyunit,$db_rvrcname,$db_rvrcunit,$db_creditname,$db_creditunit)=explode("\t",$db_credits);
 158      $cachetime=@filemtime(D_P."data/bbscache/member_sort.php");
 159      if(!$per || !file_exists(D_P."data/bbscache/member_sort.php") || ($timestamp-$cachetime>$per*3600)){
 160          
 161          if(!$type){
 162              $_SORTDB=$_sort=array();
 163              $query=$db->query("SELECT m.uid,m.username,md.postnum FROM pw_memberdata md LEFT JOIN pw_members m USING(uid) ORDER BY md.postnum DESC LIMIT $cachenum");
 164              while($memdb=$db->fetch_array($query)){
 165                  if($memdb['postnum']){
 166                      $_sort[]=$memdb;
 167                  }
 168              }
 169              $_SORTDB['post']=$_sort;
 170              writeover(D_P.'data/bbscache/member_tmp.php',"<?php\r\n\$_SORTDB=".vvar_export($_SORTDB).";\r\n?>");
 171              refreshto("sort.php?action=member&type=digests",'update_cache');
 172          } elseif($type=='digests'){
 173              include(D_P."data/bbscache/member_tmp.php");
 174              $_sort=array();
 175              $query=$db->query("SELECT m.uid,m.username,md.digests FROM pw_memberdata md LEFT JOIN pw_members m USING(uid) ORDER BY md.digests DESC LIMIT $cachenum");
 176              while($memdb=$db->fetch_array($query)){
 177                  if($memdb['digests']){
 178                      $_sort[]=$memdb;
 179                  }
 180              }
 181              $_SORTDB['digests']=$_sort;
 182              writeover(D_P.'data/bbscache/member_tmp.php',"<?php\r\n\$_SORTDB=".vvar_export($_SORTDB).";\r\n?>");
 183              refreshto("sort.php?action=member&type=tpost",'update_cache');
 184          } elseif($type=='tpost'){
 185              include(D_P."data/bbscache/member_tmp.php");
 186              $_sort=array();
 187              $query=$db->query("SELECT m.uid,m.username,md.todaypost FROM pw_memberdata md LEFT JOIN pw_members m USING(uid) WHERE md.lastpost>'$tdtime' ORDER BY md.todaypost DESC LIMIT $cachenum");
 188              while($memdb=$db->fetch_array($query)){
 189                  if($memdb['todaypost']){
 190                      $_sort[]=$memdb;
 191                  }
 192              }
 193              $_SORTDB['tpost']=$_sort;
 194              writeover(D_P.'data/bbscache/member_tmp.php',"<?php\r\n\$_SORTDB=".vvar_export($_SORTDB).";\r\n?>");
 195              refreshto("sort.php?action=member&type=rvrc",'update_cache');
 196          } elseif($type=='rvrc'){
 197              include(D_P."data/bbscache/member_tmp.php");
 198              $_sort=array();
 199              $query=$db->query("SELECT m.uid,m.username,md.rvrc FROM pw_memberdata md LEFT JOIN pw_members m USING(uid) ORDER BY md.rvrc DESC LIMIT $cachenum");
 200              while($memdb=$db->fetch_array($query)){
 201                  $memdb['rvrc']=floor($memdb['rvrc']/10);
 202                  if($memdb['rvrc']){
 203                      $_sort[]=$memdb;
 204                  }
 205              }
 206              $_SORTDB['rvrc']=$_sort;
 207              writeover(D_P.'data/bbscache/member_tmp.php',"<?php\r\n\$_SORTDB=".vvar_export($_SORTDB).";\r\n?>");
 208              refreshto("sort.php?action=member&type=money",'update_cache');
 209          } elseif($type=='money'){
 210              include(D_P."data/bbscache/member_tmp.php");
 211              $_sort=array();
 212              $query=$db->query("SELECT m.uid,m.username,md.money FROM pw_memberdata md LEFT JOIN pw_members m USING(uid) ORDER BY md.money DESC LIMIT $cachenum");
 213              while($memdb=$db->fetch_array($query)){
 214                  if($memdb['money']){
 215                      $_sort[]=$memdb;
 216                  }
 217              }
 218              $_SORTDB['money']=$_sort;
 219              writeover(D_P.'data/bbscache/member_tmp.php',"<?php\r\n\$_SORTDB=".vvar_export($_SORTDB).";\r\n?>");
 220              refreshto("sort.php?action=member&type=credit",'update_cache');
 221          } elseif($type=='credit'){
 222              include(D_P."data/bbscache/member_tmp.php");
 223              $_sort=array();
 224              $query=$db->query("SELECT m.uid,m.username,md.credit FROM pw_memberdata md LEFT JOIN pw_members m USING(uid) ORDER BY md.credit DESC LIMIT $cachenum");
 225              while($memdb=$db->fetch_array($query)){
 226                  if($memdb['credit']){
 227                      $_sort[]=$memdb;
 228                  }
 229              }
 230              $_SORTDB['credit']=$_sort;
 231              writeover(D_P.'data/bbscache/member_tmp.php',"<?php\r\n\$_SORTDB=".vvar_export($_SORTDB).";\r\n?>");
 232              refreshto("sort.php?action=member&type=onlinetime",'update_cache');
 233          } elseif($type=='onlinetime'){
 234              include(D_P."data/bbscache/member_tmp.php");
 235              $_sort=array();
 236              $query=$db->query("SELECT m.uid,m.username,md.onlinetime FROM pw_memberdata md LEFT JOIN pw_members m USING(uid) ORDER BY md.onlinetime DESC LIMIT $cachenum");
 237              while($memdb=$db->fetch_array($query)){
 238                  if($memdb['onlinetime']){
 239                      $memdb['onlinetime']=floor($memdb['onlinetime']/3600);
 240                      $_sort[]=$memdb;
 241                  }
 242              }
 243              $_SORTDB['onlinetime']=$_sort;
 244              writeover(D_P.'data/bbscache/member_tmp.php',"<?php\r\n\$_SORTDB=".vvar_export($_SORTDB).";\r\n?>");
 245              refreshto("sort.php?action=member&type=custom",'update_cache');
 246          } elseif($type=='custom'){
 247              include(D_P."data/bbscache/member_tmp.php");
 248              include(D_P."data/bbscache/creditdb.php");
 249              foreach($_CREDITDB as $key=>$value){
 250                  $_sort=array();
 251                  $query=$db->query("SELECT mc.uid,username,value FROM pw_membercredit mc LEFT JOIN pw_members m ON m.uid=mc.uid WHERE mc.cid='$key' ORDER BY mc.value DESC LIMIT $cachenum");
 252                  while($memdb=$db->fetch_array($query)){
 253                      if($memdb['username'] && $memdb['value']){
 254                          $_sort[]=array('uid'=>$memdb['uid'],'username'=>$memdb['username'],$key=>$memdb['value']);
 255                      }
 256                  }
 257                  $_SORTDB[$key]=$_sort;
 258              }
 259              $MEMBERDB=savearray('_MEMBERDB',$_SORTDB);
 260              writeover(D_P.'data/bbscache/member_sort.php',"<?php\r\n".$MEMBERDB.'?>');
 261              P_unlink(D_P."data/bbscache/member_tmp.php");
 262              refreshto("sort.php?action=member",'update_cache');
 263          }
 264      }
 265      $cachetime=get_date($cachetime+$per*3600);
 266      require_once GetLang('sort');
 267      @include(D_P."data/bbscache/member_sort.php");
 268      @include(D_P."data/bbscache/creditdb.php");
 269      $_SORTDB=$_MEMBERDB;
 270      $show_url="profile.php?action=show&uid";
 271      require PrintEot('sort');footer();
 272  } elseif($action=='forum'){
 273      $cachetime=@filemtime(D_P."data/bbscache/forum_sort.php");
 274      if(!$per || !file_exists(D_P."data/bbscache/forum_sort.php") || ($timestamp-$cachetime>$per*3600)){
 275          $_SORTDB=$_sort=array();
 276          $query=$db->query("SELECT f.fid,f.name,fd.topic FROM pw_forumdata fd LEFT JOIN pw_forums f USING(fid) WHERE f.password='' AND f.allowvisit='' AND f.f_type<>'hidden' ORDER BY fd.topic DESC LIMIT $cachenum");
 277          while($forums=$db->fetch_array($query)){
 278              if($forums['topic']){
 279                  $_sort[]=$forums;
 280              }
 281          }
 282          $_SORTDB['topic']=$_sort;
 283  
 284          $_sort=array();
 285          $query=$db->query("SELECT f.fid,f.name,fd.article FROM pw_forumdata fd LEFT JOIN pw_forums f USING(fid) WHERE f.password='' AND f.allowvisit='' AND f.f_type<>'hidden' ORDER BY fd.article DESC LIMIT $cachenum");
 286          while($forums=$db->fetch_array($query)){
 287              if($forums['article']){
 288                  $_sort[]=$forums;
 289              }
 290          }
 291          $_SORTDB['article']=$_sort;
 292  
 293          $_sort=array();
 294          $query=$db->query("SELECT f.fid,f.name,fd.tpost FROM pw_forumdata fd LEFT JOIN pw_forums f USING(fid) WHERE f.password='' AND f.allowvisit='' AND f.f_type<>'hidden' ORDER BY fd.tpost DESC LIMIT $cachenum");
 295          while($forums=$db->fetch_array($query)){
 296              if($forums['tpost']){
 297                  $_sort[]=$forums;
 298              }
 299          }
 300          $_SORTDB['tpost']=$_sort;
 301          $FORUMDB=savearray('_FORUMDB',$_SORTDB);
 302          writeover(D_P.'data/bbscache/forum_sort.php',"<?php\r\n".$FORUMDB.'?>');
 303      }
 304      $cachetime=get_date($cachetime+$per*3600);
 305      require_once GetLang('sort');
 306      include(D_P."data/bbscache/forum_sort.php");
 307      $_SORTDB=$_FORUMDB;
 308      $show_url="thread.php?fid";
 309      require PrintEot('sort');footer();
 310  } elseif($action=='article'){
 311      $cachetime=@filemtime(D_P."data/bbscache/article_sort.php");
 312      if(!$per || $timestamp-$cachetime>$per*3600){
 313          $_SORTDB=$_sort=array();
 314          $query=$db->query("SELECT t.tid,t.subject,t.replies,t.fid FROM pw_threads t LEFT JOIN pw_forums f ON t.fid=f.fid WHERE t.ifcheck='1' AND t.locked<'2' AND f.password='' AND f.allowvisit='' AND f.f_type<>'hidden' ORDER BY t.replies DESC LIMIT $cachenum");
 315          while($topic=$db->fetch_array($query)){
 316              if($topic['replies']){
 317                  $topic['subject']=substrs($topic['subject'],25);
 318                  $_sort[]=$topic;
 319              }
 320          }
 321          $_SORTDB['reply']=$_sort;
 322  
 323          $_sort=array();
 324          $query=$db->query("SELECT t.tid,t.subject,t.hits,t.fid FROM pw_threads t LEFT JOIN pw_forums f ON t.fid=f.fid WHERE t.ifcheck='1' AND t.locked<'2' AND f.password='' AND f.allowvisit='' AND f.f_type<>'hidden' ORDER BY t.hits DESC LIMIT $cachenum");
 325          while($topic=$db->fetch_array($query)){
 326              if($topic['hits']){
 327                  $topic['subject']=substrs($topic['subject'],25);
 328                  $_sort[]=$topic;
 329              }
 330          }
 331          $_SORTDB['hit']=$_sort;
 332          $_sort=array();
 333          $query=$db->query("SELECT t.tid,t.subject,t.digest,t.fid FROM pw_threads t LEFT JOIN pw_forums f ON t.fid=f.fid WHERE t.digest<>'0' AND t.ifcheck='1' AND t.locked<'2' AND f.password='' AND f.allowvisit='' AND f.f_type<>'hidden'  ORDER BY t.lastpost DESC LIMIT $cachenum");
 334          while($topic=$db->fetch_array($query)){
 335              $topic['subject']=substrs($topic['subject'],25);