国产精品爱啪在线线免费观看_97视频精品_欧美精品一区二区在线播放_国产欧美久久一区二区三区

新秀網(wǎng)絡(luò)驗(yàn)證系統(tǒng)

標(biāo)題: Discuz x3.5 核心文件 function/function_friend.php 函數(shù)注釋 [打印本頁(yè)]

作者: admin    時(shí)間: 2024-6-23 13:30
標(biāo)題: Discuz x3.5 核心文件 function/function_friend.php 函數(shù)注釋
[PHP] 純文本查看 復(fù)制代碼
<?php

/**
*      [Discuz!] (C)2001-2099 Comsenz Inc.
*      This is NOT a freeware, use is subject to license terms
*
*      $Id: function_friend.php 26635 2011-12-19 01:59:13Z zhangguosheng $
*/

if(!defined('IN_DISCUZ')) {
        exit('Access Denied');
}
/**
* 獲取指定用戶的友人列表
*
* @param int $uid 用戶ID
* @param int $limit 返回結(jié)果的數(shù)量限制
* @param int $start 返回結(jié)果的起始位置(默認(rèn)為0)
* @return array 返回友人列表,鍵為友人的ID,值為友人信息
*/
function friend_list($uid, $limit, $start=0) {
    $list = array();
    $query = C::t('home_friend')->fetch_all_by_uid($uid, $start, $limit, true);
    foreach($query as $value) {
        $list[$value['fuid']] = $value;
    }
    return $list;
}

/**
* 獲取當(dāng)前用戶的友人分組列表
*
* @return array 返回友人分組列表
*/
function friend_group_list() {
    global $_G;

    $space = array('uid' => $_G['uid']);
    space_merge($space, 'field_home');

    $groups = array();
    $spacegroup = empty($space['privacy']['groupname'])?array()space['privacy']['groupname'];
    for($i = 0; $i < $_G['setting']['friendgroupnum']; $i++) {
        if($i == 0) {
            $groups[0] = lang('friend', 'friend_group_default');
        } else {
            if(!empty($spacegroup[$i])) {
                $groups[$i] = $spacegroup[$i];
            } else {
                if($i<8) {
                    $groups[$i] = lang('friend', 'friend_group_'.$i);
                } else {
                    $groups[$i] = lang('friend', 'friend_group_more', array('num'=>$i));
                }
            }
        }
    }
    return $groups;
}

/**
* 檢查指定用戶是否為當(dāng)前用戶的友人
*
* @param mixed $touids 可以是單個(gè)用戶ID或用戶ID數(shù)組
* @param int $isfull 是否獲取完整友人信息,默認(rèn)為0(只檢查友人關(guān)系是否存在)
* @return mixed 如果是數(shù)組形式的$touids,返回布爾值;如果是單個(gè)用戶ID,返回布爾值或友人信息數(shù)組
*/
function friend_check($touids, $isfull = 0) {
    global $_G;

    if(empty($_G['uid'])) return false;
    if(is_array($touids)) {
        $query = C::t('home_friend')->fetch_all_by_uid_fuid($_G['uid'], $touids);

        foreach($query as $value) {
            $touid = $value['fuid'];
            $var = "home_friend_{$_G['uid']}_{$touid}";
            $fvar = "home_friend_{$touid}_{$_G['uid']}";
            $_G[$var] = $_G[$fvar] = true;
            if($isfull) {
                $fvarinfo = "home_friend_info_{$touid}_{$_G['uid']}";
                $_G[$fvarinfo] = $value;
            }
        }

        if(count($query) != count($touids)) {
            return false;
        } else {
            return true;
        }
    } else {
        $touid = $touids;
        $var = "home_friend_{$_G['uid']}_{$touid}";
        $fvar = "home_friend_{$touid}_{$_G['uid']}";
        if(!isset($_G[$var])) {
            $query = C::t('home_friend')->fetch_all_by_uid_fuid($_G['uid'], $touid);
            $friend = isset($query[0]) ? $query[0] : '';
            if($friend) {
                $_G[$var] = $_G[$fvar] = true;
                if($isfull) {
                    $fvarinfo = "home_friend_info_{$touid}_{$_G['uid']}";
                    $_G[$fvarinfo] = $friend;
                }
            } else {
                $_G[$var] = $_G[$fvar] = false;
            }
        }
        return $_G[$var];
    }
}

