1 |
<?php |
2 |
/* |
3 |
* Created on 2010/11/28 by naao http://www.naaon.com/ |
4 |
* $Id: whatsnew.inc.php,v 0.01 2010/11/28 naao Exp $ |
5 |
*/ |
6 |
|
7 |
// === eval begin === |
8 |
eval( ' |
9 |
function '.$mydirname.'_new($limit=0, $offset=0) { |
10 |
return xsns_new_base( "'.$mydirname.'", $limit , $offset ) ; |
11 |
} |
12 |
' ) ; |
13 |
|
14 |
if( ! function_exists( 'xsns_new_base' ) ) { |
15 |
|
16 |
function xsns_new_base( $mydirname, $limit=0, $offset=0 ) |
17 |
{ |
18 |
if( preg_match( '/[^0-9a-zA-Z_-]/' , $mydirname ) ) die( 'Invalid mydirname' ) ; |
19 |
$constpref = '_MB_' . strtoupper( $mydirname ) ; |
20 |
|
21 |
$URL_MOD = XOOPS_URL."/modules/".$mydirname; |
22 |
|
23 |
$mytrustdirpath = dirname(dirname( __FILE__ )) ; |
24 |
|
25 |
$db =& Database::getInstance(); |
26 |
$myts =& MyTextSanitizer::getInstance(); |
27 |
|
28 |
$block = array(); |
29 |
$perm_arr = array(); |
30 |
|
31 |
$own_uid = is_object($xoopsUser) ? $xoopsUser->getVar('uid') : -1; |
32 |
|
33 |
// naao from |
34 |
//各トピの最新コメントIDを取得 |
35 |
$sql = "SELECT c_commu_topic_id AS tid, MAX(c_commu_topic_comment_id) AS com_id FROM ". $db->prefix($mydirname.'_c_commu_topic_comment')." GROUP BY tid;"; |
36 |
|
37 |
$result = $db->query($sql); |
38 |
if(!$result || $db->getRowsNum($result) < 1){ |
39 |
return array(); |
40 |
} |
41 |
|
42 |
while ( $dbdat = $db->fetchArray($result)){ |
43 |
$com_num[] = intval($dbdat['com_id']); |
44 |
} |
45 |
|
46 |
$whr_num = "tc.c_commu_topic_comment_id IN (" .implode( "," , $com_num ). ") "; |
47 |
|
48 |
// topic search |
49 |
$sql = "SELECT ". |
50 |
"c.c_commu_id AS cid,". |
51 |
"c.name AS cname,". |
52 |
"c.uid_admin AS cadmin,". |
53 |
"c.uid_sub_admin AS csubadmin,". |
54 |
"c.public_flag AS cflag,". |
55 |
"t.c_commu_topic_id AS tid,". |
56 |
"t.name AS tname,". |
57 |
"tc.body AS tcbody,". |
58 |
"tc.uid AS tcuid,". |
59 |
"tc.number AS comment_count,". |
60 |
"tc.r_datetime AS r_datetime,". |
61 |
"tc.c_commu_topic_comment_id ". |
62 |
" FROM (". $db->prefix($mydirname.'_c_commu'). " c". |
63 |
" INNER JOIN ". $db->prefix($mydirname.'_c_commu_topic_comment'). " tc". |
64 |
" USING(c_commu_id))". |
65 |
" INNER JOIN ". $db->prefix($mydirname.'_c_commu_topic'). " t". |
66 |
" USING(c_commu_topic_id)". |
67 |
" WHERE ".$whr_num. |
68 |
" ORDER BY r_datetime DESC"; |
69 |
// naao to |
70 |
|
71 |
$rs = $db->query($sql); |
72 |
if(!$rs || $db->getRowsNum($rs) < 1){ |
73 |
return array(); |
74 |
} |
75 |
|
76 |
$today = date('Y-m-d'); |
77 |
$i = 0; |
78 |
require_once dirname(dirname(__FILE__)).'/userlib/utils.php'; |
79 |
|
80 |
$ret = array(); |
81 |
while($row = $db->fetchArray($rs)) { |
82 |
|
83 |
if($limit <= $i){ |
84 |
break; |
85 |
} |
86 |
|
87 |
// check community permission |
88 |
if($row['cflag']==3 && !$xoopsUserIsAdmin && $row['cadmin']!=$own_uid && $row['csubadmin']!=$own_uid){ |
89 |
if($own_uid < 0){ |
90 |
continue; |
91 |
} |
92 |
$cid = intval($row['cid']); |
93 |
if(!isset($perm_arr[$cid])){ |
94 |
$perm_arr[$cid] = xsns_is_community_member($mydirname, $cid, $own_uid); |
95 |
} |
96 |
if(!$perm_arr[$cid]){ |
97 |
continue; |
98 |
} |
99 |
} |
100 |
|
101 |
$r_time = strtotime($row['r_datetime']); |
102 |
$comment_index = intval(intval($row['comment_count'])/20)*20; //naao |
103 |
|
104 |
$ret[$i]['description'] = trim( $myts->htmlSpecialChars($row['tcbody'])); |
105 |
$ret[$i]['link'] = XOOPS_URL.'/modules/'.$mydirname.'/?p=topic&tid='.intval($row['tid']).'&s='.$comment_index.'#'.intval($row['comment_count']); |
106 |
$ret[$i]['cname'] = $myts->htmlSpecialChars($row['cname']); |
107 |
$ret[$i]['cat_link'] = XOOPS_URL.'/modules/'.$mydirname.'/?cid='.intval($row['cid']); |
108 |
$ret[$i]['title'] = $myts->htmlSpecialChars($row['tname']); |
109 |
$ret[$i]['time'] = $r_time; |
110 |
$ret[$i]['uid'] = intval($row['tcuid']); |
111 |
// $ret[$i]['hits'] = $row['view']; |
112 |
$ret[$i]['replies'] = intval($row['comment_count']) ; |
113 |
// $ret[$i]['image'] = !empty($row['photo']) ? $URL_MOD."/upimg/".$row['photo'] : ""; |
114 |
$ret[$i]['id'] = intval($row['tid']); |
115 |
$i++; |
116 |
} |
117 |
|
118 |
return $ret; |
119 |
} |
120 |
|
121 |
} |
122 |
|
123 |
?> |