| [ PHPXref.com ] | [ Generated: Sun Jul 20 20:01:31 2008 ] | [ PHPWind 4.3.2 ] |
| [ Index ] [ Variables ] [ Functions ] [ Classes ] [ Constants ] [ Statistics ] | ||
[Summary view] [Print] [Text view]
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);