/**
* 檢查指定用戶是否向當(dāng)前用戶發(fā)送了友人請(qǐng)求
*
* @param int $touid 目標(biāo)用戶ID
* @return bool 返回目標(biāo)用戶是否發(fā)送了友人請(qǐng)求
*/
function friend_request_check($touid) {
    global $_G;

    $var = "home_friend_request_{$touid}";
    if(!isset($_G[$var])) {
        $result = C::t('home_friend_request')->fetch_by_uid_fuid($_G['uid'], $touid);
        $_G[$var] = $result?true:false;
    }
    return $_G[$var];
}

/**
* 添加友人關(guān)系
*
* @param int $touid 目標(biāo)用戶ID
* @param int $gid 友人分組ID,默認(rèn)為0
* @param string $note 添加友人的備注信息,默認(rèn)為空
* @return int 返回執(zhí)行結(jié)果,-2表示目標(biāo)用戶是當(dāng)前用戶,-1表示目標(biāo)用戶已發(fā)送添加請(qǐng)求,1表示添加成功
*/
function friend_add($touid, $gid=0, $note='') {
    global $_G;

    if($touid == $_G['uid']) return -2;
    if(friend_check($touid)) return -2;

    include_once libfile('function/stat');
    $freind_request = C::t('home_friend_request')->fetch_by_uid_fuid($_G['uid'], $touid);
    if($freind_request) {
        // 處理已存在的友人請(qǐng)求,建立友人關(guān)系
        $setarr = array(
            'uid' => $_G['uid'],
            'fuid' => $freind_request['fuid'],
            'fusername' => addslashes($freind_request['fusername']),
            'gid' => $gid,
            'dateline' => $_G['timestamp']
        );
        C::t('home_friend')->insert($setarr);

        friend_request_delete($touid);

        friend_cache($_G['uid']);

        $setarr = array(
            'uid' => $touid,
            'fuid' => $_G['uid'],
            'fusername' => $_G['username'],
            'gid' => $freind_request['gid'],
            'dateline' => $_G['timestamp']
        );
        C::t('home_friend')->insert($setarr);

        addfriendlog($_G['uid'], $touid);
        friend_cache($touid);
        updatestat('friend');
    } else {
        // 處理目標(biāo)用戶未發(fā)送請(qǐng)求的情況,插入新的友人請(qǐng)求
        $to_freind_request = C::t('home_friend_request')->fetch_by_uid_fuid($touid, $_G['uid']);
        if($to_freind_request) {
            return -1;
        }

        $setarr = array(
            'uid' => $touid,
            'fuid' => $_G['uid'],
            'fusername' => $_G['username'],
            'gid' => $gid,
            'note' => $note,
            'dateline' => $_G['timestamp']
        );
        C::t('home_friend_request')->insert($setarr);

        updatestat('addfriend');
    }

    return 1;
}
/**
* 添加好友
*
* @param int $touid 目標(biāo)用戶的ID
* @param string $tousername 目標(biāo)用戶的用戶名
* @param bool $checkrequest 是否檢查好友請(qǐng)求,默認(rèn)為true
* @return bool 返回false表示操作失敗,否則成功
*/
function friend_make($touid, $tousername, $checkrequest=true) {
        global $_G;

        // 檢查是否嘗試添加自己為好友
        if($touid == $_G['uid']) return false;

        // 如果需要檢查好友請(qǐng)求
        if($checkrequest) {
                // 刪除目標(biāo)用戶向當(dāng)前用戶發(fā)出的好友請(qǐng)求
                $to_freind_request = C::t('home_friend_request')->fetch_by_uid_fuid($touid, $_G['uid']);
                if($to_freind_request) {
                        C::t('home_friend_request')->delete_by_uid_fuid($touid, $_G['uid']);
                }

                // 刪除當(dāng)前用戶向目標(biāo)用戶發(fā)出的好友請(qǐng)求
                $to_freind_request = C::t('home_friend_request')->fetch_by_uid_fuid($_G['uid'], $touid);
                if($to_freind_request) {
                        C::t('home_friend_request')->delete_by_uid_fuid($_G['uid'], $touid);
                }
        }

        // 插入兩條好友記錄,互為好友
        $insertarray = array(
                'uid' => $touid,
                'fuid' => $_G['uid'],
                'fusername' => $_G['username'],
                'dateline' => $_G['timestamp'],
        );
        C::t('home_friend')->insert($insertarray, false, true);

        $insertarray = array(
                'uid' => $_G['uid'],
                'fuid' => $touid,
                'fusername' => $tousername,
                'dateline' => $_G['timestamp'],
        );
        C::t('home_friend')->insert($insertarray, false, true);

        // 添加好友操作日志
        addfriendlog($_G['uid'], $touid);
        // 更新統(tǒng)計(jì)信息
        include_once libfile('function/stat');
        updatestat('friend');
        // 更新好友緩存
        friend_cache($touid);
        friend_cache($_G['uid']);
}

