예제 #1
0
 /**
  * @param $uid			用户ID
  * @param $page			当前页数
  * @return unknown_type	返回类型
  */
 function getReplaysByUser($uid, $page = 1)
 {
     global $db_ptable;
     $uid = (int) $uid;
     if (!$uid) {
         return array();
     }
     $pw_posts = GetPtable($db_ptable);
     (int) $page < 1 && ($page = 1);
     $start = ($page - 1) * $this->perPage;
     $limit = pwLimit($start, $this->perPage);
     $sql = "SELECT p.pid,p.postdate,t.tid,t.fid,t.subject,t.authorid,t.author,t.replies,t.hits,t.topped,t.digest,t.ifupload\r\n\t\t\t FROM {$pw_posts} p LEFT JOIN pw_threads t USING(tid) WHERE p.fid != 0 AND p.authorid= " . pwEscape($uid) . " \r\n\t\t\t AND p.fid != '0' ORDER BY p.postdate DESC {$limit}";
     return $this->_query($sql, $start, 're');
 }
예제 #2
0
function viewReply($tid, $page, $replies, $per, $max, $ptable, $order)
{
    global $db, $db_shield;
    $page == 'e' && ($page = 65535);
    (int) $page < 1 && ($page = 1);
    $total = ceil($replies / $per);
    $total == 0 ? $page = 1 : ($page > $total ? $page = $total : '');
    $satrt = ($page - 1) * $per;
    $id = $satrt;
    $limit = pwLimit($satrt, $per);
    $posts = '';
    $pw_posts = GetPtable($ptable);
    $sql = "SELECT p.aid,p.pid,p.subject,p.author,p.authorid,p.content,p.postdate,p.anonymous,p.ifshield,m.groupid \n\t\t\tFROM {$pw_posts} p LEFT JOIN pw_members m ON m.uid = p.authorid\n\t\t\tWHERE tid=" . pwEscape($tid) . " \n\t\t\tAND ifcheck=1 ORDER BY postdate {$limit}";
    if ($order == 2) {
        $sql = "SELECT p.aid,p.pid,p.subject,p.author,p.authorid,p.content,p.postdate,p.anonymous,p.ifshield,m.groupid \n\t\t\t\tFROM {$pw_posts} p LEFT JOIN pw_members m ON m.uid = p.authorid\n\t\t\t\tWHERE tid=" . pwEscape($tid) . " \n\t\t\t\tAND ifcheck=1 ORDER BY postdate desc {$limit}";
    }
    $query = $db->query($sql);
    while ($ct = $db->fetch_array($query)) {
        if ($ct['content']) {
            $id++;
            if ($ct['ifshield'] || $ct['groupid'] == 6 && $db_shield) {
                if ($ct['ifshield'] == 2) {
                    $ct['content'] = shield('shield_del_article');
                    $ct['subject'] = '';
                    $tpc_shield = 1;
                } else {
                    $ct['content'] = shield($ct['ifshield'] ? 'shield_article' : 'ban_article');
                    $ct['subject'] = '';
                    $tpc_shield = 1;
                }
            }
            $ct['subject'] = str_replace('&nbsp;', '', wap_cv($ct['subject']));
            $ct['content'] = replySubject($ct['content']);
            list(, $ct['postdate']) = getLastDate($ct['postdate']);
            $ct['id'] = $id;
            if ($order == 2) {
                $ct['id'] = $replies - $id + 1;
            }
            if ($ct['anonymous'] && $ct['authorid'] != $winduid) {
                $ct['author'] = $db_anonymousname;
                $ct['authorid'] = 0;
            }
            $ct['author'] = wap_cv($ct['author']);
            $postdb[] = $ct;
        }
    }
    return $postdb;
}
예제 #3
0
 /**
  * @param $type
  * @param $page
  * @return unknown_type
  */
 function getRecommendByType($type, $page = 1)
 {
     $result = array();
     $where = " WHERE (t.fid != 0 OR t.fid IS NULL) ";
     if ($type) {
         $where .= " AND  p.typeid = " . pwEscape($type);
     }
     (int) $page < 1 && ($page = 1);
     $start = ($page - 1) * $this->perPage;
     $limit = pwLimit($start, $this->perPage);
     $query = $this->db->query("SELECT p.*,t.replies,t.hits,t.author,t.authorid,t.lastposter,t.lastpost FROM pw_wappush p LEFT JOIN pw_threads t ON p.tid = t.tid \r\n\t\t\t\t\t{$where} ORDER BY p.id DESC {$limit}");
     while ($rt = $this->db->fetch_array($query)) {
         $rt['index'] = ++$start;
         list(, $lastDate) = getLastDate($rt['lastpost']);
         $rt['lastpost'] = $lastDate;
         $result[] = $rt;
     }
     return $result;
 }
예제 #4
0
 function get($appid, $uid, $num, $start = 0)
 {
     if ($num == 'all') {
         $num = 500;
     } elseif (!is_numeric($num) || $num < 1) {
         $num = 20;
     } elseif ($num > 500) {
         $num = 500;
     }
     (!is_numeric($start) || $start < 0) && ($start = 0);
     $users = array();
     $query = $this->db->query("SELECT friendid FROM pw_friends WHERE status='0' AND uid=" . pwEscape($uid) . pwLimit($start, $num));
     while ($rt = $this->db->fetch_array($query)) {
         $app = $this->db->get_one("SELECT * FROM pw_userapp WHERE uid=" . pwEscape($rt['friendid']) . " AND appid=" . pwEscape($appid));
         if (empty($app)) {
             $users[] = $rt['friendid'];
         }
     }
     return new ApiResponse($users);
 }
