123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <?php
- /**
- * [Discuz!] (C)2001-2099 Comsenz Inc.
- * This is NOT a freeware, use is subject to license terms
- *
- * $Id: table_forum_activity.php 30378 2012-05-24 09:52:46Z zhangguosheng $
- */
- if(!defined('IN_DISCUZ')) {
- exit('Access Denied');
- }
- class table_forum_activity extends discuz_table
- {
- public function __construct() {
- $this->_table = 'forum_activity';
- $this->_pk = 'tid';
- parent::__construct();
- }
- public function fetch_all_for_search($view, $order, $searchkey, $type, $frienduid, $spaceuid, $minhot, $count = 0, $start = 0, $limit = 0) {
- $today = strtotime(dgmdate(TIMESTAMP, 'Y-m-d'));
- $wheresql = '1';
- $threadsql = $ordersql = $apply_sql = '';
- if($view == 'all') {
- if($order == 'hot') {
- $threadsql .= " t.special='4' AND t.replies>='$minhot'";
- $apply_sql = "INNER JOIN ".DB::table('forum_thread')." t ON t.special='4' AND t.tid = a.tid AND t.replies>='$minhot' AND t.displayorder>'-1'";
- }
- } elseif($view == 'me') {
- $type = in_array($type, array('orig', 'apply')) ? $type : 'orig';
- if($type == 'apply') {
- $wheresql = "1";
- $apply_sql = "INNER JOIN ".DB::table('forum_activityapply')." apply ON apply.uid = '$spaceuid' AND apply.tid = a.tid";
- } else {
- $wheresql = "a.uid = '$spaceuid'";
- }
- $ordersql = 'DESC';
- } else {
- if($frienduid) {
- $wheresql = "a.".DB::field('uid', $frienduid);
- }
- $ordersql = 'DESC';
- }
- if($view != 'all') {
- } elseif(empty($order)) {
- $ordersql = 'DESC';
- }
- if($searchkey) {
- $threadsql .= " AND t.subject LIKE ".DB::quote('%'.addslashes($searchkey).'%');
- }
- if($count) {
- return DB::result(DB::query("SELECT COUNT(*) FROM ".DB::table('forum_activity')." a $apply_sql WHERE $wheresql"),0);
- }
- if($view == 'all' && $order == 'hot') {
- $apply_sql = '';
- }
- $threadsql = empty($threadsql) ? '' : $threadsql.' AND ';
- return DB::fetch_all("SELECT a.*, t.* FROM ".DB::table('forum_activity')." a $apply_sql
- INNER JOIN ".DB::table('forum_thread')." t ON $threadsql t.tid=a.tid
- WHERE t.displayorder>'-1' AND $wheresql
- ORDER BY a.starttimefrom $ordersql ".DB::limit($start, $limit));
- }
- public function delete_by_tid($tids) {
- return DB::delete($this->_table, DB::field('tid', $tids));
- }
- }
- ?>
|