/**
* 添加好友日志
*
* @param int $uid 發(fā)起操作的用戶ID
* @param int $touid 被操作的用戶ID
* @param string $action 操作類型,默認(rèn)為'add'
* @return bool 返回true表示日志添加成功,false表示添加失敗
*/
function addfriendlog($uid, $touid, $action = 'add') {
        global $_G;

        // 檢查是否提供了有效的用戶ID
        if($uid && $touid) {
                $flog = array(
                                'uid' => $uid > $touid ? $uid : $touid,
                                'fuid' => $uid > $touid ? $touid : $uid,
                                'dateline' => $_G['timestamp'],
                                'action' => $action
                );
                DB::insert('home_friendlog', $flog, false, true);
                return true;
        }

        return false;

}

/**
* 增加好友數(shù)量統(tǒng)計(jì)
*
* @param int $touid 目標(biāo)用戶的ID
*/
function friend_addnum($touid) {
        global $_G;

        // 檢查是否為當(dāng)前用戶ID,且不為自身
        if($_G['uid'] && $_G['uid'] != $touid) {
                C::t('home_friend')->update_num_by_uid_fuid(1, $_G['uid'], $touid);
        }
}

/**
* 更新好友緩存
*
* @param int $touid 用戶ID
*/
function friend_cache($touid) {
        global $_G;

        // 合并用戶空間信息
        $tospace = array('uid' => $touid);
        space_merge($tospace, 'field_home');

        // 獲取過(guò)濾組ID
        $filtergids = empty($tospace['privacy']['filter_gid'])?array()tospace['privacy']['filter_gid'];

        $uids = array();
        $count = 0;
        $fcount = 0;
        // 獲取所有好友信息
        $query = C::t('home_friend')->fetch_all_by_uid($touid, 0, 0, true);
        foreach($query as $value) {
                // 排除自身
                if($value['fuid'] == $touid) continue;
                // 達(dá)到緩存好友數(shù)量上限
                if($fcount > 200) {
                        $count = count($query);
                        break;
                } elseif(empty($filtergids) || !in_array($value['gid'], $filtergids)) {
                        $uids[] = $value['fuid'];
                        $fcount++;
                }
                $count++;
        }
        // 更新用戶的好友列表緩存和好友數(shù)量
        C::t('common_member_field_home')->update($touid, array('feedfriend'=>implode(',', $uids)));
        C::t('common_member_count')->update($touid, array('friends'=>$count));
}

