コード例 #1
0
ファイル: report.php プロジェクト: jechiy/PHPWind
function getSendToUsernames($type, $tid)
{
    global $windid, $db;
    $usernames = array();
    if (!$type || !$tid) {
        return $usernames;
    }
    $remindUsernames = $db->get_value("SELECT db_value FROM pw_config WHERE db_name = 'report_remind'");
    $remindUsernames = $remindUsernames ? unserialize($remindUsernames) : array();
    foreach ($remindUsernames as $key => $value) {
        if ($value['username'] == $windid) {
            continue;
        }
        $usernames[] = $value['username'];
    }
    if ($type != 'topic') {
        return $usernames;
    }
    $_cacheService = Perf::gatherCache('pw_threads');
    $threads = $_cacheService->getThreadByThreadId($tid);
    $fid = $threads['fid'];
    L::loadClass('forum', 'forum', false);
    $forumService = new PwForum($fid);
    $foruminfo = $forumService->foruminfo;
    $forumadmins = $foruminfo['forumadmin'];
    $forumadmins = explode(',', $forumadmins);
    foreach ($forumadmins as $forumadmin) {
        if (!$forumadmin || $forumadmin == $windid) {
            continue;
        }
        $usernames[] = $forumadmin;
    }
    return $usernames;
}
コード例 #2
0
 function _getThreadData($tid)
 {
     //* $threadService = L::loadClass('threads','forum');
     //* return $threadService->getThreads($tid, true);
     $_cacheService = Perf::gatherCache('pw_threads');
     return $_cacheService->getThreadAndTmsgByThreadId($tid);
 }
コード例 #3
0
 function clearCacheByName($tableName, $fields)
 {
     if (!isset($fields['name'])) {
         return false;
     }
     $cache = Perf::gatherCache('PW_Cache');
     $cache->clearCacheByName($fields['name']);
 }
コード例 #4
0
 function clearCacheForSpaceByUid($tableName, $fields)
 {
     if (!isset($fields['uid'])) {
         return false;
     }
     $cache = Perf::gatherCache('PW_Space');
     $cache->clearCacheForSpaceByUid($fields['uid']);
 }
コード例 #5
0
 function cleanWeibocontentCacheWithMids($tableName, $fields)
 {
     if (!isset($fields['mid'])) {
         return false;
     }
     $mids = is_array($fields['mid']) ? $fields['mid'] : array($fields['mid']);
     $cache = Perf::gatherCache('pw_weibo_content');
     $cache->clearCacheForWeiboContentsByMids($mids);
 }
コード例 #6
0
 /**
  * 获取个人APP列表
  */
 function userApplist($uids, $appids = '', $arrt = 0)
 {
     if (!$uids) {
         return false;
     }
     $this->_app_array = array();
     $this->_appslist = $this->getApplist();
     $sql_uid = $sql_appid = '';
     if (is_numeric($uids)) {
         $sql_uid .= ' uid=' . S::sqlEscape($uids);
     } elseif (is_array($uids)) {
         $sql_uid .= ' uid IN(' . S::sqlImplode($uids) . ')';
     }
     if (is_numeric($appids)) {
         $sql_appid .= ' AND appid=' . S::sqlEscape($appids);
     } elseif (is_array($appids)) {
         $sql_appid .= ' AND appid IN(' . S::sqlImplode($appids) . ')';
     }
     //$query = $this->_db->query("SELECT uid,appid,appname FROM pw_userapp WHERE $sql_uid $sql_appid");
     if (perf::checkMemcache()) {
         $appids = is_array($appids) ? $appids : array(intval($appids));
         $_cacheService = Perf::gatherCache('pw_userapp');
         $array = $_cacheService->getUserappsCacheByUids($uids);
         foreach ($array as $v) {
             if (in_array($v['appid'], $appids)) {
                 continue;
             }
             if ($this->_appslist[$v['appid']]) {
                 if ($arrt == 1) {
                     $this->_app_array[$v['appid']] = $v['appname'];
                 } elseif ($arrt == 2) {
                     $this->_app_array[$v['uid']][$v['appid']] = $v;
                 } else {
                     $this->_app_array[] = $v;
                 }
             }
         }
     } else {
         $query = $this->_db->query("SELECT uid,appid,appname FROM pw_userapp WHERE {$sql_uid} {$sql_appid}");
         while ($rt = $this->_db->fetch_array($query)) {
             if ($this->_appslist[$rt['appid']]) {
                 if ($arrt == 1) {
                     $this->_app_array[$rt['appid']] = $rt['appname'];
                 } elseif ($arrt == 2) {
                     $this->_app_array[$rt['uid']][$rt['appid']] = $rt;
                 } else {
                     $this->_app_array[] = $rt;
                 }
             }
         }
     }
     if (!$this->_app_array || !$this->appifopen) {
         $this->_app_array = array();
     }
     return $this->_app_array;
 }
