dz_digest.php
2.44 KB
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
<?php
/**
* [Discuz!] (C)2001-2099 Comsenz Inc.
* This is NOT a freeware, use is subject to license terms
*
* $Id: dz_digest.php 33590 2013-07-12 06:39:08Z andyzheng $
*/
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
class dz_digest extends extends_data {
function __construct() {
parent::__construct();
}
function common() {
global $_G;
$this->page = intval($_GET['page']) ? intval($_GET['page']) : 1;
$start = ($this->page - 1)*$this->perpage;
$num = $this->perpage;
loadcache('forum_guide');
$dateline = 0;
$maxnum = 50000;
$_G['setting']['guide'] = unserialize($_G['setting']['guide']);
if($_G['setting']['guide']['digestdt']) {
$dateline = time() - intval($_G['setting']['guide']['digestdt']);
}
$maxtid = C::t('forum_thread')->fetch_max_tid();
$limittid = max(0,($maxtid - $maxnum));
$tids = array_slice($_G['cache']['forum_guide']['digest']['data'], $start ,$num);
$query = C::t('forum_thread')->fetch_all_for_guide('digest', $limittid, $tids, $_G['setting']['heatthread']['guidelimit'], $dateline);
$fids = array();
loadcache('forums');
foreach($_G['cache']['forums'] as $fid => $forum) {
if($forum['type'] != 'group' && $forum['status'] > 0 && (!$forum['viewperm'] && $_G['group']['readaccess']) || ($forum['viewperm'] && forumperm($forum['viewperm']))) {
$fids[] = $fid;
}
}
$list = array();
$n = 0;
foreach($query as $thread) {
if(empty($tids) && ($thread['isgroup'] || !in_array($thread['fid'], $fids))) {
continue;
}
if($thread['displayorder'] < 0) {
continue;
}
if($tids || ($n >= $start && $n < ($start + $num))) {
$list[$thread['tid']] = $thread;
}
$n ++;
}
$threadlist = array();
if($tids) {
foreach($tids as $key => $tid) {
if($list[$tid]) {
$threadlist[$key] = $list[$tid];
}
}
} else {
$threadlist = $list;
}
unset($list);
foreach($threadlist as $thread) {
$this->field('author', '0', $thread['author']);
$this->field('dateline', '0', $thread['dateline']);
$this->field('replies', '1', $thread['replies']);
$this->field('views', '2', $thread['views']);
$this->id = $thread['tid'];
$this->title = $thread['subject'];
$this->image = '';
$this->icon = '1';
$this->poptype = '0';
$this->popvalue = '';
$this->clicktype = 'tid';
$this->clickvalue = $thread['tid'];
$this->insertrow();
}
}
}
?>