/**
* 刪除好友請(qǐng)求
* @param int $touid 目標(biāo)用戶的UID
* @return bool 刪除操作的結(jié)果,成功返回true,失敗返回false
*/
function friend_request_delete($touid) {
        global $_G;

        // 通過(guò)UID和目標(biāo)UID刪除好友請(qǐng)求
        return C::t('home_friend_request')->delete_by_uid_fuid($_G['uid'], $touid);
}

/**
* 刪除好友
* @param int $touid 目標(biāo)用戶的UID
* @return bool 刪除操作的結(jié)果,成功返回true,失敗返回false
* 注:如果目標(biāo)用戶不是好友,則不執(zhí)行刪除操作并返回false。
*/
function friend_delete($touid) {
        global $_G;

        // 檢查是否為好友,如果不是則直接返回false
        if(!friend_check($touid)) return false;

        // 刪除好友關(guān)系
        C::t('home_friend')->delete_by_uid_fuid_dual($_G['uid'], $touid);

        // 如果刪除操作影響了行數(shù)(即刪除成功),則進(jìn)行后續(xù)操作
        if(DB::affected_rows()) {
                // 添加刪除好友的日志
                addfriendlog($_G['uid'], $touid, 'delete');
                // 更新好友緩存
                friend_cache($_G['uid']);
                friend_cache($touid);
        }
}

?>