コード例 #7
0
ファイル: replyjobhookitem.php プロジェクト: jechiy/PHPWind
 function run()
 {
     $tid = $this->getVar('tid');
     $db_htmifopen = $this->getVar('db_htmifopen');
     $winduid = $this->getVar('winduid');
     require_once R_P . 'require/functions.php';
     $_cacheService = Perf::gatherCache('pw_threads');
     $thread = $page > 1 ? $_cacheService->getThreadByThreadId($tid) : $_cacheService->getThreadAndTmsgByThreadId($tid);
     initJob($winduid, "doReply", array('tid' => $tid, 'user' => $thread['author']));
 }
コード例 #8
0
 function getBbsInfoById($id)
 {
     $id = S::int($id);
     if ($id < 1) {
         return false;
     }
     if (perf::checkMemcache()) {
         $_cacheService = Perf::gatherCache('pw_bbsinfo');
         return $_cacheService->getBbsInfoById($id);
     }
     $bbsInfoDb = $this->_getBbsInfoDB();
     return $bbsInfoDb->get($id);
 }
コード例 #9
0
 function clearPingLogsCacheByTid($fields)
 {
     global $tid, $db;
     $id = isset($fields['id']) ? $fields['id'] : 1;
     if (!$tid && !$id) {
         return false;
     }
     if (!$tid) {
         $id = is_array($id) ? end($id) : $id;
         $tid = $db->get_value('SELECT tid FROM pw_pinglog WHERE id=' . S::sqlEscape($id));
     }
     $cache = Perf::gatherCache('pw_ping');
     $cache->clearPingLogsCache($tid);
 }
コード例 #10
0
ファイル: space.class.php プロジェクト: jechiy/PHPWind
 function PwSpace($uid)
 {
     global $db, $winduid, $db_phopen, $db_dopen, $db_groups_open;
     $this->_db =& $db;
     $this->uid = $uid;
     $userService = L::loadClass('UserService', 'user');
     if ($winduid && $winduid == $uid) {
         $this->info = $GLOBALS['winddb'];
         $this->info['isMe'] = 1;
     } elseif ($userdb = $userService->get($this->uid, true, true, true)) {
         //$userdb['rvrc'] /= 10;
         $this->info = $userdb;
     }
     if ($this->info) {
         if (perf::checkMemcache()) {
             $_cacheService = Perf::gatherCache('pw_space');
             $space = $_cacheService->getSpaceByUid($this->uid);
         } else {
             $space = $this->_db->get_one("SELECT * FROM pw_space WHERE uid=" . S::sqlEscape($this->uid));
         }
         if ($space) {
             $this->info = array_merge($this->info, $space);
             if ($this->info['banner']) {
                 list($this->info['banner_s']) = geturl($this->info['banner'], 'lf');
             }
         } else {
             $this->default = true;
         }
         $spaceGroupid = $this->info['groupid'] == -1 ? $this->info['memberid'] : $this->info['groupid'];
         include pwCache::getPath(D_P . "data/groupdb/group_{$spaceGroupid}.php");
         $this->info['generalRight'] = $_G;
         !$this->info['name'] && ($this->info['name'] = $this->info['username'] . '的个人主页');
         !$this->info['skin'] && ($this->info['skin'] = 'default85');
         $GLOBALS['uskin'] =& $this->info['skin'];
     }
     if ($db_dopen) {
         $this->models[] = 'diary';
     }
     if ($db_phopen) {
         $this->models[] = 'photos';
     }
     if ($db_groups_open) {
         $this->models[] = 'colony';
     }
 }
