function csc($task = array()) { global $_G; $taskvars = array('num' => 0); $num = 0; $query = DB::query("SELECT variable, value FROM " . DB::table('common_taskvar') . " WHERE taskid='{$task['taskid']}'"); while ($taskvar = DB::fetch($query)) { if ($taskvar['value']) { $taskvars[$taskvar['variable']] = $taskvar['value']; } } $taskvars['time'] = floatval($taskvars['time']); if ($taskvars['act'] == 'buddy') { loaducenter(); $num = uc_friend_totalnum($_G['uid'], 1) + uc_friend_totalnum($_G['uid'], 3) - DB::result_first("SELECT value FROM " . DB::table('forum_spacecache') . " WHERE uid='{$_G['uid']}' AND variable='buddy{$task['taskid']}'"); } elseif ($taskvars['act'] == 'magic') { $num = DB::result_first("SELECT COUNT(*) FROM " . DB::table('forum_magiclog') . " WHERE action='2' AND uid='{$_G['uid']}'" . ($taskvars['time'] ? " AND dateline BETWEEN {$task['applytime']} AND {$task['applytime']}+3600*{$taskvars['time']}" : " AND dateline>{$task['applytime']}")); } if ($num && $num >= $taskvars['num']) { if (in_array($taskvars['act'], array('buddy', 'favorite'))) { DB::query("DELETE FROM " . DB::table('forum_spacecache') . " WHERE uid='{$_G['uid']}' AND variable='{$taskvars['act']}{$task['taskid']}'"); } return TRUE; } elseif ($taskvars['time'] && TIMESTAMP >= $task['applytime'] + 3600 * $taskvars['time'] && (!$num || $num < $taskvars['num'])) { return FALSE; } else { return array('csc' => $num > 0 && $taskvars['num'] ? sprintf("%01.2f", $num / $taskvars['num'] * 100) : 0, 'remaintime' => $taskvars['time'] ? $task['applytime'] + $taskvars['time'] * 3600 - TIMESTAMP : 0); } }
function task_csc($task = array()) { global $db, $tablepre, $discuz_uid, $timestamp; $taskvars = array('num' => 0); $num = 0; $query = $db->query("SELECT variable, value FROM {$tablepre}taskvars WHERE taskid='{$task['taskid']}'"); while ($taskvar = $db->fetch_array($query)) { if ($taskvar['value']) { $taskvars[$taskvar['variable']] = $taskvar['value']; } } $taskvars['time'] = floatval($taskvars['time']); if ($taskvars['act'] == 'buddy') { include_once DISCUZ_ROOT . './uc_client/client.php'; $num = uc_friend_totalnum($discuz_uid, 1) + uc_friend_totalnum($discuz_uid, 3) - $db->result_first("SELECT value FROM {$tablepre}spacecaches WHERE uid='{$discuz_uid}' AND variable='buddy{$task['taskid']}'"); } elseif ($taskvars['act'] == 'favorite') { $num = $db->result_first("SELECT COUNT(*) FROM {$tablepre}favorites WHERE uid='{$discuz_uid}' AND tid>'0'") - $db->result_first("SELECT value FROM {$tablepre}spacecaches WHERE uid='{$discuz_uid}' AND variable='favorite{$task['taskid']}'"); } elseif ($taskvars['act'] == 'magic') { $num = $db->result_first("SELECT COUNT(*) FROM {$tablepre}magiclog WHERE action='2' AND uid='{$discuz_uid}'" . ($taskvars['time'] ? " AND dateline BETWEEN {$task['applytime']} AND {$task['applytime']}+3600*{$taskvars['time']}" : " AND dateline>{$task['applytime']}")); } if ($num && $num >= $taskvars['num']) { if (in_array($taskvars['act'], array('buddy', 'favorite'))) { $db->query("DELETE FROM {$tablepre}spacecaches WHERE uid='{$discuz_uid}' AND variable='{$taskvars['act']}{$task['taskid']}'"); } return TRUE; } elseif ($taskvars['time'] && $timestamp >= $task['applytime'] + 3600 * $taskvars['time'] && (!$num || $num < $taskvars['num'])) { return FALSE; } else { return array('csc' => $num > 0 && $taskvars['num'] ? sprintf("%01.2f", $num / $taskvars['num'] * 100) : 0, 'remaintime' => $taskvars['time'] ? $task['applytime'] + $taskvars['time'] * 3600 - $timestamp : 0); } }
* 关注一个用户 */ public function follow_create() { if (empty($this->mid) || empty($this->user_id)) { return 0; } $r = uc_friend_add($this->mid, $this->user_id); return $r;
function areFriends($uId1, $uId2) { $num = uc_friend_totalnum($uId1, 3); $friends = uc_friend_ls($uId1, 1, $num, $num, 3); $result = false; foreach($friends as $friend) { if($friend['friendid'] == $uId2) { $result = true; break; } } return new APIResponse($result); }
function _space2user($member) { $adminLevel = 'none'; if($this->_isfounder($member)) { $adminLevel = 'founder'; } elseif($member['adminid'] == 1) { $adminLevel = 'manager'; } $user = array( 'uId' => $member['uid'], 'handle' => $member['username'], 'action' => $member['action'], 'realName' => $member['name'], 'realNameChecked' => $member['namestatus'] ? true : false, 'spaceName' => $member['spacename'], 'gender' => $member['sex'] == 1 ? 'male' : ($member['sex'] == 2 ? 'female' : 'unknown'), 'email' => $member['email'], 'qq' => $member['qq'], 'msn' => $member['msn'], 'birthday' => $member['bday'], 'bloodType' => empty($member['blood']) ? 'unknown' : $member['blood'], 'relationshipStatus' => $member['marry'] == 1 ? 'single' : ($member['marry'] == 2 ? 'notSingle' : 'unknown'), 'birthProvince' => $member['birthprovince'], 'birthCity' => $member['birthcity'], 'resideProvince' => $member['resideprovince'], 'resideCity' => $member['residecity'], 'viewNum' => 0, 'friendNum' => uc_friend_totalnum($member['uid'], 3), 'myStatus' => $member['bio'], 'lastActivity' => $member['lastactivity'], 'created' => $member['regdate'], 'credit' => $member['credits'], 'isUploadAvatar' => $member['avatar'] ? true : false, 'adminLevel' => $adminLevel, 'homepagePrivacy' => 'public', 'profilePrivacy' => 'public', 'friendListPrivacy' => 'public', ); return $user; }
<?php /** * UCenter 应用程序开发 Example * * 列出好友的 Example 代码 * 使用到的接口函数: * uc_friend_totalnum() 必须,返回好友总数 * uc_friend_ls() 必须,返回好友列表 * uc_friend_delete() 必须,删除好友 * uc_friend_add() 必须,添加好友 */ if (empty($_POST['submit'])) { $num = uc_friend_totalnum($Example_uid); echo '您有 ' . $num . ' 个好友'; echo '<form method="post" action="' . $_SERVER['PHP_SELF'] . '?example=friend">'; $friendlist = uc_friend_ls($Example_uid, 1, 999, $num); if ($friendlist) { foreach ($friendlist as $friend) { echo '<input type="checkbox" name="delete[]" value="' . $friend['friendid'] . '">'; switch ($friend['direction']) { case 1: echo '[关注]'; break; case 3: echo '[好友]'; break; } echo $friend['username'] . ':' . $friend['comment'] . '<br>'; } }
function API_RowFriend($direction = 0) { global $userid; include_once ONEZ_ROOT . './uc_client/client.php'; return uc_friend_totalnum($userid); }
function submenu_friend() { echo '<div class=wrap>'; echo '<h2>' . __('Friend', 'ucenter') . '</h2>'; global $current_user; wp_get_current_user(); list($uid, $_, $_) = uc_get_user($current_user->user_login); $friends_per_page = 10; $handler = $_SERVER['PHP_SELF'] . '?page=' . $_GET['page']; $action = !empty($_GET['action']) ? $_GET['action'] : 'view'; $_GET['tab'] = !empty($_GET['tab']) ? $_GET['tab'] : 'friend'; $menu = array(array('friend', '', __('Friend', 'ucenter')), array('focus', '', __('Focus', 'ucenter')), array('add', 'action=add', __('Add Friend', 'ucenter'))); echo '<ul class="ucenter-ul">'; foreach ($menu as $item) { printf("<li><a href='{$handler}&tab={$item['0']}&{$item['1']}' %s>{$item['2']}</a></li>", $_GET['tab'] == $item[0] ? 'class="current"' : ''); } echo '</ul><br /><hr />'; switch ($action) { case 'view': $_GET['pageid'] = !empty($_GET['pageid']) ? $_GET['pageid'] : 1; $_GET['tab'] = !empty($_GET['tab']) ? $_GET['tab'] : 'friend'; $direction = !empty($_GET['tab']) && $_GET['tab'] == 'focus' ? 1 : 3; $num = uc_friend_totalnum($uid, $direction); $friendlist = uc_friend_ls($uid, $_GET['pageid'], $friends_per_page, $num, $direction); if ($friendlist) { echo '<ul>'; foreach ($friendlist as $friend) { echo "<li>{$friend['username']} : {$friend['comment']} [ <a href='{$_SERVER['PHP_SELF']}?page=ucenter-mail-box&tab=send&action=send&touser={$friend['username']}'>Send Message</a> | <a href='{$handler}&action=delete&delete={$friend['friendid']}'>Delete</a> ] </li>"; } echo '</ul>'; } break; case 'add': if ($_POST['newfriend'] && ($friendid = uc_get_user($_POST['newfriend']))) { if (uc_friend_add($uid, $friendid[0], $_POST['newcomment'])) { echo $_POST['newfriend'] . __(' has been added to your list!', 'ucenter') . '<br /><br />'; } } echo "<form method='post' action='{$handler}&action=add&tab={$_GET['tab']}'>\n\t\t\t\t\t<table>\n\t\t\t\t\t\t<tr><td>" . __('Add Friend', 'ucenter') . '</td><td><input name="newfriend"></td></tr> <tr><td>' . __('Description', 'ucenter') . '</td><td><input name="newcomment"></td></tr> </table> <input name="submit" type="submit"> </form>'; break; case 'delete': if (!is_array($_GET['delete'])) { $_GET['delete'] = array($_GET['delete']); } if (!empty($_GET['delete'])) { if (uc_friend_delete($uid, $_GET['delete'])) { echo __('Removed!', 'ucenter'); } } break; } echo '</div>'; }
} elseif ($action == 'send' && submitcheck('pmsubmit')) { if (!$allowsendpm) { showmessage('pm_send_disable'); } if (!$adminid && $newbiespan && (!$lastpost || $timestamp - $lastpost < $newbiespan * 3600)) { $query = $db->query("SELECT regdate FROM {$tablepre}members WHERE uid='{$discuz_uid}'"); if ($timestamp - $db->result($query, 0) < $newbiespan * 3600) { showmessage('pm_newbie_span'); } } !($exempt & 1) && checklowerlimit($creditspolicy['sendpm'], -1); if (!empty($uid)) { $msgto = intval($uid); } else { if (!empty($msgtos)) { $buddynum = uc_friend_totalnum($discuz_uid, 3); $buddyarray = uc_friend_ls($discuz_uid, 1, $buddynum, $buddynum, 3); $uids = array(); foreach ($buddyarray as $buddy) { $uids[] = $buddy['friendid']; } $msgto = $p = ''; foreach ($msgtos as $uid) { $msgto .= in_array($uid, $uids) ? $p . $uid : ''; $p = ','; } if (!$msgto) { showmessage('pm_send_nonexistence'); } } else { if (!($uid = $db->result_first("SELECT uid FROM {$tablepre}members WHERE username='******'"))) {
* * 列出好友的 Example 代码 * 使用到的接口函数: * uc_friend_totalnum() 必须,返回好友总数 * uc_friend_ls() 必须,返回好友列表 * uc_friend_delete() 必须,删除好友 * uc_friend_add() 必须,添加好友 */ require_once './config.inc.php'; include './cta_client/client.php'; include './include/cookie.php'; if (empty($_POST['fun'])) { switch ($_POST['fun']) { case 'add': if ($_POST['newfriend'] && ($friendid = uc_get_user($_POST['newfriend']))) { uc_friend_add($Cta_uid, $friendid[0], $_POST['newcomment']); } break; case 'del': if (!empty($_POST['delete']) && is_array($_POST['delete'])) { uc_friend_delete($Cta_uid, $_POST['delete']); } break; case 'frtn': $num = uc_friend_totalnum($Cta_uid); break; case 'frls': $friendlist = uc_friend_ls($Cta_uid, 1, 999, $num); break; } }
'page_url' => 'userapp.php?view='.$view ); $apps = $myapps; $query = $db->query("SELECT appid FROM {$tablepre}userapp WHERE uid='$discuz_uid' AND allowfeed='0'"); if($db->num_rows($query)) { while($userapp = $db->fetch_array($query)) { unset($apps[$userapp['appid']]); } $conf['appid'] = array_keys($apps); } if($view == 'me') { $conf['uid'] = $discuz_uid; } elseif($view == 'friend') { $friendnum = uc_friend_totalnum($discuz_uid, 3); $friends = uc_friend_ls($discuz_uid, 1, $friendnum, $friendnum, 3); foreach($friends as $friend) { $conf['uid'][] = $friend['friendid']; } } $now = $timestamp + $timeoffset * 3600; $day1 = gmdate($dateformat, $now); $day2 = gmdate($dateformat, $now - 86400); $day3 = gmdate($dateformat, $now - 172800); $feeds = get_feed($conf); $feeddate = '';$bi = 1; foreach($feeds['data'] as $k => $feed) { $trans['{addbuddy}'] = $view == 'all' && $feed['uid'] != $discuz_uid ? '<a href="my.php?item=buddylist&newbuddyid='.$feed['uid'].'&buddysubmit=yes" id="ajax_buddy_'.($bi++).'" title="Ìí¼ÓΪºÃÓÑ" onclick="ajaxmenu(this, 3000);doane(event);"><img style="vertical-align:middle" src="manyou/images/myadd.gif" /></a>' : '';
} } } elseif($item == 'buddylist') { include_once DISCUZ_ROOT.'./uc_client/client.php'; $buddynum = 999; $extratype = empty($type) ? '' : '&type=fans'; if(!submitcheck('buddysubmit', 1)) { $buddylist = array(); $friendtype = empty($type) ? 3 : 1; $buddynum = uc_friend_totalnum($discuz_uid, $friendtype); $buddies = $buddynum ? uc_friend_ls($discuz_uid, $page, $tpp, $buddynum, $friendtype) : array(); $multipage = multi($buddynum, $tpp, $page, "my.php?item=buddylist$extratype"); if($buddies) { foreach($buddies as $key => $buddy) { $buddylist[$buddy['friendid']] = $buddy; } unset($buddies); $query = $db->query("SELECT m.uid, m.gender, mf.msn, s.uid AS online FROM {$tablepre}members m LEFT JOIN {$tablepre}sessions s ON s.uid=m.uid LEFT JOIN {$tablepre}memberfields mf ON mf.uid=m.uid WHERE m.uid IN (".implodeids(array_keys($buddylist)).")"); while($member = $db->fetch_array($query)) { if(isset($buddylist[$member['uid']])) { $buddylist[$member['uid']]['avatar'] = discuz_uc_avatar($member['uid'], 'small');
function find_buddy($ids) { global $_SGLOBAL, $_IMC, $space, $groups; $ids = ids_array($ids); //删除自己 $ids = ids_except($space['uid'], $ids); if (empty($ids)) { return array(); } $ids = join(',', $ids); $buddies = array(); //// include_once DISCUZ_ROOT . './uc_client/client.php'; $buddynum = uc_friend_totalnum($space['uid']); $buddies = uc_friend_ls($space['uid'], 1, $buddynum, $buddynum); if ($buddies) { foreach ((array) $buddies as $key => $buddy) { $buddylist[$buddy['friendid']] = $buddy; } unset($buddies); } // $query = $_SGLOBAL['db']->query("SELECT m.uid, m.username,nickname FROM " . tname('members') . " m left join " . tname('memberfields') . " mf on m.uid=mf.uid WHERE m.uid IN ({$ids})"); //// /*$query = $_SGLOBAL['db']-> query("SELECT main.uid, main.username, main.name, f.gid, f.fuid FROM ".tname('space')." main LEFT OUTER JOIN ".tname('friend')." f ON f.uid = '$space[uid]' AND main.uid = f.fuid WHERE main.uid IN ($ids)");*/ while ($value = $_SGLOBAL['db']->fetch_array($query)) { //realname_set($value['uid'], to_utf8($value['username'])); $id = $value['uid']; $nick = nick($value); /// $group = in_array($value['uid'], array_keys($buddylist)) ? 'friend' : 'stranger'; /// /*$group = empty($value['fuid']) ? "stranger" : null; if(empty($value['fuid'])){ $group = "stranger"; }else{ $gid = $value['gid']; $group = (empty($gid) || empty($groups[$gid])) ? "friend" : $groups[$gid]; }*/ //$jid = $id.'@'.$_IMC['domain']; //$status_time = empty($value['dateline'])?'':sgmdate('n月j日',$value['dateline'],1); $buddies[$id] = array('id' => $id, 'name' => to_utf8($nick), 'pic_url' => avatar($id, 'small', true), 'status' => '', 'status_time' => '', 'url' => 'space.php?uid=' . $id, 'group' => $group); } return $buddies; }
/** * 获取好友个数 * @param $uid * @param int $direction 好友关系标示,1:A加B为好友 2:B加了A为好友 3:A和B彼此都加为了好友 * @return mixed */ public function friend_totalnum($uid, $direction = 0) { return uc_friend_totalnum($uid, $direction); }