예제 #5
0
파일: read.php 프로젝트: adi00/wumaproject
function threadrelated($relatedcon)
{
    global $db, $db_iftag, $db_threadrelated, $forumset, $fid, $read, $tid, $db_modes, $db_dopen, $db_phopen, $db_share_open, $db_groups_open, $groupid, $timestamp;
    $relatedb = array();
    if (in_array($relatedcon, array('allpost', 'alldigest', 'allhits', 'allreply', 'forumpost', 'forumdigest', 'forumhits', 'forumreply'))) {
        //require_once(R_P.'require/element.class.php');
        //$element = new Element($forumset['relatednums']);
        $element = L::loadClass('element');
        $element->setDefaultNum($forumset['relatednums']);
        switch ($relatedcon) {
            case 'allpost':
                $relatedb = $element->newSubject();
                break;
            case 'alldigest':
                $relatedb = $element->digestSubject();
                break;
            case 'allhits':
                $relatedb = $element->hitSort();
                break;
            case 'allreply':
                $relatedb = $element->replySort();
                break;
            case 'forumpost':
                $relatedb = $element->newSubject($fid);
                break;
            case 'forumdigest':
                $relatedb = $element->digestSubject($fid);
                break;
            case 'forumhits':
                $relatedb = $element->hitSort($fid);
                break;
            case 'forumreply':
                $relatedb = $element->replySort($fid);
                break;
        }
    } elseif ($relatedcon == 'oinfo') {
        //继续改进
        if ($db_modes['o']['ifopen']) {
            require_once "require/app_core.php";
            $addwhere = '';
            if (!$db_dopen) {
                $addwhere .= " AND type!='diary'";
            }
            if (!$db_phopen) {
                $addwhere .= " AND type!='photo'";
            }
            if (!$db_share_open) {
                $addwhere .= " AND type!='share'";
            }
            if (!$db_groups_open) {
                $addwhere .= " AND type!='colony'";
            }
            $query = $db->query("SELECT type,descrip FROM pw_feed WHERE uid=" . pwEscape($read['authorid']) . $addwhere . " ORDER BY timestamp DESC  " . pwLimit(0, $forumset['relatednums']));
            while ($rt = $db->fetch_array($query)) {
                $rt['title'] = parseFeedRead($rt['descrip']);
                $rt['url'] = "u.php?uid={$read['authorid']}";
                unset($rt['type']);
                $relatedb[] = $rt;
            }
        }
    } elseif (in_array($relatedcon, array('pictags', 'hottags'))) {
        $tagid = $tagdbs = array();
        $endtime = $timestamp - 30 * 24 * 3600;
        $sql = 'WHERE t.ifcheck=1 AND t.tid !=' . pwEscape($tid) . ' AND t.postdate >=' . pwEscape($endtime);
        $fidout = array('0');
        $query = $db->query("SELECT fid,allowvisit,password FROM pw_forums WHERE type<>'category'");
        while ($rt = $db->fetch_array($query)) {
            $allowvisit = !$rt['allowvisit'] || $rt['allowvisit'] != str_replace(",{$groupid},", '', $rt['allowvisit']) ? true : false;
            if ($rt['password'] || !$allowvisit) {
                $fidout[] = $rt['fid'];
            }
        }
        $fidout = pwImplode($fidout);
        $fidout && ($sql .= " AND fid NOT IN ({$fidout})");
        if ($db_iftag) {
            if ($read['tags'] && $relatedcon == 'pictags') {
                list($tagdb, $tpc_tag) = explode("\t", $read['tags']);
                $tagdbs = explode(' ', $tagdb);
            } elseif ($relatedcon == 'hottags') {
                @(include_once D_P . 'data/bbscache/tagdb.php');
                $j = 0;
                foreach ($tagdb as $key => $val) {
                    $j++;
                    if ($j > 5) {
                        break;
                    }
                    $tagdbs[] = $key;
                }
                unset($tagdb);
            }
            if ($tagdbs) {
                $query = $db->query("SELECT tagid FROM pw_tags WHERE tagname IN(" . pwImplode($tagdbs) . ')');
                while ($rt = $db->fetch_array($query)) {
                    $tagid[] = $rt['tagid'];
                }
            }
            if ($tagid) {
                $query = $db->query("SELECT t.tid,t.subject FROM pw_tagdata tg LEFT JOIN pw_threads t USING(tid) {$sql} AND tg.tagid IN(" . pwImplode($tagid) . ") GROUP BY tid ORDER BY postdate DESC " . pwLimit(0, $forumset['relatednums']));
                while ($rt = $db->fetch_array($query)) {
                    $rt['title'] = $rt['subject'];
                    $rt['url'] = "read.php?tid=" . $rt['tid'];
                    unset($rt['subject']);
                    unset($rt['tid']);
                    $relatedb[] = $rt;
                }
            }
        }
    } elseif (in_array($relatedcon, array('ownpost', 'owndigest', 'ownhits', 'ownreply'))) {
        $endtime = $timestamp - 15 * 24 * 3600;
        $sql = "WHERE ifcheck=1 AND tid !=" . pwEscape($tid) . "AND postdate >=" . pwEscape($endtime) . " AND authorid=" . pwEscape($read['authorid']) . " AND fid>0 ";
        $orderby = '';
        switch ($relatedcon) {
            case 'ownpost':
                $orderby .= " ORDER BY postdate DESC";
                break;
            case 'owndigest':
                $sql .= " AND digest>0";
                $orderby .= " ORDER BY postdate DESC";
                break;
            case 'ownhits':
                $orderby .= " ORDER BY hits DESC";
                break;
            case 'ownreply':
                $orderby .= " ORDER BY replies DESC";
                break;
        }
        $query = $db->query("SELECT tid,subject FROM pw_threads FORCE INDEX(postdate) {$sql} {$orderby}" . pwLimit(0, $forumset['relatednums']));
        while ($rt = $db->fetch_array($query)) {
            $rt['title'] = $rt['subject'];
            $rt['url'] = "read.php?tid=" . $rt['tid'];
            unset($rt['subject']);
            unset($rt['tid']);
            $relatedb[] = $rt;
        }
    }
    return $relatedb;
}
예제 #6
0
$metaKeywords = $pw_seoset->getPageMetakeyword($foruminfo['keywords'], $foruminfo['name']);
if ($groupid != 3 && !$foruminfo['allowvisit'] && !admincheck($foruminfo['forumadmin'], $foruminfo['fupadmin'], $windid)) {
    forum_creditcheck();
}
if ($groupid != 3 && $foruminfo['forumsell'] && !admincheck($foruminfo['forumadmin'], $foruminfo['fupadmin'], $windid)) {
    forum_sell($fid);
}
$db_perpage = 100;
$db_maxpage && $page > $db_maxpage && ($page = $db_maxpage);
(!is_numeric($page) || $page < 1) && ($page = 1);
if ($page > 1) {
    $start_limit = ($page - 1) * $db_perpage;
} else {
    $start_limit = 0;
    $page = 1;
}
$startid = $start_limit + 1;
$count = $foruminfo['topic'];
$numofpage = ceil($count / $db_perpage);
if ($numofpage && $page > $numofpage) {
    $page = $numofpage;
}
$pages = PageDiv($count, $page, $numofpage, "{$DIR}f{$fid}", $db_maxpage);
$threaddb = array();
$query = $db->query("SELECT * FROM pw_threads WHERE fid=" . pwEscape($fid) . " AND topped<=3 AND ifcheck='1' ORDER BY topped DESC, lastpost DESC" . pwLimit($start_limit, $db_perpage));
while ($thread = $db->fetch_array($query)) {
    $threaddb[] = $thread;
}
$db->free_result($query);
require_once PrintEot('simple_header');
require_once PrintEot('simple_thread');
예제 #7
0
파일: index.php 프로젝트: adi00/wumaproject
         //exit;
     }
 } else {
     //require_once(R_P.'require/postfunc.php');
     PostCheck(1, $o_photos_gdcheck, $o_photos_qcheck);
     InitGP(array('pintro'), 'P');
     empty($pintro) && ($pintro = array());
     require_once R_P . 'require/bbscode.php';
     $wordsfb = L::loadClass('FilterUtil');
     foreach ($pintro as $k => $v) {
         if (($banword = $wordsfb->comprise($v)) !== false) {
             Showmsg('content_wordsfb');
         }
     }
     if (!$aid) {
         $albumcheck = $db->get_one("SELECT aid FROM pw_cnalbum WHERE atype='0' AND ownerid=" . pwEscape($winduid) . pwLimit(1));
         if ($albumcheck) {
             Showmsg('colony_albumclass');
         } else {
             $db->update("INSERT INTO pw_cnalbum SET " . pwSqlSingle(array('aname' => getLangInfo('app', 'defaultalbum'), 'atype' => 0, 'ownerid' => $winduid, 'owner' => $windid, 'lasttime' => $timestamp, 'crtime' => $timestamp)));
             $aid = $db->insert_id();
         }
     }
     !$aid && Showmsg('colony_albumclass');
     $rt = $db->get_one("SELECT aname,photonum,ownerid,private,lastphoto FROM pw_cnalbum WHERE atype='0' AND aid=" . pwEscape($aid));
     if (empty($rt)) {
         Showmsg('undefined_action');
     } elseif ($winduid != $rt['ownerid']) {
         Showmsg('colony_phototype');
     }
     $o_maxphotonum && $rt['photonum'] >= $o_maxphotonum && Showmsg('colony_photofull');
예제 #8
0
 $pwServer['REQUEST_METHOD'] != 'POST' && PostCheck($verify);
 InitGP(array('step', 'by', 'sendto', 'touser', 'subject', 'atc_content', 'present', 'percount', 'count'));
 $cache_file = D_P . "data/bbscache/" . substr($admin_pwd, 10, 10) . ".txt";
 if (!$step) {
     writeover($cache_file, $atc_content);
 } else {
     $atc_content = readover($cache_file);
 }
 if (empty($subject) || empty($atc_content)) {
     adminmsg('sendmsg_empty');
 }
 $sendmessage = $atc_content;
 !$percount && ($percount = 100);
 empty($step) && ($step = 1);
 $start = ($step - 1) * $percount;
 $limit = pwLimit($start, $percount);
 $creditlist = '';
 $sendmessage .= '<br /><br /><b>' . getLangInfo('other', 'affect') . '</b>';
 foreach ($present as $key => $val) {
     if (empty($val)) {
         continue;
     }
     if (is_numeric($val)) {
         $creditlist .= "&present[{$key}]={$val}";
         $sendmessage .= $credit->cType[$key] . "<font color=#FA891B>(+{$val})</font> ";
     } else {
         adminmsg('credit_isnum');
     }
 }
 if ($by == 0) {
     !$sendto && adminmsg('operate_error');
예제 #9
0
파일: sendmsg.php 프로젝트: jechiy/PHPWind
             $sendGroup[] = $rs['gid'];
         }
         $sendGroup = array_diff($sendGroup, array('-1'));
     }
     $subject = S::escapeChar($subject);
     $sendmessage = S::escapeChar($atc_content);
     $messageInfo = array('create_uid' => $winduid, 'create_username' => $windid, 'title' => $subject, 'content' => $sendmessage);
     $messageServer->createMessageTasks($sendGroup, $messageInfo);
     $count = $db->get_value("SELECT COUNT(*) AS sum FROM pw_members WHERE groupid IN(" . S::sqlImplode($sendto) . ')');
 } else {
     S::gp(array('count'));
 }
 $perpage = 10000;
 $havesend = $step * $perpage;
 $tmpArray = $sendto + array(0);
 $db->query("CREATE TEMPORARY TABLE tmp_datastate SELECT uid FROM pw_members WHERE groupid IN(" . S::sqlImplode($tmpArray) . ')' . pwLimit(($step - 1) * $perpage, $perpage));
 $db->update("INSERT INTO pw_ms_configs (uid) SELECT a.uid FROM tmp_datastate a LEFT JOIN pw_ms_configs b ON a.uid=b.uid WHERE b.uid IS NULL");
 $db->update("UPDATE tmp_datastate a LEFT JOIN pw_members m ON a.uid=m.uid LEFT JOIN pw_ms_configs c ON a.uid=c.uid SET m.newpm=m.newpm+1,c.notice_num=c.notice_num+1");
 //* 清除pw_members缓存 start
 $_num = $db->get_value("SELECT count(*) FROM tmp_datastate");
 if ($_num > 1500) {
     $_cacheService = L::loadClass('cacheservice', 'utility');
     $_cacheService->flush(PW_CACHE_MEMCACHE);
 } else {
     $_query = $db->query("SELECT uid FROM tmp_datastate");
     $_uids = array();
     while ($rt = $db->fetch_array($_query)) {
         $_uids[] = $rt['uid'];
     }
     Perf::gatherInfo('changeMembersWithUserIds', array('uid' => $_uids));
 }
