-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathlatestposts.php
93 lines (86 loc) · 3.9 KB
/
latestposts.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?php
require 'lib/function.php';
$maxtime = (($_GET['t']) ? max(min($_GET['t'], 86400), 60) : false);
$maxposts = (($_GET['p']) ? max(min($_GET['p'], 100), 1) : false);
if ($maxtime === false && $maxposts === false) $maxposts = 50; // Default
$data = $sql->query(
"SELECT p.id, p.user, p.date as date, f.title as ftitle, t.forum as fid, t.title as title, ".
"u.name as uname, u.sex as usex, u.powerlevel as upowerlevel ".
(($log) ? ", r.read AS tread, r.time as treadtime " : "").
"FROM `posts` p ".
"LEFT JOIN `threads` t ON p.thread = t.id ".
"LEFT JOIN `forums` f ON t.forum = f.id ".
"LEFT JOIN `users` u ON p.user = u.id ".
(($log) ? "LEFT JOIN threadsread r ON (t.id=r.tid AND r.uid=$loguser[id]) " : "").
"\n WHERE f.minpower <= '". $loguser['powerlevel'] ."' ".
"AND p.date >= ".(($maxtime !== false) ? (ctime()-$maxtime) : (ctime()-86400*7))." ". // time limit here
(($_GET['lastid']) ? "AND p.id > $_GET[lastid] ":"").
"\nORDER BY `id` DESC ".
(($maxposts !== false) ? "LIMIT 0, $maxposts" : '') // posts limit here
);
$_count = @mysql_num_rows($data);
$output = "";
if ($_GET['raw']) {
$outarray = array('id', 'ftitle', 'fid', 'title', 'uname', 'upowerlevel', 'usex', 'ucolor', 'date', 'user');
$outchunks = Array();
}
$windowtitle = "$boardname - A revolution in posting technology™";
require 'lib/layout.php';
if($log && !$_GET['raw']) {
$headlinks.=' - <a href=index.php?action=markallforumsread>Mark all posts read</a>';
$header=makeheader($header1,$headlinks,$header2);
$forumread = $sql->getresultsbykey("SELECT forum,readdate FROM forumread WHERE user=$loguserid", 'forum', 'readdate');
}
$_counter = 1;
while ($in = $sql->fetch($data, MYSQL_ASSOC)) {
if (!$_GET['raw']) {
if ($log && $in['date'] > max($forumread[$in['fid']], $in['treadtime']))
$newpost = $statusicons['new']." ";
else $newpost = "";
$output .= "<tr>
$tccell2>". $in['id'] ."</td>
$tccell2><a href='forum.php?id=". $in['fid'] ."'>". $in['ftitle'] ."</a></td>
$tccell1l>$newpost<a href='thread.php?pid=". $in['id'] ."&r=1#". $in['id'] ."'>". $in['title'] ."</a></td>
$tccell1><a href='profile.php?id=". $in['user'] ."'><font ". getnamecolor($in['usex'], $in['upowerlevel']) .">". $in['uname'] ."</font></a></td>
$tccell2>". timeunits(ctime() - $in['date']) ."</td>
</tr>\n";
}
else {
$in['ucolor'] = str_replace('color=', '', getnamecolor($in['usex'], $in['upowerlevel']));
$in['title'] = str_replace("\\", "\\\\", $in['title']);
$temp = Array();
foreach($outarray as $outkey)
$temp[] = ('"'.$outkey . "\":\"" . htmlspecialchars($in[$outkey]) . '"');
$temp = "{".implode(",",$temp)."}".($_counter == $_count ? "" : ",");
$output .= $temp;
}
$_counter++;
}
if (!$_GET['raw']) {
/* Doesn't work, as far as I'm aware?
if ($_GET['fungies']) {
$jscripts = '<script type="text/javascript" src="/js/jquery.min.js"></script><script type="text/javascript" src="/js/latestposts.js"></script>';
} */
print "
$header
Show:$smallfont
<br>Last <a href='?t=1800'>30 minutes</a> - <a href='?t=3600'>1 hour</a> - <a href='?t=18000'>5 hours</a> - <a href='?t=86400'>1 day</a>
<br>Most recent <a href='?p=20'>20 posts</a> - <a href='?p=50'>50 posts</a> - <a href='?p=100'>100 posts</a></font>
<table class='table' cellspacing='0' name='latest'>
<tr>$tccellc colspan=6><b>Latest Posts</b></td></tr>
<tr>
$tccellh width=30> </td>
$tccellh width=280>Forum</td>
$tccellh width=*>Thread</td>
$tccellh width=200>User</td>
$tccellh width=130>Time</td>
</tr>
$output
". $tblend . $jscripts . $footer;
printtimedif($startingtime);
}
else {
header("Content-type: text/plain");
header("Ajax-request: ".IS_AJAX_REQUEST);
print '{"tzoff": "'.$tzoff.'", "localtime": "'.ctime().'", "posts": ['.$output."]}";
}