コード例 #11
0
ファイル: space.php プロジェクト: jechiy/PHPWind
     if (is_numeric($o_u) && strlen($hash) == 18) {
         require_once R_P . 'require/o_invite.php';
     }
 }
 $visitors = unserialize($space['visitors']);
 is_array($visitors) || ($visitors = array());
 if (!isset($visitors[$winduid]) || $timestamp - $visitors[$winduid] > 900) {
     $visitors[$winduid] = $timestamp;
     arsort($visitors);
     if (count($visitors) > 12) {
         array_pop($visitors);
     }
     $db->pw_update("SELECT uid FROM pw_space WHERE uid=" . S::sqlEscape($uid), pwQuery::buildClause("UPDATE :pw_table SET visits=visits+1,visitors=:visitors WHERE uid=:uid", array('pw_space', serialize($visitors), intval($uid))), pwQuery::insertClause('pw_space', array('uid' => $uid, 'visits' => 1, 'visitors' => serialize($visitors))));
 }
 if (perf::checkMemcache()) {
     $_cacheService = Perf::gatherCache('pw_space');
     $tmp = $_cacheService->getSpaceByUid($winduid);
     $tovisitors = $tmp['tovisitors'];
 } else {
     $tovisitors = $db->get_value("SELECT tovisitors FROM pw_space WHERE uid=" . S::sqlEscape($winduid));
 }
 $tovisitors = unserialize($tovisitors);
 is_array($tovisitors) || ($tovisitors = array());
 if (!isset($tovisitors[$uid]) || $timestamp - $tovisitors[$uid] > 900) {
     $tovisitors[$uid] = $timestamp;
     arsort($tovisitors);
     if (count($tovisitors) > 12) {
         array_pop($tovisitors);
     }
     //$db->update("UPDATE pw_space SET tovisits=tovisits+'1',tovisitors=" . S::sqlEscape(serialize($tovisitors),false) .  " WHERE uid=" . S::sqlEscape($winduid));
     $db->update(pwQuery::buildClause("UPDATE :pw_table SET tovisits=tovisits+1,tovisitors=:tovisitors WHERE uid=:uid", array('pw_space', serialize($tovisitors), $winduid)));
コード例 #12
0
ファイル: pw_threads.query.php プロジェクト: jechiy/PHPWind
 function cleanThreadCacheWithForumIds($fields, $expand = array())
 {
     if (!isset($fields['fid']) && !isset($expand['fid'])) {
         return false;
     }
     $forumIds = array();
     isset($fields['fid']) && ($forumIds = is_array($fields['fid']) ? $fields['fid'] : array($fields['fid']));
     isset($expand['fid']) && ($forumIds = array_merge($forumIds, is_array($expand['fid']) ? $expand['fid'] : array($expand['fid'])));
     $_cacheService = Perf::gatherCache('pw_threads');
     $_cacheService->clearCacheForThreadListByForumIds($forumIds);
 }
コード例 #13
0
 /**
  * 孔明灯搜索
  * @param array $params
  * @param int $offset
  * @param int $size
  * @return array
  */
 function getKmdInfosWithCondition($params, $offset, $size)
 {
     if (!is_array($params)) {
         return false;
     }
     list($start, $limit, $fid, $uid, $status, $starttime, $endtime) = array(intval($offset), intval($size), intval($params['fid']), intval($params['uid']), intval($params['status']), intval($params['starttime']), intval($params['endtime']));
     $kmdInfoDb = $this->_getKmdInfoDB();
     $tmpKmdInfo = $kmdInfoDb->getKmdInfosWithCondition($start, $limit, $fid, $uid, $status, $starttime, $endtime);
     if (!S::isArray($tmpKmdInfo)) {
         return array();
     }
     $tids = $fids = $uids = $result = array();
     foreach ($tmpKmdInfo as $value) {
         $tids[$value['kid']] = $value['tid'];
         $fids[$value['kid']] = $value['fid'];
         $uids[$value['kid']] = $value['uid'];
     }
     $cacheService = Perf::gatherCache('pw_threads');
     $threads = $cacheService->getThreadsByThreadIds(array_unique($tids));
     $forumService = L::loadClass('Forums', 'forum');
     $forums = $forumService->getForumsByFids(array_unique($fids));
     $userService = L::loadClass('UserService', 'user');
     $users = $userService->getByUserIds(array_unique($uids));
     foreach ($tmpKmdInfo as $value) {
         $value['subject'] = $threads[$value['tid']]['subject'];
         $value['forumname'] = $forums[$value['fid']]['name'];
         $value['username'] = $users[$value['uid']]['username'];
         $result[$value['kid']] = $value;
     }
     return $result;
 }
コード例 #14
0
ファイル: topic.class.php プロジェクト: jechiy/PHPWind
 /**
  * 获取热门话题
  * @param int $o_weibo_hottopicdays 热门话题榜缓存时间
  * @param int $timestamp 时间戳
  * @param array $db
  * @return array $TopicDb
  */
 function getWeiboHotTopics()
 {
     global $o_weibo_hottopicdays, $timestamp, $db;
     if (perf::checkMemcache()) {
         $_cacheService = Perf::gatherCache('pw_cache');
         $rt = $_cacheService->getCacheByName('weiboHotTopics_10');
     } else {
         $rt = $db->get_one("SELECT * FROM pw_cache WHERE name='weiboHotTopics_10'");
     }
     $lastData = @unserialize($rt['cache']);
     $weiboHotTopics = array();
     if ($lastData && $rt['time'] > $timestamp - 7200) {
         $weiboHotTopics = (array) $lastData;
     } else {
         $days = $o_weibo_hottopicdays ? intval($o_weibo_hottopicdays) : 7;
         $weiboHotTopics = $this->getHotTopics(10, $days);
         /*与上一次比较排名变化*/
         foreach (array($lastData) as $k => $v) {
             if (!isset($v['order'])) {
                 continue;
             }
             if ($v['order'] < $weiboHotTopics[$k]['order']) {
                 $weiboHotTopics[$k]['change'] = 2;
                 //排名下降
             } elseif ($v['order'] > $weiboHotTopics[$k]['order']) {
                 $weiboHotTopics[$k]['change'] = 1;
                 //排名上升
             } else {
                 $weiboHotTopics[$k]['change'] = 0;
             }
         }
         /*	
         $db->update("REPLACE INTO pw_cache SET " . S::sqlSingle(array(
         	'name'	=> 'weiboHotTopics_10',
         	'cache'	=> serialize($weiboHotTopics),
         	'time'	=> $timestamp
         )));
         */
         pwQuery::replace('pw_cache', array('name' => 'weiboHotTopics_10', 'cache' => serialize($weiboHotTopics), 'time' => $timestamp));
     }
     return $weiboHotTopics;
 }
コード例 #15
0
ファイル: active.class.php プロジェクト: sherlockhouse/aliyun
 /**
  * 获取热门活动
  * return array
  */
 function getHotActive($nums)
 {
     global $timestamp;
     if (perf::checkMemcache()) {
         $_cacheService = Perf::gatherCache('pw_cache');
         $rt = $_cacheService->getCacheByName('hotactive_3');
     } else {
         $rt = $this->_db->get_one("SELECT * FROM pw_cache WHERE name='hotactive_3'");
     }
     if ($rt && $rt['time'] > $timestamp - 1800) {
         return unserialize($rt['cache']);
     } else {
         list($activedb) = $this->searchList(array('createtime_s' => $timestamp - 2592000), 3, 0, 'members', 'DESC');
         pwQuery::replace('pw_cache', array('name' => 'hotactive_3', 'cache' => serialize($activedb), 'time' => $timestamp));
         //$this->_db->update("REPLACE INTO pw_cache SET " . S::sqlSingle(array('name' => 'hotactive_3', 'cache' => serialize($activedb), 'time' => $timestamp)));
         return $activedb;
     }
 }
コード例 #16
0
 /**
  * 更新用户群组信息(CmemberAndColony)时,清除相应缓存 
  *
  * @param array $information
  * @return boolean
  */
 function changeCmemberAndColonyWithUserIds($information)
 {
     if (!isset($information['uid'])) {
         return true;
     }
     $userIds = is_array($information['uid']) ? $information['uid'] : array($information['uid']);
     if (Perf::checkMemcache()) {
         $_cacheService = Perf::gathercache('pw_members');
         return $_cacheService->clearCacheForCmemberAndColonyByUserIds($userIds);
     } else {
         $_cacheService = Perf::gatherCache('pw_membersdbcache');
         return $_cacheService->clearColonyDbCacheByUserIds($userIds);
     }
 }
コード例 #17
0
 /**
  * 根据uid获取标签信息
  * 
  * @param int $uid 
  * @return array
  */
 function getMemberTagsByUid($uid)
 {
     $uid = intval($uid);
     if ($uid <= 0) {
         return array();
     }
     if (perf::checkMemcache()) {
         $_cacheService = Perf::gatherCache('pw_members');
         return $_cacheService->getMemberTagsByUserid($uid);
     }
     return $this->getMemberTagsByUidFromDB($uid);
 }
コード例 #18
0
ファイル: userservice.class.php プロジェクト: jechiy/PHPWind
 /**
  * 根据用户id批量获取用户名
  * 
  * @param array $userIds 用户id数组
  * @return array 以uid为key,用户名为值的数组
  */
 function getUserNamesByUserIds($userIds)
 {
     if (!is_array($userIds) || !count($userIds)) {
         return array();
     }
     if (perf::checkMemcache()) {
         $_cacheService = Perf::gatherCache('pw_members');
         return $_cacheService->getUserNameByUserIds($userIds);
     }
     $userNames = array();
     $members = $this->getByUserIds($userIds);
     foreach ($members as $member) {
         $member['uid'] && ($userNames[$member['uid']] = $member['username']);
     }
     return $userNames;
 }
コード例 #19
0
 /**
  * Get PW_UsercacheDB
  * 
  * @access protected
  * @return PW_UsercacheDB
  */
 function _getUserCacheDB()
 {
     return $this->_cache ? Perf::gatherCache('pw_usercache') : L::loadDB('UserCache', 'user');
 }
コード例 #20
0
ファイル: index.php プロジェクト: sherlockhouse/aliyun
function checkKmdThread($tid)
{
    global $winduid, $kmdService;
    $threadCacheService = Perf::gatherCache('pw_threads');
    $threadInfo = $threadCacheService->getThreadAndTmsgByThreadId($tid);
    !$threadInfo && kmdAjaxMessage('该帖子不存在,请确认URL是否正确');
    $threadInfo['authorid'] != $winduid && kmdAjaxMessage('孔明灯只能对自己的帖子使用,请确认该帖子归属');
    $threadExists = $kmdService->getKmdInfoByTid($tid);
    $threadExists && kmdAjaxMessage('该帖子已经是孔明灯帖或正在审核中');
    return $threadInfo;
}
コード例 #21
0
 function cleanBbsInfoCacheById($tableName, $fields)
 {
     $id = isset($fields['id']) ? $fields['id'] : 1;
     $cache = Perf::gatherCache('pw_bbsinfo');
     $cache->clearBbsInfoCacheById($id);
 }
コード例 #22
0
 function cleanMemberCacheWithUserIds($tableName, $fields)
 {
     if (!isset($fields['uid']) && !isset($fields['userid'])) {
         return false;
     }
     $userIds = is_array($fields['uid']) ? $fields['uid'] : array($fields['uid']);
     $cache = Perf::gatherCache('pw_members');
     switch ($tableName) {
         case 'pw_members':
             $cache->clearCacheForMembersByUserIds($userIds);
             break;
         case 'pw_memberdata':
             $cache->clearCacheForMemberDataByUserIds($userIds);
             break;
         case 'pw_memberinfo':
             $cache->clearCacheForMemberInfoByUserIds($userIds);
             break;
         case 'pw_singleright':
             $cache->clearCacheForSingleRightByUserIds($userIds);
             break;
         case 'pw_membercredit':
             $cache->clearCacheForMemberCreditByUserIds($userIds);
             break;
         case 'pw_banuser':
             $cache->clearCacheForMembersByUserIds($userIds);
             break;
         case 'pw_cmembers':
             $cache->clearCacheForCmemberAndColonyByUserIds($userIds);
             break;
         case 'pw_membertags_relations':
             $userIds = is_array($fields['userid']) ? $fields['userid'] : array($fields['userid']);
             $cache->clearCacheForMemberTagsByUserIds($userIds);
             break;
     }
     return true;
 }
コード例 #23
0
ファイル: aboutcache.php プロジェクト: jechiy/PHPWind
     // 清除data目录下的缓存文件的压缩包
     $_packService = pwPack::getPackService();
     $_packService->flushCacheFiles();
     adminmsg('operate_success');
 } elseif ($action == 'clearUniqueCache') {
     // 清除唯一主键的缓存
     $pwServer['REQUEST_METHOD'] != 'POST' && PostCheck($verify);
     $uniqueService = L::loadClass('unique', 'utility');
     $uniqueService->clear($GLOBALS['db_unique_strategy']);
     adminmsg('operate_success');
 } elseif ($action == 'clearMemcache') {
     $pwServer['REQUEST_METHOD'] != 'POST' && PostCheck($verify);
     S::gp(array('fid'));
     //* $memcache = new ClearMemcache();
     //* $memcache->clear(array($fid));
     $_cacheService = Perf::gatherCache('pw_threads');
     $_cacheService->clearCacheForThreadListByForumIds($fid);
     adminmsg('operate_success');
 } else {
     if ($action == 'clearForumMemcache') {
         $pwServer['REQUEST_METHOD'] != 'POST' && PostCheck($verify);
         if (Perf::checkMemcache()) {
             // 清除index页面的版块缓存
             $_cacheService = Perf::getCacheService();
             $_cacheService->delete('all_forums_info');
             // 清除thread页面版块缓存
             $query = $db->query('SELECT fid FROM pw_forumdata');
             while ($rt = $db->fetch_array($query)) {
                 $_cacheService->delete('forumdata_announce_' . $rt['fid']);
             }
         }
コード例 #24
0
ファイル: thread.php プロジェクト: jechiy/PHPWind
 function getFromDB($start, $allowtop)
 {
     list($offset, $limit2, $tpcdb, $R) = $this->getThreadSortWithToppedThread($allowtop, $start);
     if ($limit2) {
         global $db_datastore;
         if ($this->threadSearch->order == 'lastpost' && empty($this->threadSearch->urladd) && perf::checkMemcache() && !$R && $offset < 980) {
             //* $threadlist = L::loadClass('threadlist', 'forum');
             //* $tmpTpcdb = $threadlist->getThreads($this->fid, $offset, $limit2);
             $_cacheService = Perf::gatherCache('pw_threads');
             $tmpTpcdb = $_cacheService->getThreadListByForumId($this->fid, $offset, $limit2);
             $tpcdb = array_merge((array) $tpcdb, (array) $tmpTpcdb);
         } else {
             $sqladd = $this->threadSearch->getSqlAdd($allowtop);
             $query = $this->db->query("SELECT * FROM pw_threads t WHERE t.fid=" . S::sqlEscape($this->fid) . " {$sqladd} ORDER BY t.{$this->threadSearch->order} {$this->threadSearch->asc} " . S::sqlLimit($offset, $limit2));
             while ($thread = $this->db->fetch_array($query)) {
                 $tpcdb[] = $thread;
             }
             $this->db->free_result($query);
             $R && ($tpcdb = array_reverse($tpcdb));
         }
     }
     //$tpcdb = $this->cookThreadHits($tpcdb);
     return $tpcdb;
 }
コード例 #25
0
 function clearCacheForThreadPost($tid)
 {
     $_cacheService = Perf::gatherCache('pw_posts');
     $_cacheService->clearCacheForThreadPost($tid);
 }
コード例 #26
0
ファイル: banuser.class.php プロジェクト: jechiy/PHPWind
 /**
  * 获取帖子信息
  * @param $tid
  * @param $pid
  */
 function getPostInfo($tid, $pid = 0)
 {
     $tid = intval($tid);
     $pid = intval($pid);
     if ($tid > 0) {
         //* $threadService = L::loadClass('threads', 'forum'); /* @var $threadService PW_Threads */
         //* $threadInfo = $threadService->getThreads($tid,true);
         $_cacheService = Perf::gatherCache('pw_threads');
         $threadInfo = $_cacheService->getThreadAndTmsgByThreadId($tid);
         if (!$threadInfo) {
             return false;
         }
         $fid = $threadInfo['fid'];
         $userip = $threadInfo['userip'];
         //回复
         if ($pid > 0) {
             $postTable = GetPtable($threadInfo['ptable']);
             $postInfo = $this->db->get_one("SELECT authorid,userip FROM {$postTable} \n\t\t\t\t\t\tWHERE pid= " . S::sqlEscape($pid) . " \n\t\t\t\t\t\tAND tid=" . S::sqlEscape($tid) . "\n\t\t\t\t\t\tAND authorid= " . S::sqlEscape($uid));
             if (!$postInfo) {
                 return false;
             }
             $userip = $postInfo['userip'];
         }
         return array('fid' => $fid, 'userip' => $userip);
     }
     return false;
 }
コード例 #27
0
ファイル: credit.php プロジェクト: jechiy/PHPWind
 /**
  * 获取用户积分
  *
  * @param int		$uid		用户UID
  * @param string	$cType		获取的积分类型
  * return mixed
  */
 function get($uid, $cType = 'ALL')
 {
     global $db;
     $getv = false;
     if (isset($this->cType[$cType])) {
         if (isset($this->getUser[$uid][$cType])) {
             return $this->getUser[$uid][$cType];
         }
         if (is_numeric($cType)) {
             if (perf::checkMemcache()) {
                 $_cacheService = Perf::gatherCache('pw_members');
                 $userCredit = $_cacheService->getMemberCreditByUserIds(array($uid));
                 $getv = $userCredit[$uid][$cType];
             } else {
                 $getv = $db->get_value('SELECT value FROM pw_membercredit WHERE uid=' . S::sqlEscape($uid) . ' AND cid=' . S::sqlEscape($cType));
             }
             empty($getv) && ($getv = 0);
         } else {
             $getv = $db->get_value("SELECT {$cType} FROM pw_memberdata WHERE uid=" . S::sqlEscape($uid));
             $cType == 'rvrc' && ($getv = intval($getv / 10));
         }
         $this->getUser[$uid][$cType] = $getv;
     }
     if (in_array($cType, array('ALL', 'COMMON', 'CUSTOM'))) {
         $getv = array();
         if ($cType != 'CUSTOM') {
             $getv = $db->get_one("SELECT money,FLOOR(rvrc/10) AS rvrc,credit,currency FROM pw_memberdata WHERE uid=" . S::sqlEscape($uid));
         }
         if ($GLOBALS['_CREDITDB'] && $cType != 'COMMON') {
             if (perf::checkMemcache()) {
                 $_cacheService = Perf::gatherCache('pw_members');
                 $userCredit = $_cacheService->getMemberCreditByUserIds(array($uid));
                 $getv = $userCredit[$uid];
             } else {
                 $query = $db->query("SELECT cid,value FROM pw_membercredit WHERE uid=" . S::sqlEscape($uid));
                 while ($rt = $db->fetch_array($query)) {
                     $getv[$rt['cid']] = $rt['value'];
                 }
             }
         }
         $this->getUser[$uid] = $getv;
     }
     return $getv;
 }
コード例 #28
0
ファイル: weibo.class.php プロジェクト: jechiy/PHPWind
 function getWeibosByMid($mids)
 {
     if (empty($mids) || !is_numeric($mids) && !is_array($mids)) {
         return array();
     }
     if (perf::checkMemcache()) {
         $_cacheService = Perf::gatherCache('pw_weibo_content');
         $array = $_cacheService->getWeibosByMids($mids);
     } else {
         $contentDao = L::loadDB('weibo_content', 'sns');
         $array = $contentDao->getWeibosByMid($mids);
     }
     return is_array($mids) ? $array : current($array);
 }
コード例 #29
0
ファイル: addfloor.php プロジェクト: jechiy/PHPWind
		}
		is_object($_cache) && $_cache->update($tmpCacheData,3600);
		$db->free_result($query);
	}
	unset($skey,$_uids,$_cache,$tmpUIDs,$tmpCREDITs,$tmpGROUPs,$tmpColonydb,$tmpCustomdb,$tmpCacheData);
}
**/
if ($_uids) {
    $_userIds = array_keys($_uids);
    if (perf::checkMemcache()) {
        $_cacheService = Perf::gatherCache('pw_members');
        $pwMembers = $tableinfo ? $_cacheService->getAllByUserIds($_userIds, true, true, true) : $_cacheService->getAllByUserIds($_userIds, true, true);
        $showCustom && ($customdb = $_cacheService->getMemberCreditByUserIds($_userIds));
        $db_showcolony && ($colonydb = $_cacheService->getCmemberAndColonyByUserIds($_userIds));
    } else {
        $_dbCacheService = Perf::gatherCache('pw_membersdbcache');
        list($pwMembers, $customdb, $colonydb) = $_dbCacheService->getUserDBCacheByUserIds($_userIds, $showCustom, $db_showcolony, $showfield);
        /**		
        		$skey = array();
        		foreach ($_uids as $key=>$value) {
        			$skey[$value] = $key;
        			$db_showcolony && $skey['UID_GROUP_'.$key] = $key;
        			$showCustom && $skey['UID_CREDIT_'.$key] = $key;
        		}
        		
        		//* $_cache = getDatastore();
        		$arrValues = $_cache->get(array_keys($skey));
        		$tmpUIDs = $tmpGROUPs = $tmpGROUPs = $tmpCacheData = $tmpColonydb = $tmpCustomdb = array();
        		foreach ($skey as $key=>$value) {
        			$prefix = substr($key,0,strrpos($key,'_'));
        	
コード例 #30
0
ファイル: read.php プロジェクト: jechiy/PHPWind
    }
    $N_allowtypeopen = true;
}
$msg_guide = $pwforum->headguide($guidename);
//$msg_guide = headguide($guidename);
unset($fourm, $guidename);
//评价功能开启
$rateSets = unserialize($db_ratepower);
if (!$forumset['rate'] && $rateSets[1] && isset($db_hackdb['rate'])) {
    list($noAjax, $objectid, $typeid, $elementid) = array(TRUE, $tid, 1, 'vote_box');
    require_once R_P . 'hack/rate/index.php';
}
s::gp(array('pingpage'));
!$pingpage && ($pingpage = 1);
if (Perf::checkMemcache()) {
    $_cacheService = Perf::gatherCache('pw_ping');
    $ping_logs = $_cacheService->getPingsByThreadId($tid, $ping_logs, $pingpage);
} else {
    if ($ping_logs) {
        $pingService = L::loadClass('ping', 'forum');
        $ping_logs = $pingService->getPingLogs($tid, $ping_logs, $pingpage);
    } else {
        $ping_logs = array();
    }
}
$isAuthStatus = $isGM || (!$forumset['auth_allowrp'] || $pwforum->authStatus($winddb['userstatus'], $forumset['auth_logicalmethod']) === true);
//!$isAuthStatus && $N_allowtypeopen = false;
//快速回复
if ($isAuthStatus && (!$tpc_locked || $SYSTEM['replylock']) && ($admincheck || $pwforum->allowreply($winddb, $groupid))) {
    $psot_sta = 'reply';
    //control the faster reply