예제 #10
0
        if (count($newtiddb) > 0) {
            $db->update("DELETE FROM {$pcvaluetable} WHERE tid IN(" . pwImplode($newtiddb) . ") AND ifrecycle=0");
        }
        is_array($threadb) && ($alltids = implode(',', $threadb));
        $count = $db->get_value("SELECT COUNT(tid) as count FROM {$pcvaluetable} WHERE ifrecycle=0");
    }
    if ($count > 0) {
        $page < 1 && ($page = 1);
        $numofpage = ceil($count / $db_perpage);
        if ($numofpage && $page > $numofpage) {
            $page = $numofpage;
        }
        $pages = numofpage($count, $page, $numofpage, "{$admin_file}?adminjob=postcate&action=postcate&pcid={$pcid}&newfield={$newfield}&step={$step}&");
        if ($step != 'search') {
            $start = ($page - 1) * $db_perpage;
            $limit = pwLimit($start, $db_perpage);
        }
        $catedb = array();
        $query = $db->query("SELECT pv.tid,t.fid,t.subject,t.author,t.authorid,t.postdate FROM {$pcvaluetable} pv LEFT JOIN pw_threads t ON pv.tid=t.tid WHERE 1 AND ifrecycle=0 {$sql} ORDER BY t.postdate DESC {$limit}");
        while ($rt = $db->fetch_array($query)) {
            $rt['postdate'] = get_date($rt['postdate']);
            $catedb[] = $rt;
        }
    }
    include PrintEot('postcate');
    exit;
} elseif ($_POST['sendmsg'] || $action == 'sendmsg') {
    InitGP(array('step', 'nexto'));
    if (empty($step)) {
        InitGP(array('selid', 'alltids'));
        if ($selid) {
예제 #11
0
파일: bakup.php 프로젝트: adi00/wumaproject
function bakupdata($tabledb, $start = 0)
{
    global $db, $sizelimit, $tableid, $start, $stop, $rows;
    $tableid = $tableid ? $tableid - 1 : 0;
    $stop = 0;
    $t_count = count($tabledb);
    for ($i = $tableid; $i < $t_count; $i++) {
        $ts = $db->get_one("SHOW TABLE STATUS LIKE " . pwEscape($tabledb[$i]));
        $rows = $ts['Rows'];
        $flag = true;
        while ($flag) {
            $limitadd = pwLimit($start, 100000);
            $query = $db->query("SELECT * FROM {$tabledb[$i]} {$limitadd}");
            $num_F = $db->num_fields($query);
            while ($datadb = $db->fetch_array($query, MYSQL_NUM)) {
                $start++;
                $bakupdata .= "INSERT INTO {$tabledb[$i]} VALUES(" . "'" . $db->escape_string($datadb[0]) . "'";
                $tempdb = '';
                for ($j = 1; $j < $num_F; $j++) {
                    $tempdb .= ",'" . $db->escape_string($datadb[$j]) . "'";
                }
                $bakupdata .= $tempdb . ");\n";
                if ($sizelimit && strlen($bakupdata) > $sizelimit * 1000) {
                    $flag = false;
                    break;
                }
            }
            $db->free_result($query);
            if ($start >= $rows) {
                $flag = false;
                $start = 0;
            }
        }
        $bakupdata .= "\n";
        if ($sizelimit && strlen($bakupdata) > $sizelimit * 1000) {
            $stop = 1;
            break;
        }
    }
    if ($stop == 1) {
        $tableid = ++$i;
    }
    return $bakupdata;
}
예제 #12
0
 if (!$ifadmin && (!$colony['ifcyer'] || $colony['ifadmin'] == '-1')) {
     Showmsg('colony_cnmenber');
 }
 InitGP(array('aid', 'selaid'));
 $album = $db->get_one("SELECT aname,ownerid,photonum FROM pw_cnalbum WHERE atype='0' AND aid=" . pwEscape($aid));
 if (empty($album) || $album['ownerid'] != $winduid) {
     Showmsg('data_error');
 }
 if (empty($_POST['step'])) {
     $options = '';
     $query = $db->query("SELECT aid,aname FROM pw_cnalbum WHERE atype='1' AND ownerid=" . pwEscape($cyid) . ' ORDER BY aid DESC');
     while ($rt = $db->fetch_array($query)) {
         $options .= "<option value=\"{$rt['aid']}\"" . ($rt['aid'] == $selaid ? ' selected' : '') . ">{$rt['aname']}</option>";
     }
     $cnpho = array();
     $query = $db->query("SELECT pid,path,ifthumb FROM pw_cnphoto WHERE aid=" . pwEscape($aid) . ' ORDER BY pid ' . pwLimit(0, $o_maxphotonum));
     while ($rt = $db->fetch_array($query)) {
         $rt['path'] = getphotourl($rt['path'], $rt['ifthumb']);
         $cnpho[] = $rt;
     }
     list($isheader, $isfooter, $tplname, $isleft) = array(true, true, "m_galbum", true);
 } else {
     InitGP(array('selid'));
     if (!$selid || !is_array($selid)) {
         Showmsg('colony_select_photo');
     }
     if (empty($selaid)) {
         Showmsg('colony_albumclass');
     }
     $selalbum = $db->get_one("SELECT aname,photonum,ownerid,lastphoto FROM pw_cnalbum WHERE atype='1' AND aid=" . pwEscape($selaid));
     if (empty($selalbum)) {
예제 #13
0
     $tpcdb = array();
     if ($tiddb) {
         $query = $db->query("SELECT * FROM pw_threads WHERE tid IN (" . pwImplode($tiddb) . ") {$pcsqladd} ORDER BY {$orderway} {$asc}");
         while ($thread = $db->fetch_array($query)) {
             $tpcdb[] = $thread;
         }
         $db->free_result($query);
     }
 } elseif ($limit2) {
     if (empty($urladd) && strtolower($db_datastore) == 'memcache' && !$R && $offset < 980) {
         $threadlist = L::loadClass("threadlist");
         $tmpTpcdb = $threadlist->getThreads($fid, $offset, $limit2);
         $tpcdb = array_merge((array) $tpcdb, (array) $tmpTpcdb);
     } else {
         //$topadd .= $R ? 'topped ASC,' : 'topped DESC,';
         $query = $db->query("SELECT * FROM pw_threads WHERE {$sql} {$searchadd} ORDER BY {$topadd} {$orderway} {$asc} " . pwLimit($offset, $limit2));
         while ($thread = $db->fetch_array($query)) {
             $tpcdb[] = $thread;
         }
         $db->free_result($query);
         $R && ($tpcdb = array_reverse($tpcdb));
     }
 }
 //Start Here pwcache
 if ($db_ifpwcache & 112 && pwFilemtime(D_P . 'data/bbscache/hitsort_judge.php') < $timestamp - 600) {
     include_once D_P . 'data/bbscache/hitsort_judge.php';
     $updatelist = $updatetype = array();
     foreach ($tpcdb as $thread) {
         if ($db_ifpwcache & 16) {
             if ($thread['hits'] > $hitsort_judge['hitsort'][$fid] && $thread['fid'] == $fid) {
                 $updatelist[] = array('hitsort', $fid, $thread['tid'], $thread['hits'], '', 0);
예제 #14
0
     $pwSQL = "WHERE groupid IN(" . pwImplode($pwSendmail['info']) . ")";
 } elseif ($pwSendmail['by'] == 1) {
     require_once R_P . 'require/getonlineuser.php';
     $onlineuser = GetOnlineUser();
     $uids = array();
     foreach ($onlineuser as $key => $value) {
         is_numeric($key) && ($uids[] = $key);
     }
     $pwSQL = "WHERE uid IN(" . pwImplode($uids) . ")";
 } elseif ($pwSendmail['by'] == 2) {
     //TODO Efficiency problems
     $pwSQL = "WHERE regdate BETWEEN" . pwEscape($pwSendmail['info']['stime']) . "AND" . pwEscape($pwSendmail['info']['etime']);
 } else {
     adminmsg('operate_error');
 }
 $limit = pwLimit($pwSendmail['step'] * $pwSendmail['num'], $pwSendmail['num']);
 $query = $db->query("SELECT uid,username,email FROM pw_members {$pwSQL} {$limit}");
 while ($rt = $db->fetch_array($query)) {
     if (!$rt['email'] || !preg_match("/^[-a-zA-Z0-9_\\.]+@([0-9A-Za-z][0-9A-Za-z-]+\\.)+[A-Za-z]{2,5}\$/", $rt['email'])) {
         continue;
     }
     $sendsubject = str_replace(array('$winduid', '$windid', '$email'), array($rt['uid'], $rt['username'], $rt['email']), $pwSendmail['subject']);
     $sendcontent = str_replace(array('$winduid', '$windid', '$email'), array($rt['uid'], $rt['username'], $rt['email']), $pwSendmail['content']);
     sendemail($rt['email'], $sendsubject, $sendcontent, 'email_additional');
 }
 $pwSendmail['step']++;
 $havesend = $pwSendmail['sent'] = $pwSendmail['step'] * $pwSendmail['num'];
 $count = $pwSendmail['count'];
 if ($pwSendmail['count'] > $pwSendmail['sent']) {
     writeover($tmpCachefile, "<?php\r\ndie();\r\n?>\r\n" . serialize($pwSendmail));
     $j_url = "{$basename}&action={$action}";
예제 #15
0
 function getSearchvalue($field, $type, $alltidtype = false, $backtype = false)
 {
     /*获取搜索结果*/
     global $db_perpage, $page, $modelid, $fid, $basename;
     $field = unserialize(StrCode($field, 'DECODE'));
     $sqladd = '';
     $fid && ($sqladd .= " fid=" . pwEscape($fid));
     $fielddb = postTopic::getFieldData($modelid, $type);
     foreach ($field as $key => $value) {
         if ($value) {
             if (in_array($fielddb[$key]['type'], array('number', 'radio', 'select'))) {
                 $sqladd .= $sqladd ? " AND " . $fielddb[$key]['fieldname'] . "=" . pwEscape($value) : $fielddb[$key]['fieldname'] . "=" . pwEscape($value);
             } elseif ($fielddb[$key]['type'] == 'checkbox') {
                 $checkboxs = '';
                 foreach ($value as $cv) {
                     $checkboxs .= $checkboxs ? ',' . $cv : $cv;
                 }
                 $value = '%,' . $checkboxs . ',%';
                 $sqladd .= $sqladd ? " AND " . $fielddb[$key]['fieldname'] . " LIKE(" . pwEscape($value) . ")" : $fielddb[$key]['fieldname'] . " LIKE(" . pwEscape($value) . ")";
             } elseif ($fielddb[$key]['type'] == 'calendar' && ($value['start'] || $value['end'])) {
                 $value['start'] && ($value['start'] = PwStrtoTime($value['start']));
                 $value['end'] && ($value['end'] = PwStrtoTime($value['end']));
                 if ($value['start'] > $value['end'] && $value['start'] && $value['end']) {
                     Showmsg('calendar_error');
                 }
                 $sqladd .= $sqladd ? " AND " . $fielddb[$key]['fieldname'] . ">=" . pwEscape($value['start']) . " AND " . $fielddb[$key]['fieldname'] . "<=" . pwEscape($value['end']) : $fielddb[$key]['fieldname'] . ">=" . pwEscape($value['start']) . " AND " . $fielddb[$key]['fieldname'] . "<=" . pwEscape($value['end']);
             } elseif (in_array($fielddb[$key]['type'], array('text', 'url', 'email', 'textarea'))) {
                 $value = '%' . $value . '%';
                 $sqladd .= $sqladd ? " AND " . $fielddb[$key]['fieldname'] . " LIKE(" . pwEscape($value) . ")" : $fielddb[$key]['fieldname'] . " LIKE(" . pwEscape($value) . ")";
             } elseif ($fielddb[$key]['type'] == 'range' && $value['min'] && $value['max']) {
                 $sqladd .= $sqladd ? " AND " . $fielddb[$key]['fieldname'] . ">=" . pwEscape($value['min']) . " AND " . $fielddb[$key]['fieldname'] . "<=" . pwEscape($value['max']) : $fielddb[$key]['fieldname'] . ">=" . pwEscape($value['min']) . " AND " . $fielddb[$key]['fieldname'] . "<=" . pwEscape($value['max']);
             } else {
                 $sqladd .= '';
             }
         }
     }
     if ($sqladd) {
         !$page && ($page = 1);
         $start = ($page - 1) * $db_perpage;
         $limit = pwLimit($start, $db_perpage);
         $tablename = GetTopcitable($modelid);
         $sqladd .= $sqladd ? " AND ifrecycle=0" : " ifrecycle=0";
         $count = $this->db->get_value("SELECT COUNT(*) as count FROM {$tablename} WHERE {$sqladd}");
         $query = $this->db->query("SELECT tid FROM {$tablename} WHERE {$sqladd} {$limit}");
         while ($rt = $this->db->fetch_array($query)) {
             $tiddb[] = $rt['tid'];
         }
         if ($alltidtype) {
             $query = $this->db->query("SELECT tid FROM {$tablename} WHERE {$sqladd}");
             while ($rt = $this->db->fetch_array($query)) {
                 $alltiddb[] = $rt['tid'];
             }
         }
         !$count && ($count = -1);
     } else {
         if ($backtype) {
             adminmsg('topic_search_none', "{$basename}&action=topic&modelid={$modelid}");
         }
         Showmsg('topic_search_none');
     }
     return array($count, $tiddb, $alltiddb);
 }
예제 #16
0
/**
 * 获取好友列表
 *
 * @param int $uid		需要查找的uid;
 * @param int $start	limit条件
 * @param int $num		limit条件
 * @param int $ftype	好友分组
 * @param int $show		是否需要详细数据
 * @return array
 */
function getFriends($uid, $start = 0, $num = 0, $ftype = false, $show = false, $imgtype = 'm')
{
    global $db, $db_onlinetime, $timestamp, $winduid;
    $fild = 'm.uid,m.username,f.ftid,f.iffeed';
    $order = $where = '';
    if ($show) {
        $fild .= ',m.icon as face,m.honor,md.f_num,md.thisvisit,md.lastvisit';
        $left = 'LEFT JOIN pw_memberdata md ON f.friendid=md.uid';
        $order = 'md.thisvisit';
    } else {
        $left = '';
        $order = 'f.joindate';
    }
    if ($ftype !== false && $ftype !== '') {
        $ftype = (int) $ftype;
        $where = ' AND f.ftid=' . pwEscape($ftype);
    }
    $start = (int) $start;
    $num = (int) $num;
    if ($start || $num) {
        !$num && ($num = 8);
        $limit = pwLimit($start, $num);
    } else {
        $limit = '';
    }
    $rs = $db->query("SELECT {$fild} FROM pw_friends f LEFT JOIN pw_members m ON f.friendid=m.uid {$left} WHERE f.uid=" . pwEscape($uid) . " AND f.status=0 {$where} ORDER BY {$order} DESC {$limit}");
    $result = array();
    if ($show) {
        require_once R_P . 'require/showimg.php';
        while ($one = $db->fetch_array($rs)) {
            list($one['face']) = showfacedesign($one['face'], 1, $imgtype);
            $one['honor'] = substrs($one['honor'], 90);
            $one['lastvisit'] = get_date($one['lastvisit']);
            $result[$one['uid']] = $one;
        }
    } else {
        while ($one = $db->fetch_array($rs)) {
            $result[$one['uid']] = $one;
        }
    }
    count($result) == 0 && ($result = false);
    return $result;
}
예제 #17
0
 function gethotfavor($fid = 0, $num = 0)
 {
     global $timestamp, $forum;
     !$fid && ($fid = getCommonFid());
     $num = intval($num) ? intval($num) : $this->cachenum;
     $sqladd = '';
     $fid && ($sqladd .= " AND fid IN ({$fid}) ");
     isset($forum) || (include D_P . 'data/bbscache/forum_cache.php');
     $favors = array();
     $query = $this->db->query("SELECT tid,fid,author,authorid,subject,postdate,hits,replies,favors FROM pw_threads WHERE favors>0 AND postdate >=" . pwEscape($timestamp - 360 * 24 * 3600) . " {$sqladd} ORDER BY favors DESC " . pwLimit($num));
     while ($rt = $this->db->fetch_array($query)) {
         $favor = array();
         $favor['url'] = 'read.php?tid=' . $rt['tid'];
         $favor['title'] = $rt['subject'];
         $favor['value'] = $rt['favors'];
         $favor['posttime'] = get_date($rt['postdate']);
         $favor['forum'] = $forum[$rt['fid']]['name'];
         $favor['image'] = '';
         $favor['addition'] = $rt;
         $favors[] = $favor;
     }
     return $favors;
 }
예제 #18
0
}
if (!$admincheck) {
    !$foruminfo['allowvisit'] && forum_creditcheck();
    #积分限制浏览
    $foruminfo['forumsell'] && forum_sell($fid);
    #出售版块
}
$per = 5;
$start = ($page - 1) * $per;
$tids = array();
/* 置顶贴处理 */
$topTids = $foruminfo['topthreads'];
$topTids = explode(',', $topTids);
if ($topTids && $start < count($topTids)) {
    $L = (int) min(count($topTids) - $start, $per);
    $limit = pwLimit($start, $L);
    $query = $db->query("SELECT * FROM pw_threads WHERE  fid!=0 AND tid IN(" . pwImplode($topTids) . ") ORDER BY specialsort DESC,lastpost DESC {$limit}");
    while ($rt = $db->fetch_array($query)) {
        $id++;
        if ($rt['anonymous'] && $rt['authorid'] != $winduid && !$pwAnonyHide) {
            $rt['author'] = $db_anonymousname;
            $rt['authorid'] = 0;
        }
        $rt['postdate'] = get_date($rt['postdate']);
        $rt['id'] = $id;
        $rt['subject'] = wap_cv(str_replace('&nbsp;', '', $rt['subject']));
        $tids[] = $rt;
    }
    $db->free_result($query);
}
InitGP(array('t'), 'GP');
예제 #19
0
파일: admin.php 프로젝트: adi00/wumaproject
     $sql .= ' postdate<' . pwEscape($postdate_e);
     $urladd .= "&postdate_e={$postdate_e}";
 }
 $ordertype = $ordertype == 'asc' ? 'asc' : 'desc';
 $urladd .= "&ordertype={$ordertype}&lines={$lines}";
 $count = $db->get_value("SELECT COUNT(*) AS count FROM pw_share WHERE {$sql}");
 empty($count) && adminmsg('share_not_exist', "{$basename}&action=share");
 !is_numeric($lines) && ($lines = 30);
 $page < 1 && ($page = 1);
 $numofpage = ceil($count / $lines);
 if ($numofpage && $page > $numofpage) {
     $page = $numofpage;
 }
 $pages = numofpage($count, $page, $numofpage, "{$basename}&action=share&job=list{$urladd}&");
 $start = ($page - 1) * $lines;
 $limit = pwLimit($start, $lines);
 $query = $db->query("SELECT * FROM pw_share WHERE {$sql} " . "ORDER BY postdate {$ordertype} " . $limit);
 while ($rt = $db->fetch_array($query)) {
     $rt['postdate'] = $rt['postdate'] ? get_date($rt['postdate']) : '-';
     $temp = unserialize($rt['content']);
     $rt['link'] = $temp['link'];
     if ($rt['type'] == 'user') {
         $rt['title'] = "<a href=\"{$rt['link']}\" target=\"_blank\">" . $temp['user']['username'] . "</a>";
     } elseif ($rt['type'] == 'photo') {
         $belong = getLangInfo('app', 'photo_belong');
         $rt['image'] = $temp['photo']['image'];
         $temp_uid = $temp['photo']['uid'];
         $rt['title'] = $belong . "<a href=\"u.php?uid={$temp_uid}\" target=\"_blank\">" . $temp['photo']['username'] . "</a>";
     } elseif ($rt['type'] == 'album') {
         $belong = getLangInfo('app', 'photo_belong');
         $temp_uid = $temp['album']['uid'];
예제 #20
0
            $rt['descrip'] = appShield('ban_feed');
        }
        $key = get_date($rt['timestamp'], 'y-m-d');
        list($rt['faceurl']) = showfacedesign($rt['icon'], '1', 's');
        $rt['appicon'] = getAppIcon($rt['type']);
        $feeds[$key][] = $rt;
    }
}
$friends = getFriends($u, 0, 18, '', 1);
//$sendfriends = getFriends($winduid,0,0,false,1);
//留言板
if ($privacy['msgboard']) {
    $boards = array();
    require_once R_P . 'require/bbscode.php';
    $wordsfb = L::loadClass('FilterUtil');
    $query = $db->query("SELECT o.*,m.icon as face,m.groupid FROM pw_oboard o LEFT JOIN pw_members m ON o.uid=m.uid WHERE o.touid=" . pwEscape($u) . " ORDER BY o.id DESC " . pwLimit(0, 15));
    while ($rt = $db->fetch_array($query)) {
        $rt['postdate'] = get_date($rt['postdate']);
        list($rt['face']) = showfacedesign($rt['face'], 1, 'm');
        if ($rt['groupid'] == 6 && $db_shield && $groupid != 3) {
            $rt['title'] = appShield('ban_feed');
        } elseif (!$wordsfb->equal($rt['ifwordsfb'])) {
            $rt['title'] = $wordsfb->convert($rt['title'], array('id' => $rt['id'], 'type' => 'oboard', 'code' => $rt['ifwordsfb']));
        }
        if (strpos($rt['title'], '[s:') !== false) {
            $rt['title'] = showface($rt['title']);
        }
        if (strpos($rt['title'], '[url') !== false) {
            $rt['title'] = convert($rt['title'], $db_windpost);
        }
        $boardids[] = $rt['id'];
예제 #21
0
 /**
  * 获取最新收藏
  *
  * @param string $type 	:无用参数
  * @param string $fid
  * @param int $num
  * @return array
  */
 function newFavorsort($type = false, $fid = '', $num = 0)
 {
     global $forum;
     $num = intval($num) ? intval($num) : $this->defaultnum;
     $sqladd = '';
     $favors = array();
     !$fid && ($fid = getCommonFid());
     isset($forum) || (include D_P . 'data/bbscache/forum_cache.php');
     $fid && ($sqladd .= " AND e.mark IN ({$fid}) ");
     $query = $this->db->query("SELECT t.tid,t.fid,t.author,t.authorid,t.subject,t.hits,t.replies,t.postdate,t.hits,t.replies,t.favors,e.addition,e.time,t.replies,t.hits FROM pw_elements e LEFT JOIN pw_threads t ON e.id=t.tid WHERE e.type='newfavor' {$sqladd} ORDER BY e.value DESC " . pwLimit($num));
     while ($rt = $this->db->fetch_array($query)) {
         $favor = array();
         $favor['url'] = 'read.php?tid=' . $rt['tid'];
         $favor['title'] = $rt['subject'];
         $favor['value'] = $rt['favors'];
         $favor['posttime'] = $rt['postdate'];
         $favor['favortime'] = get_date($rt['time']);
         $favor['forum'] = $forum[$rt['fid']]['name'];
         list($favor['favorid'], $favor['favorer']) = explode('|', $rt['addition']);
         unset($rt['addition']);
         $favor['image'] = '';
         $favor['replies'] = $rt['replies'];
         $favor['hits'] = $rt['hits'];
         $favor['addition'] = $rt;
         $favors[] = $favor;
     }
     return $favors;
 }
예제 #22
0
 }
 if (isset($mfriendkeys) && count($mfriendkeys) > 0) {
     $query = $db->query('SELECT uid,username,icon as face FROM pw_members WHERE uid IN(' . pwImplode($mfriendkeys) . ')');
     while ($rt = $db->fetch_array($query)) {
         list($rt['face']) = showfacedesign($rt['face'], '1', 'm');
         $mosort[] = $rt;
     }
 } else {
     @(include_once D_P . 'data/bbscache/mode_o_mosort.php');
     if (!$mosort || $mosort['time'] < $timestamp - 86400) {
         $mosort = array();
         if ($db_ifpwcache & 1) {
             $sql = "SELECT m.uid,m.username,m.icon as face FROM pw_elements e LEFT JOIN pw_members m ON e.id=m.uid WHERE e.type='usersort' AND e.mark='monthpost' ORDER BY e.value DESC " . pwLimit(6);
         } else {
             $montime = PwStrtoTime(get_date($timestamp, 'Y-m') . '-1');
             $sql = "SELECT m.uid,m.username,m.icon as face FROM pw_memberdata md LEFT JOIN pw_members m USING(uid) WHERE md.lastpost>" . pwEscape($montime) . " AND md.postnum>0 ORDER BY md.monthpost DESC " . pwLimit(6);
         }
         $query = $db->query($sql);
         while ($rt = $db->fetch_array($query)) {
             list($rt['face']) = showfacedesign($rt['face'], '1', 'm');
             $mosort[] = $rt;
         }
         $mosort['time'] = $timestamp;
         writeover(D_P . 'data/bbscache/mode_o_mosort.php', "<?php\r\n\$mosort=" . pw_var_export($mosort) . ";\r\n?>");
     }
     $ifmosortcache = 1;
     unset($mosort['time']);
 }
 $lastposttable = GetPtable($db_ptable);
 #'pw_posts'.$db_ptable;
 //经常回复我帖子的用户
예제 #23
0
                 $db->update("DELETE FROM {$pw_posts} WHERE pid IN ({$_pids})");
                 $db->update("DELETE FROM pw_recycle WHERE pid IN ({$_pids})");
             }
             refreshto("forumcp.php?action=edit&type={$type}&fid={$fid}&step=3&ptable={$ptable}&verify={$verifyhash}", 'delete_recycle');
         } else {
             $logdb = array('type' => 'recycle', 'username1' => '', 'username2' => $windid, 'field1' => $fid, 'field2' => '', 'field3' => '', 'descrip' => 'recycle_reply_empty', 'timestamp' => $timestamp, 'ip' => $onlineip, 'affect' => '', 'forum' => $forum[$fid]['name'], 'reason' => '');
             writelog($logdb);
             refreshto("forumcp.php?action=edit&type=precycle&fid={$fid}", 'operate_success');
         }
     }
 } elseif ($type == 'msg') {
     $msgdb = array();
     $pages = '';
     $page = $_GET['page'];
     (int) $page < 1 && ($page = 1);
     $query = $db->query('SELECT id,uid,username,toname,msgtype,posttime,savetime,message FROM pw_forummsg WHERE fid=' . pwEscape($fid) . ' ORDER BY posttime DESC ' . pwLimit(($page - 1) * $db_perpage, $db_perpage));
     while ($rt = $db->fetch_array($query)) {
         if ($rt['savetime'] < $timestamp) {
             $db->query("DELETE FROM pw_forummsg WHERE id='{$rt['id']}'");
         } else {
             $rt['posttime'] = $rt['posttime'] ? get_date($rt['posttime'], 'Y-m-d H:i') : '--';
             $rt['savetime'] = $rt['savetime'] ? get_date($rt['savetime'], 'Y-m-d H:i') : '--';
             if (strpos($rt['toname'], ',' . $windid . ',') !== false && $rt['msgtype'] == '2' || $groupid == '3' || $groupid == '4' || CkInArray($windid, $manager) || $rt['msgtype'] == '1' || $rt['uid'] == $winduid) {
                 if ($rt['uid'] != $winduid && $groupid != '3' && $groupid != '4' && CkInArray($windid, $manager) === false) {
                     $rt['ifuse'] = 'disabled';
                 } else {
                     $rt['ifuse'] = '';
                 }
                 $msgdb[] = $rt;
             }
         }
예제 #24
0
파일: index.php 프로젝트: adi00/wumaproject
        Showmsg('mode_o_not_uid');
    }
} elseif ($a == 'showcommlist') {
    InitGP(array('type', 'id'), 'P');
    $id = (int) $id;
    if (!$id) {
        Showmsg('undefined_action');
    }
    if (!checkCommType($type)) {
        Showmsg('undefined_action');
    }
    require_once R_P . 'require/showimg.php';
    require_once R_P . 'require/bbscode.php';
    $wordsfb = L::loadClass('FilterUtil');
    $comment = array();
    $query = $db->query("SELECT c.*,m.icon as face,m.groupid FROM pw_comment c LEFT JOIN pw_members m ON c.uid=m.uid WHERE c.type=" . pwEscape($type) . " AND c.typeid=" . pwEscape($id) . " AND upid='0' ORDER BY c.postdate DESC" . pwLimit(0, 100));
    while ($rt = $db->fetch_array($query)) {
        $rt['postdate'] = get_date($rt['postdate']);
        if ($rt['groupid'] == 6 && $db_shield && $groupid != 3) {
            $rt['title'] = getLangInfo('other', 'ban_comment');
        } elseif (!$wordsfb->equal($rt['ifwordsfb'])) {
            $rt['title'] = $wordsfb->convert($rt['title'], array('id' => $rt['id'], 'type' => 'comments', 'code' => $rt['ifwordsfb']));
        }
        list($rt['face']) = showfacedesign($rt['face'], 1, 'm');
        $comment[] = $rt;
    }
    $str = '';
    if ($comment) {
        $str = pwJsonEncode($comment);
    }
    echo "success\t" . $str;
예제 #25
0
function pwLimitPages($count, $page, $pageurl)
{
    global $db_perpage, $db_maxpage;
    //require_once (R_P.'require/forum.php');
    $numofpage = ceil($count / $db_perpage);
    $numofpage = $numofpage > $db_maxpage ? $db_maxpage : $numofpage;
    $page < 1 ? $page = 1 : ($page > $numofpage ? $page = $numofpage : null);
    $pages = numofpage($count, $page, $numofpage, $pageurl, $db_maxpage);
    $limit = pwLimit(($page - 1) * $db_perpage, $db_perpage);
    return array($pages, $limit);
}
예제 #26
0
파일: read.php 프로젝트: adi00/wumaproject
 $totle = ceil($count / $per);
 $totle == 0 ? $page = 1 : ($page > $totle ? $page = $totle : '');
 $pages = wap_numofpage($page, $totle, "read.php?tid={$tid}&amp;");
 $rt['subject'] = str_replace('&nbsp;', '', wap_cv($rt['subject']));
 if ($page == 1) {
     $rt['content'] = strip_tags($rt['content']);
     $rt['content'] = substrs($rt['content'], $db_waplimit);
     $rt['content'] = wap_cv($rt['content']);
     $rt['content'] = wap_code($rt['content']);
     $rt['postdate'] = get_date($rt['postdate']);
     $rt['author'] = $rt['anonymous'] ? $db_anonymousname : $rt['author'];
     $rt['author'] = wap_cv($rt['author']);
 }
 $satrt = ($page - 1) * $per;
 $id = $satrt;
 $limit = pwLimit($satrt, $per);
 $posts = '';
 $pw_posts = GetPtable($rt['ptable']);
 #高楼索引优化
 if ($openIndex) {
     $start_limit = (int) ($page - 1) * $per - 1;
     $start_limit < 0 && ($start_limit = 0);
     $end = $start_limit + $per;
     $sql_floor = " AND f.floor > " . $start_limit . " AND f.floor <= " . $end . " ";
     $query = $db->query("SELECT f.pid FROM pw_postsfloor f WHERE f.tid = " . pwEscape($rt['tid']) . " {$sql_floor} ORDER BY f.floor");
     while ($r = $db->fetch_array($query)) {
         $postIds[] = $r['pid'];
     }
     if ($postIds) {
         $postIds && ($sql_postId = " AND pid IN ( " . pwImplode($postIds, false) . " ) ");
         $query = $db->query("SELECT pid,ifcheck,subject,author,content,postdate,anonymous \r\n\t\t\t\tFROM {$pw_posts} WHERE tid=" . pwEscape($rt[tid]) . " {$sql_postId} ORDER BY postdate ");
예제 #27
0
<?php

!function_exists('adminmsg') && exit('Forbidden');
$basename = "{$admin_file}?adminjob=viewban";
if (empty($action)) {
    InitGP(array('page', 'banuser', 'bantype', 'adminban', 'starttime', 'endtime'));
    (!is_numeric($page) || $page < 1) && ($page = 1);
    $limit = pwLimit(($page - 1) * $db_perpage, $db_perpage);
    $sql = "WHERE 1";
    $url = $basename;
    $count = 0;
    if ($banuser) {
        $sql .= " AND m.username="******" AND b.type=" . pwEscape($bantype);
        $url .= "&bantype={$bantype}";
    }
    if ($adminban) {
        $sql .= " AND b.admin=" . pwEscape($adminban);
        $url .= "&adminban=" . rawurlencode($adminban);
    }
    if ($starttime) {
        !is_numeric($starttime) && ($starttime = PwStrtoTime($starttime));
        $sql .= " AND b.startdate>" . pwEscape($starttime);
        $url .= "&starttime={$starttime}";
    }
    if ($endtime) {
        !is_numeric($endtime) && ($endtime = PwStrtoTime($endtime));
        $sql .= " AND b.startdate<" . pwEscape($endtime);
예제 #28
0
 $thisfid = (int) $creatfid[$tfid];
 $imgpath = $db_http != 'N' ? $db_http : $db_picpath;
 $attachpath = $db_attachurl != 'N' ? $db_attachurl : $db_attachname;
 $staticPage = L::loadClass('StaticPage');
 if (!$staticPage->initForum($thisfid)) {
     Showmsg('data_error');
 }
 (!is_numeric($forumnum) || $forumnum < 0) && ($forumnum = 0);
 !$step && ($step = 1);
 !$percount && ($percount = 100);
 $start = ($step - 1) * $percount;
 $next = $start + $percount;
 $step++;
 $j_url = "{$basename}&action={$action}&percount={$percount}&creatfid={$fids}&forumnum={$forumnum}";
 $goon = 0;
 $query = $db->query("SELECT tid FROM pw_threads WHERE fid='{$thisfid}' AND ifcheck=1 AND special='0' ORDER BY topped DESC,lastpost DESC" . pwLimit($start, $percount));
 while ($topic = $db->fetch_array($query)) {
     $goon = 1;
     $staticPage->update($topic['tid']);
 }
 if ($forumnum && $next >= $forumnum) {
     $goon = 0;
 }
 if ($goon) {
     $j_url .= "&step={$step}&tfid={$tfid}";
     adminmsg('updatecache_step', EncodeUrl($j_url));
 } else {
     $tfid++;
     if (isset($creatfid[$tfid])) {
         $j_url .= "&step=1&tfid={$tfid}";
         adminmsg('updatecache_step1', EncodeUrl($j_url));
예제 #29
0
파일: forum.php 프로젝트: adi00/wumaproject
function updatecommend($fid, $forumset)
{
    global $db, $timestamp;
    $forumset['commendnum'] < 1 && ($forumset['commendnum'] = 10);
    $commend = array();
    $commendlist = '';
    if ($forumset['commendlist']) {
        $commendlist = pwImplode(explode(',', $forumset['commendlist']));
        $query = $db->query("SELECT tid,authorid,author,subject FROM pw_threads WHERE tid IN({$commendlist}) AND fid=" . pwEscape($fid));
        while ($rt = $db->fetch_array($query)) {
            if ($forumset['commendlength'] && strlen($rt['subject']) > $forumset['commendlength']) {
                $rt['subject'] = substrs($rt['subject'], $forumset['commendlength']);
            }
            $commend[] = $rt;
        }
    }
    $count = count($commend);
    if ($forumset['autocommend'] && $count < $forumset['commendnum']) {
        $limit = pwLimit($forumset['commendnum'] - $count);
        switch ($forumset['autocommend']) {
            case '1':
                $orderby = 'postdate';
                break;
            case '2':
                $orderby = 'lastpost';
                break;
            case '3':
                $orderby = 'hits';
                break;
            case '4':
                $orderby = 'replies';
                break;
            default:
                $orderby = 'digest';
                break;
        }
        $sql = $forumset['commendlist'] ? " AND tid NOT IN({$commendlist})" : '';
        $query = $db->query("SELECT tid,authorid,author,subject FROM pw_threads WHERE fid=" . pwEscape($fid) . " AND topped='0' {$sql} ORDER BY {$orderby} DESC {$limit}");
        while ($rt = $db->fetch_array($query)) {
            if ($forumset['commendlength'] && strlen($rt['subject']) > $forumset['commendlength']) {
                $rt['subject'] = substrs($rt['subject'], $forumset['commendlength']);
            }
            $commend[] = $rt;
        }
    }
    $forumset['ifcommend'] = $timestamp;
    $forumsetdb = addslashes(serialize($forumset));
    $commend = $commend ? addslashes(serialize($commend)) : '';
    $db->update("UPDATE pw_forumsextra" . " SET " . pwSqlSingle(array('forumset' => $forumsetdb, 'commend' => $commend)) . ' WHERE fid=' . pwEscape($fid));
    require_once R_P . 'admin/cache.php';
    updatecache_forums($fid);
}
예제 #30
0
파일: admin.php 프로젝트: adi00/wumaproject
     if ($postdate2) {
         $date2 = PwStrtoTime($postdate2);
         $sql .= " AND d.postdate<" . pwEscape($date2);
     }
     $hits && ($sql .= " AND d.r_num<" . pwEscape($hits));
     $replies && ($sql .= " AND d.c_num<" . pwEscape($replies));
     if ($tcounts) {
         $sql .= " AND char_length(d.content)>" . pwEscape($tcounts);
     } elseif ($counts) {
         $sql .= " AND char_length(d.content)<" . pwEscape($counts);
     }
     $order = $orderby ? " ORDER BY d.{$orderby}" : " ORDER BY d.postdate";
     $sc != 'ASC' && ($sc = 'DESC');
     !$perpage && ($perpage = $db_perpage);
     (int) $page < 1 && ($page = 1);
     $limit = pwLimit(($page - 1) * $perpage, $perpage);
     $query = $db->query("SELECT d.* FROM pw_diary d LEFT JOIN pw_members m ON d.uid=m.uid {$sql} {$order} {$by} {$limit}");
     while ($rt = $db->fetch_array($query)) {
         $rt['postdate'] = $rt['postdate'] ? get_date($rt['postdate']) : '-';
         $diarydb[] = $rt;
     }
     $db->free_result($query);
     @extract($db->get_one("SELECT COUNT(*) AS count FROM pw_diary d LEFT JOIN pw_members m ON d.uid=m.uid {$sql}"));
     if ($count > $perpage) {
         require_once R_P . 'require/forum.php';
         $pages = numofpage($count, $page, ceil($count / $perpage), "{$basename}&action={$action}&step=list&groupid={$groupid}&author={$author}&keyword={$keyword}&postdate1={$postdate1}&postdate2={$postdate2}&hits={$hits}&replies={$replies}&tcounts={$tcounts}&counts={$counts}&orderby={$orderby}&sc={$sc}&perpage={$perpage}&");
     }
     if (!$_POST['direct']) {
         require_once PrintApp('diary');
     }
 } elseif ($step == 'delete') {