用户ID * @param int $more 详细信息 * @return int 是否存在新短消息 * 2 详细 (短消息数、公共消息数、最后消息时间, 最后消息内容) * 1 简单 (短消息数、公共消息数、最后消息时间) * 0 否 */ function uc_pm_checknew($uid, $more = 0) { $return = call_user_func(UC_API_FUNC, 'pm', 'check_newpm', array('uid'=>$uid, 'more'=>$more)); return (!$more || UC_CONNECT == 'mysql') ? $return : uc_unserialize($return); } /** * 发送短消息 * * @param int $fromuid 发件人uid 0 为系统消息 * @param mix $msgto 收件人 uid/username 多个逗号分割 * @param mix $subject 标题 * @param mix $message 内容 * @param int $instantly 立即发送 1 立即发送(默认) 0 进入短消息发送界面 * @param int $replypid 回复的消息Id * @param int $isusername 0 = $msgto 为 uid、1 = $msgto 为 username * @return * >1 发送成功的人数 * 0 收件人不存在 */ function uc_pm_send($fromuid, $msgto, $subject, $message, $instantly = 1, $replypmid = 0, $isusername = 0) { if($instantly) { $replypmid = @is_numeric($replypmid) ? $replypmid : 0; return call_user_func(UC_API_FUNC, 'pm', 'sendpm', array('fromuid'=>$fromuid, 'msgto'=>$msgto, 'subject'=>$subject, 'message'=>$message, 'replypmid'=>$replypmid, 'isusername'=>$isusername)); } else { $fromuid = intval($fromuid); $subject = urlencode($subject); $msgto = urlencode($msgto); $message = urlencode($message); $replypmid = @is_numeric($replypmid) ? $replypmid : 0; $replyadd = $replypmid ? "&pmid=$replypmid&do=reply" : ''; $apiurl = uc_api_url('pm_client', 'send', "uid=$fromuid", "&msgto=$msgto&subject=$subject&message=$message$replyadd"); @header("Expires: 0"); @header("Cache-Control: private, post-check=0, pre-check=0, max-age=0", FALSE); @header("Pragma: no-cache"); @header("location: ".$apiurl); } } /** * 删除短消息 * * @param int $uid 用户Id * @param string $folder 打开的目录 inbox=收件箱,outbox=发件箱 * @param array $pmids 要删除的消息ID数组 * @return * >0 成功 * <=0 失败 */ function uc_pm_delete($uid, $folder, $pmids) { return call_user_func(UC_API_FUNC, 'pm', 'delete', array('uid'=>$uid, 'folder'=>$folder, 'pmids'=>$pmids)); } /** * 按照用户删除短消息 * * @param int $uid 用户Id * @param array $uids 要删除的消息用户ID数组 * @return * >0 成功 * <=0 失败 */ function uc_pm_deleteuser($uid, $touids) { return call_user_func(UC_API_FUNC, 'pm', 'deleteuser', array('uid'=>$uid, 'touids'=>$touids)); } /** * 标记已读/未读状态 * * @param int $uid 用户Id * @param array $uids 要标记已读状态的用户ID数组 * @param array $pmids 要标记已读状态的消息ID数组 * @param int $status 1 已读 0 未读 */ function uc_pm_readstatus($uid, $uids, $pmids = array(), $status = 0) { return call_user_func(UC_API_FUNC, 'pm', 'readstatus', array('uid'=>$uid, 'uids'=>$uids, 'pmids'=>$pmids, 'status'=>$status)); } /** * 获取短消息列表 * * @param int $uid 用户Id * @param int $page 当前页 * @param int $pagesize 每页最大条目数 * @param string $folder 打开的目录 newbox=未读消息,inbox=收件箱,outbox=发件箱 * @param string $filter 过滤方式 newpm=未读消息,systempm=系统消息,announcepm=公共消息 $folder $filter -------------------------- newbox inbox newpm systempm announcepm outbox newpm searchbox * * @param string $msglen 截取的消息文字长度 * @return array('count' => 消息总数, 'data' => 短消息数据) */ function uc_pm_list($uid, $page = 1, $pagesize = 10, $folder = 'inbox', $filter = 'newpm', $msglen = 0) { $uid = intval($uid); $page = intval($page); $pagesize = intval($pagesize); $return = call_user_func(UC_API_FUNC, 'pm', 'ls', array('uid'=>$uid, 'page'=>$page, 'pagesize'=>$pagesize, 'folder'=>$folder, 'filter'=>$filter, 'msglen'=>$msglen)); return UC_CONNECT == 'mysql' ? $return : uc_unserialize($return); } /** * 忽略未读消息提示 * * @param int $uid 用户Id */ function uc_pm_ignore($uid) { $uid = intval($uid); return call_user_func(UC_API_FUNC, 'pm', 'ignore', array('uid'=>$uid)); } /** * 获取短消息内容 * * @param int $uid 用户Id * @param int $pmid 消息Id * @param int $touid 消息对方用户Id * @param int $daterange 日期范围 1=今天,2=昨天,3=前天,4=上周,5=更早 * @return array() 短消息内容数组 */ function uc_pm_view($uid, $pmid, $touid = 0, $daterange = 1) { $uid = intval($uid); $touid = intval($touid); $pmid = @is_numeric($pmid) ? $pmid : 0; $return = call_user_func(UC_API_FUNC, 'pm', 'view', array('uid'=>$uid, 'pmid'=>$pmid, 'touid'=>$touid, 'daterange'=>$daterange)); return UC_CONNECT == 'mysql' ? $return : uc_unserialize($return); } /** * 获取单条短消息内容 * * @param int $uid 用户Id * @param int $pmid 消息Id * @param int $type 0 = 获取指定单条消息 1 = 获取指定用户发的最后单条消息 2 = 获取指定用户收的最后单条消息 * @return array() 短消息内容数组 */ function uc_pm_viewnode($uid, $type = 0, $pmid = 0) { $uid = intval($uid); $pmid = @is_numeric($pmid) ? $pmid : 0; $return = call_user_func(UC_API_FUNC, 'pm', 'viewnode', array('uid'=>$uid, 'pmid'=>$pmid, 'type'=>$type)); return UC_CONNECT == 'mysql' ? $return : uc_unserialize($return); } /** * 获取黑名单 * * @param int $uid 用户Id * @return string 黑名单内容 */ function uc_pm_blackls_get($uid) { $uid = intval($uid); return call_user_func(UC_API_FUNC, 'pm', 'blackls_get', array('uid'=>$uid)); } /** * 设置黑名单 * * @param int $uid 用户Id * @param int $blackls 黑名单内容 */ function uc_pm_blackls_set($uid, $blackls) { $uid = intval($uid); return call_user_func(UC_API_FUNC, 'pm', 'blackls_set', array('uid'=>$uid, 'blackls'=>$blackls)); } /** * 添加黑名单项目 * * @param int $uid 用户Id * @param int $username 用户名 */ function uc_pm_blackls_add($uid, $username) { $uid = intval($uid); return call_user_func(UC_API_FUNC, 'pm', 'blackls_add', array('uid'=>$uid, 'username'=>$username)); } /** * 删除黑名单项目 * * @param int $uid 用户Id * @param int $username 用户名 */ function uc_pm_blackls_delete($uid, $username) { $uid = intval($uid); return call_user_func(UC_API_FUNC, 'pm', 'blackls_delete', array('uid'=>$uid, 'username'=>$username)); } /** * 获取域名解析表 * * @return array() */ function uc_domain_ls() { $return = call_user_func(UC_API_FUNC, 'domain', 'ls', array('1'=>1)); return UC_CONNECT == 'mysql' ? $return : uc_unserialize($return); } /** * 积分兑换请求 * * @param int $uid 用户ID * @param int $from 原积分 * @param int $to 目标积分 * @param int $toappid 目标应用ID * @param int $amount 积分数额 * @return * 1 : 成功 * 0 : 失败 */ function uc_credit_exchange_request($uid, $from, $to, $toappid, $amount) { $uid = intval($uid); $from = intval($from); $toappid = intval($toappid); $to = intval($to); $amount = intval($amount); return uc_api_post('credit', 'request', array('uid'=>$uid, 'from'=>$from, 'to'=>$to, 'toappid'=>$toappid, 'amount'=>$amount)); } /** * 返回指定的相关TAG数据 * * @param string $tagname TAG名称 * @param int $totalnum 返回数据的条目数 * @return array() 序列化过的数组,数组内容为当前或其他应用的相关TAG数据 */ function uc_tag_get($tagname, $nums = 0) { $return = call_user_func(UC_API_FUNC, 'tag', 'gettag', array('tagname'=>$tagname, 'nums'=>$nums)); return UC_CONNECT == 'mysql' ? $return : uc_unserialize($return); } /** * 修改头像 * * @param int $uid 用户ID * @param string $type 头像类型 real OR virtual 默认为 virtual * @return string */ function uc_avatar($uid, $type = 'virtual', $returnhtml = 1) { $uid = intval($uid); $uc_input = uc_api_input("uid=$uid"); $uc_avatarflash = UC_API.'/images/camera.swf?inajax=1&appid='.UC_APPID.'&input='.$uc_input.'&agent='.md5($_SERVER['HTTP_USER_AGENT']).'&ucapi='.urlencode(UC_API).'&avatartype='.$type; if($returnhtml) { return ''; } else { return array( 'width', '447', 'height', '477', 'scale', 'exactfit', 'src', $uc_avatarflash, 'id', 'mycamera', 'name', 'mycamera', 'quality','high', 'bgcolor','#ffffff', 'wmode','transparent', 'menu', 'false', 'swLiveConnect', 'true', 'allowScriptAccess', 'always' ); } } /** * 邮件队列 * * @param string $uids 用户名id,多个用逗号(,)隔开 * @param string $emails 邮件地址,多个用逗号隔开 * @param string $subject 邮件标题 * @param string $message 邮件内容 * @param string $charset 邮件字符集,可选参数,默认为gbk * @param boolean $htmlon 是否按html格式发送邮件,可选参数,默认为否 * @param integer $level 邮件级别,可选参数,取值0-127,默认为1,越大发送的优先级越高,为0时不入库,直接发送,会影响当前进程速度,慎用 * @return integer * =0 : 失败 * >0 : 成功,返回插入记录的id,如果是多条则返回最后一条记录的id,若level等于0,则返回1 */ function uc_mail_queue($uids, $emails, $subject, $message, $frommail = '', $charset = 'gbk', $htmlon = FALSE, $level = 1) { return call_user_func(UC_API_FUNC, 'mail', 'add', array('uids' => $uids, 'emails' => $emails, 'subject' => $subject, 'message' => $message, 'frommail' => $frommail, 'charset' => $charset, 'htmlon' => $htmlon, 'level' => $level)); } /** * 检测是否存在指定头像 * @param integer $uid 用户id * @param string $size 头像尺寸,取值范围(big,middle,small),默认为 middle * @param string $type 头像类型,取值范围(virtual,real),默认为virtual * @return boolean * true : 头像存在 * false: 头像不存在 */ function uc_check_avatar($uid, $size = 'middle', $type = 'virtual') { $url = UC_API."/avatar.php?uid=$uid&size=$size&type=$type&check_file_exists=1"; $res = uc_fopen2($url, 500000, '', '', TRUE, UC_IP, 20); if($res == 1) { return 1; } else { return 0; } } /** * 检测uc_server的数据库版本和程序版本 * @return mixd * array('db' => 'xxx', 'file' => 'xxx'); * null 无法调用到接口 * string 文件版本低于1.5 */ function uc_check_version() { $return = uc_api_post('version', 'check', array()); $data = uc_unserialize($return); return is_array($data) ? $data : $return; } ?> |