歡迎光臨 新秀網(wǎng)絡(luò)驗(yàn)證系統(tǒng) (http://m.5566wy.com/) Powered by Discuz! X3.5
国产精品爱啪在线线免费观看_97视频精品_欧美精品一区二区在线播放_国产欧美久久一区二区三区
狠狠色噜噜狠狠狠狠色吗综合| 国产精品美女诱惑| 国产黄人亚洲片| 精品无人区卡一卡二卡三乱码免费卡 | 91色乱码一区二区三区| 国产成人av一区| 国产成人免费视频精品含羞草妖精| 蜜臀久久99精品久久久久久9| 日日摸夜夜添夜夜添国产精品| 午夜国产不卡在线观看视频| 五月婷婷综合激情| 免费在线观看一区| 久久国内精品自在自线400部| 美女视频黄a大片欧美| 国产原创一区二区| 久久这里只有精品6| 日韩美女天天操| 欧美tickling网站挠脚心| 日韩精品在线网站| 中文字幕乱码一区二区免费| 国产精品欧美经典| 亚洲自拍偷拍av| 三级在线观看一区二区| 久久99精品国产麻豆不卡| 久久99精品视频| 成人精品视频一区二区三区| 午夜欧美精品久久久久久久| 亚洲精品人人| 欧美午夜一区二区三区| 欧美色视频在线| 欧美精品一区二区三区很污很色的| 久久午夜免费电影| 久久狠狠一本精品综合网| 欧美99久久| 国产精品试看| 精品视频123区在线观看| 久久久噜噜噜久噜久久综合| 亚洲免费av网站| 精品综合免费视频观看| 午夜久久tv| 久久综合给合久久狠狠色| 欧美不卡一区二区| 亚洲猫色日本管| 国产一区二区三区在线观看精品 | 美女视频网站久久| av中文字幕在线不卡| 国产三级精品在线不卡| 欧美精品欧美精品系列| 国产精品无码永久免费888| 青娱乐精品视频在线| 91福利在线导航| 免费成人在线影院| 欧美99在线视频观看| 久久综合中文| 国产欧美精品一区二区色综合朱莉 | 欧美性极品少妇| 国产精品乱人伦| 久久精品久久精品| 亚洲午夜黄色| 欧美一区二区黄色| 偷窥国产亚洲免费视频| 欧美精品二区| 欧美美女一区二区| 亚洲一区免费视频| 欧美一区二区视频在线| 欧美美女一区二区| 日本人妖一区二区| 91久久国产综合久久蜜月精品| 欧美精品1区| 日韩午夜高潮| 欧美精品一区二区蜜臀亚洲| 五月婷婷久久综合| 亚洲视频一二| 久久天天做天天爱综合色| 日韩电影免费一区| 国产精品欧美日韩一区| 国产精品久久久久久亚洲毛片| 国内精品在线播放| 久久天堂成人| 17c精品麻豆一区二区免费| 99精品热视频| 欧美一区二区三区爱爱| 黄色日韩三级电影| 久久一区激情| 亚洲午夜精品17c| 黄色亚洲在线| 一区二区中文视频| 国产一区二区三区四区三区四| 日韩精品中午字幕| 国产毛片精品一区| 欧美日韩精品一区二区天天拍小说 | 国产综合久久久久影院| 在线视频精品| 亚洲少妇中出一区| 国内久久精品| 国产欧美一区二区在线| 99久久综合国产精品| 精品国产乱码久久久久久免费| 精品亚洲欧美一区| 91精品国产高清一区二区三区蜜臀| 免费成人在线观看| 欧美日韩国产小视频在线观看| 免费人成精品欧美精品| 欧美在线免费播放| 激情图片小说一区| 6080日韩午夜伦伦午夜伦| 久久福利资源站| 91精品一区二区三区久久久久久| 久久狠狠亚洲综合| 日韩一本二本av| 色综合久久久久综合体| 亚洲美女屁股眼交| 国产精品一卡| 日本中文一区二区三区| 欧美日韩精品一区二区在线播放| 国内精品伊人久久久久av一坑| 91.com在线观看| 成人av在线一区二区| www成人在线观看| 影音先锋中文字幕一区| 亚洲成人综合视频| 欧美色图激情小说| 不卡在线视频中文字幕| 欧美国产一区二区| 亚洲综合精品四区| 极品美女销魂一区二区三区| 日韩免费一区二区| 欧美日韩91| 亚洲图片一区二区| 欧美午夜精品免费| 91一区二区三区在线播放| 一区二区三区在线高清| 欧美图片一区二区三区| 99精品国产99久久久久久白柏| 亚洲欧洲另类国产综合| 91成人国产精品| 91在线观看高清| 亚洲成人一区二区在线观看| 欧美精品在线视频| 欧美视频官网| 全国精品久久少妇| 久久久九九九九| 久久精品女人| 99re热视频精品| 亚洲成人自拍一区| 久久免费美女视频| 久久一区中文字幕| 成人精品亚洲人成在线| 国产精品国产三级国产普通话蜜臀 | 久久久av毛片精品| 免播放器亚洲| 91亚洲精品久久久蜜桃| 丝袜a∨在线一区二区三区不卡| 日韩一级免费观看| 亚洲欧美日韩国产一区二区| 盗摄精品av一区二区三区| 午夜天堂影视香蕉久久| 久久精品一区蜜桃臀影院| 色哟哟国产精品免费观看| 欧美精品麻豆| 麻豆91免费观看| 99在线精品免费视频九九视| 极品销魂美女一区二区三区| 最近中文字幕一区二区三区| 欧美一二区视频| 色婷婷av一区二区三区软件| 欧美日韩精品免费观看视频完整| 九九**精品视频免费播放| 亚洲靠逼com| 久久久国产综合精品女国产盗摄| 色播五月激情综合网| 亚洲福利国产| 91麻豆免费看| 风流少妇一区二区| 日本欧美肥老太交大片| 亚洲激情在线激情| 国产香蕉久久精品综合网| 这里是久久伊人| 国产精品麻豆网站| 欧美欧美午夜aⅴ在线观看| 一本久道久久综合中文字幕| 伊人成人网在线看| 色综合久久综合网欧美综合网| 激情欧美一区二区三区在线观看| 亚洲成人黄色小说| 亚洲欧美激情视频在线观看一区二区三区 | 午夜精品剧场| 国内精品视频666| 天天av天天翘天天综合网| **网站欧美大片在线观看| 精品美女被调教视频大全网站| 欧美亚洲尤物久久| 色哟哟一区二区三区| 国产伦精品一区二区| 国语自产精品视频在线看抢先版结局 | 在线观看亚洲a| 色偷偷成人一区二区三区91| 亚洲视频www| 亚洲国产免费看| 日韩一级不卡|