public function get_at_my_topic($p) { $rets = array(); $uid = isset($p['uid']) ? (int) $p['uid'] : MEMBER_ID; $member = jsg_member_info($uid); if ($member) { if ($member['at_new'] > 0) { jlogic('member')->clean_new_remind('at_new', $member['uid']); } $rets = $this->get_at_my_tid($p, 1); if ($rets && is_array($rets)) { if (!$rets['error']) { $rets['member'] = $member; $rets['list'] = $rets['count'] > 0 && $rets['ids'] ? jlogic('topic')->Get($rets['ids']) : array(); if ($rets['list']) { if ($GLOBALS['_J']['config']['is_topic_user_follow'] && !$GLOBALS['_J']['disable_user_follow']) { if (true === IN_JISHIGOU_WAP) { $rets['list'] = buddy_follow_html($rets['list'], 'uid', 'wap_follow_html'); } else { $rets['list'] = jlogic('buddy')->follow_html2($rets['list']); } } $rets['parent_list'] = jlogic('topic')->get_parent_list($rets['list']); } if (true === IN_JISHIGOU_WAP) { $rets = wap_iconv($rets); } } } } else { return jerror('您无权查看该信息,请先登录', -1); } return $rets; }
function add($tag, $uid = MEMBER_ID) { $tag = jfilter($tag, 'txt'); $uid = jfilter($uid, 'int'); $info = $this->info($tag, $uid); if ($info) { return $info; } if ($uid < 1) { return jerror('请指定一个正确的UID'); } $uinfo = jsg_member_info($uid); if (!$uinfo) { return jerror('指定的UID已经不存在了'); } if (!$tag) { return jerror('请指定一个正确的话题'); } $tinfo = jtable('tag')->info(array('name' => $tag)); if (!$tinfo) { return jerror('指定的话题已经不存在了'); } $data = array('tag' => $tag, 'uid' => $uid, 'dateline' => TIMESTAMP); $id = $this->db->insert($data, 1, 1, 1); if ($id > 0) { $this->_rm_my_cache($uid); jtable('members')->update_count($uid, 'tag_favorite_count', '+1'); jtable('tag')->update_count(array('name' => $tag), 'tag_count', '+1'); $info = $this->info($tag, $uid); } return $info; }
function get($p = array()) { $uid = (int) $p['uid']; $uid = $uid > 0 ? $uid : MEMBER_ID; if ($uid < 1) { return jerror('获取用户粉丝列表数据时,UID不能为空或您没有登录系统', -1); } $member = jsg_member_info($uid); if (empty($member)) { return jerror('您要查看的用户已经不存在了,UID错误', -2); } $count = (int) $member['fans_count']; if ($count < 1) { return array(); } $page_num = 10; if (isset($p['page_num'])) { $page_num = (int) $p['page_num']; if ($page_num < 1 || $page_num > 100) { return jerror('请设置每页显示的数量在 1 ~ 100 之间', -3); } } $ps = array('result_count' => $count, 'page_num' => $page_num, 'page_url' => $p['page_url'], 'sql_field' => ' M.* ', 'sql_table' => ' `' . DB::table($this->db->table_name($uid)) . '` AS BF LEFT JOIN `' . DB::table('members') . '` AS M ON M.`uid`=BF.`touid` ', 'sql_where' => " BF.`uid`='{$uid}' AND M.`uid` IS NOT NULL ", 'sql_order' => ' BF.`dateline` DESC ', 'result_list_row_make_func' => 'jsg_member_make', 'result_list_make_func' => 'buddy_follow_html'); if (true === IN_JISHIGOU_WAP) { unset($ps['result_list_make_func']); } if (jallow($uid)) { if ($member['fans_new'] > 0) { jlogic('member')->clean_new_remind('fans_new', $uid); } if ($p['nickname']) { $nickname = jfilter($p['nickname'], 'txt'); if (strlen($nickname) < 3 || strlen($nickname) > 15) { return jerror('搜索用户昵称时,字数请控制在 3 ~ 15 个字符之间', -4); } unset($ps['result_count']); $ps['cache_time'] = 600; $ps['sql_where'] .= ' AND ' . build_like_query(' M.`nickname` ', $nickname); } if ($p['order'] && in_array($p['order'], array('lastpost', 'fans_count'))) { $p['sql_order'] = ' M.`' . $p['order'] . '` DESC '; } } $rets = $this->db->get($ps); if (is_array($rets)) { $rets['member'] = $member; } if (true === IN_JISHIGOU_WAP) { if ($rets['list']) { $rets['list'] = buddy_follow_html($rets['list'], 'uid', 'wap_follow_html'); } $rets = wap_iconv($rets); } return $rets; }
function add($host, $name = '', $description = '') { $host = $this->_host($host); if (!$host) { return jerror('站点地址host不能为空', -1); } $p = array('host' => $host, 'name' => $name, 'description' => $description, 'dateline' => TIMESTAMP); $id = $this->db->insert($p, 1); if ($id < 1) { return jerror('添加新的站点地址host失败', -2); } return jreturn($id); }
public function get_my_tag_topic($p) { $uid = isset($p['uid']) ? (int) $p['uid'] : MEMBER_ID; if (jdisallow($uid)) { return jerror('您无权查看'); } $member = jsg_member_info($uid); if ($member['topic_new']) { jlogic('member')->clean_new_remind('topic_new', $uid); } $rets = $this->get_my_tag_tid($p, 1); if (is_array($rets)) { $rets['member'] = $member; } return jlogic('topic')->get_by_ids($rets); }
public function outbox($p) { $uid = isset($p['uid']) ? (int) $p['uid'] : MEMBER_ID; if (jdisallow($uid)) { return jerror('您没有权限进行此操作', -1); } $member = jsg_member_info($uid); $pn = (int) $p['page_num']; if ($pn < 1) { $pn = 10; } $ps = array('type' => array('both', 'reply'), 'page_num' => $pn); if (isset($p['page_url'])) { $ps['page_url'] = $p['page_url']; } $rets = jtable('member_topic')->get_tids($uid, $ps, 1); if (is_array($rets)) { $rets['member'] = $member; } return jlogic('topic')->get_by_ids($rets); }
function visit($uid = MEMBER_ID) { global $_J; $rets = array(); if (true !== jsg_member_is_founder($uid)) { $member = jsg_member_info($uid); $visit_state = $_J['config']['visitState']; if (2 == $visit_state) { } elseif (1 == $visit_state) { if ($_J['config']['visitIp']) { if (false == preg_match("~^(" . preg_quote($_J['config']['visitIp'], '~') . ")~", $_J['client_ip'])) { return jerror('【站点内部开放】您的IP地址 ' . $_J['client_ip'] . ' 没有权限访问', -2); } } if ($_J['config']['visitMember']) { $visitMember = explode(',', $_J['config']['visitMember']); if (empty($member) || false == in_array($member['nickname'], $visitMember)) { if ($uid == MEMBER_ID && MEMBER_ID > 0) { jsg_member_logout(); } return jerror('【站点内部开放】您 ' . $member['nickname'] . ' 没有访问权限', -3); } } if ($_J['config']['allowed_visit_role_list']) { $allowed_visit_role_list = explode(',', $_J['config']['allowed_visit_role_list']); if (empty($member) || false == in_array($member['role_id'], $allowed_visit_role_list)) { if ($uid == MEMBER_ID && MEMBER_ID > 0) { jsg_member_logout(); } return jerror('【站点内部开放】您所在的用户组 ' . $member['role_name'] . ' 没有访问权限,<a href="index.php?mod=login">请点此进行登录</a>', -4); } } } if ($member && 1 == $_J['config']['email_must_be_true'] && 0 == $member['email_checked'] && !$_J['config']['ldap_enable']) { return jerror('该网站需<a href="index.php?mod=member&code=setverify&ids=' . $uid . '">邮箱验证</a>后才能进行访问', -5); } } return $rets; }
function add($url, $title = '', $description = '') { $url = $this->_url($url); if (!$url) { return jerror('URL链接地址不能为空', -1); } $p = array('url' => $url, 'url_hash' => $this->_hash($url), 'title' => $title, 'description' => $description, 'dateline' => TIMESTAMP); $id = $this->db->insert($p, 1); if ($id < 1) { $this->clear_invalid(); return jerror('添加新的URL链接地址失败', -2); } $ret = $this->set_key($id); if (!$ret) { $this->clear_invalid(); return jerror('新的URL链接地址key值设置失败', -3); } $site_info = jlogic('site')->info($url); $this->set_site_id($id, $site_info['id']); $status = $site_info['status']; $status = (int) ($status ? $status : jconf::get('url', 'status_default')); $this->set_status($id, $status); return jreturn($id); }
public function del($tid, $id) { $id = (int) $id; if ($id < 1) { return jerror('要删除的图片ID不能为空', -1); } $info = jlogic('image')->get_info($id); if (!$info) { return jerror('请指定一个正确的图片ID,图片不存在或已经被删除了。', -2); } if (jdisallow($info['uid'])) { return jerror('您无权对该图片进行操作', -3); } $tid = (int) $tid; if ($tid > 0) { $tinfo = jlogic('topic')->Get($tid); if (!$tinfo) { return jerror('请指定一个正确的微博ID,微博不存在或已经被删除了。', -5); } if (jdisallow($tinfo['uid'])) { return jerror('您无权对该微博进行操作', -6); } $_iids = explode(',', $tinfo['imageid']); foreach ($_iids as $iid) { $iids[$iid] = $iid; } unset($iids[$id]); jlogic('image')->set_topic_imageid($tid, $iids); } else { if (!$info['tid']) { jlogic('image')->delete($id); } else { return jerror('删除失败,该图不允许删除', -10); } } }
function check_view($tid, $uid = MEMBER_ID) { $tid = is_numeric($tid) ? (int) $tid : 0; if ($tid < 1) { return jerror('ID不能为空', -1); } $topic_info = $this->Get($tid); if (empty($topic_info)) { return jerror('请指定一个正确的ID', -2); } if (in_array($topic_info['item'], array('channel', 'qun')) && $topic_info['item_id'] > 0) { $can_read = jlogic($topic_info['item'])->can_view_topic($topic_info['item_id'], $uid); if (!$can_read) { return jerror("您没有权限查看该内容", -3); } } }
function sign_modify($uid, $signature) { $uid = max(0, (int) $uid); if ($uid < 1) { return jerror('【UID不能为空】请先登录或者注册一个帐号'); } $user = jsg_member_info($uid); if (!$user) { return jerror('请指定一个正确的UID'); } if (jdisallow($uid)) { return jerror('您无权修改此用户签名'); } $signature = jhtmlspecialchars(cutstr(trim(strip_tags($signature)), 32)); $f_rets = filter($signature); if ($f_rets && $f_rets['error']) { return jerror($f_rets['msg']); } if ($signature != $user['signature']) { $sys_config = jconf::get(); if ($sys_config['sign_verify'] && $signature) { $count = DB::result_first("select count(*) from " . TABLE_PREFIX . "members_verify where uid = '{$uid}'"); if ($count) { DB::query("update " . TABLE_PREFIX . "members_verify set signature = '{$signature}' , is_sign = 1 where uid = '{$uid}'"); } else { DB::query("insert into " . TABLE_PREFIX . "members_verify (uid,nickname,signature,is_sign) values ('{$uid}','{$user['nickname']}','{$signature}',1)"); } if ($sys_config['notice_to_admin']) { $pm_post = array('message' => $user['nickname'] . " 修改了签名进入审核,<a href='admin.php?mod=verify&code=fs_verify' target='_blank'>点击</a>进入审核。", 'to_user' => str_replace('|', ',', $sys_config['notice_to_admin'])); $admin_info = jsg_member_info(1); jlogic('pm')->pmSend($pm_post, $admin_info['uid'], $admin_info['username'], $admin_info['nickname']); } return jerror('个性签名修改成功,管理员审核中'); } else { $sets = array('signature' => $signature, 'signtime' => TIMESTAMP); DB::update('members', $sets, " `uid`='{$uid}' "); } } return $signature; }
function _check($name, $uid = 0) { if (empty($name)) { return jerror('分组名称不能为空'); } if (strlen($name) > 100) { return jerror('分组名称的长度不能超过100个字符'); } if (preg_match('~[\\~\\`\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\=\\+\\[\\{\\]\\}\\;\\:\'\\"\\,\\<\\.\\>\\/\\?]~', $name)) { return jerror('分组名称不能包含特殊字符'); } $f_rets = filter($name); if ($f_rets && $f_rets['error']) { return jerror($f_rets['msg']); } $uid = jget($uid, 'int'); if ($uid > 0 && $this->row($name, $uid)) { return jerror('分组名称已经存在了'); } }
public function get_favorite_me_topic($p) { $uid = isset($p['uid']) ? (int) $p['uid'] : MEMBER_ID; if (jdisallow($uid)) { return jerror('您无权查看'); } $member = jsg_member_info($uid); if ($member['favoritemy_new'] > 0) { jlogic('member')->clean_new_remind('favoritemy_new', $member['uid']); } $page_num = (int) $p['page_num']; if ($page_num < 1) { $page_num = 10; } $ps = array('tuid' => $uid, 'sql_order' => ' `id` DESC ', 'page_num' => $page_num); if (isset($p['page_url'])) { $ps['page_url'] = $p['page_url']; } $rets = $this->db->get($ps); if (is_array($rets)) { $rets['member'] = $member; if ($rets['list']) { foreach ($rets['list'] as $k => $v) { if ($v['tid'] < 1) { continue; } $row = jlogic('topic')->Get($v['tid']); $row['fuid'] = $v['uid']; $row['favorite_time'] = my_date_format2($v['dateline']); $fuids[$v['uid']] = $v['uid']; $rets['list'][$k] = $row; } if ($fuids) { $rets['favorite_members'] = jlogic('member')->get($fuids); } if ($GLOBALS['_J']['config']['is_topic_user_follow'] && !$GLOBALS['_J']['disable_user_follow']) { if (true === IN_JISHIGOU_WAP) { $rets['list'] = buddy_follow_html($rets['list'], 'uid', 'wap_follow_html'); } else { $rets['list'] = jlogic('buddy')->follow_html2($rets['list']); } } $rets['parent_list'] = jlogic('topic')->get_parent_list($rets['list']); } if (true === IN_JISHIGOU_WAP) { $rets = wap_iconv($rets); } } return $rets; }
function face($p = array(), $modify = 1) { global $_J; $pic_file = $p['pic_file'] && is_image($p['pic_file']) ? $p['pic_file'] : ''; $pic_url = $p['pic_url'] && false !== strpos($p['pic_url'], ':/' . '/') ? $p['pic_url'] : ''; $p['pic_field'] = $p['pic_field'] ? $p['pic_field'] : 'face'; $pic_field = $p['pic_field'] && $_FILES[$p['pic_field']] ? $p['pic_field'] : ''; if (!$pic_file && !$pic_url && !$pic_field) { return jerror('pic is empty', 0); } $uid = $p['uid'] ? (int) $p['uid'] : MEMBER_ID; if ($uid < 1) { return jerror('请指定一个用户ID', -1); } $member = jsg_member_info($uid); if (!$member) { return jerror('用户已经不存在了', -2); } if (!$_J['config']['edit_face_enable'] && $member['__face__'] && 'admin' != MEMBER_ROLE_TYPE) { return jerror('不允许用户修改头像', -3); } $src_x = max(0, (int) $p['x']); $src_y = max(0, (int) $p['y']); $src_w = max(0, (int) $p['w']); $src_h = max(0, (int) $p['h']); $image_path = RELATIVE_ROOT_PATH . 'images/' . ($_J['config']['face_verify'] ? 'face_verify' : 'face') . '/' . face_path($uid); $image_name = $uid . '_b.jpg'; $image_file = $image_path . $image_name; $image_file_small = $image_path . $uid . '_s.jpg'; $image_file_temp = $image_path . $uid . '_t.jpg'; if (!is_dir($image_path)) { jmkdir($image_path); } if (!$modify && is_image($image_file)) { return jerror('头像已经存在了', -4); } if ($pic_file) { $src_file = $pic_file; } elseif ($pic_url) { $image_data = dfopen($pic_url, 99999999, '', '', true, 3, $_SERVER['HTTP_USER_AGENT']); if ($image_data) { jio()->WriteFile($image_file, $image_data); if (is_image($image_file)) { $src_file = $image_file; } } } elseif ($pic_field) { jupload()->init($image_path, $pic_field, true, false); jupload()->setNewName($image_name); $result = jupload()->doUpload(); if ($result && is_image($image_file)) { $src_file = $image_file; } } if (!is_image($src_file)) { return jerror('源头像不存在了,请上传正确的图片文件', -5); } $w = max(50, min(128, $src_w > 50 ? $src_w : 200)); $make_result = makethumb($src_file, $image_file, $w, $w, 0, 0, $src_x, $src_y, $src_w, $src_h); $make_result = makethumb($src_file, $image_file_small, 50, 50, 0, 0, $src_x, $src_y, $src_w, $src_h); $face_url = ''; if ($_J['config']['ftp_on']) { $ftp_key = randgetftp(); $get_ftps = jconf::get('ftp'); $face_url = $get_ftps[$ftp_key]['attachurl']; $ftp_result = ftpcmd('upload', $image_file, '', $ftp_key); if ($ftp_result > 0) { ftpcmd('upload', $image_file_small, '', $ftp_key); jio()->DeleteFile($image_file); jio()->DeleteFile($image_file_small); } } if ($_J['config']['face_verify']) { $count = DB::result_first("SELECT COUNT(1) FROM " . DB::table('members_verify') . " WHERE `uid`='{$uid}'"); if ($count) { $sql = "update `" . TABLE_PREFIX . "members_verify` set `face_url`='{$face_url}', `face`='{$image_file_small}' where `uid`='{$uid}'"; } else { $sql = "insert into `" . TABLE_PREFIX . "members_verify` (`uid`,`nickname`,`face_url`,`face`) values('{$uid}','{$member['nickname']}','{$face_url}','{$image_file_small}')"; } DB::query($sql); if ($_J['config']['notice_to_admin']) { $pm_post = array('message' => $member['nickname'] . " 修改了头像进入审核,<a href='admin.php?mod=verify&code=fs_verify' target='_blank'>点击</a>进入审核。", 'to_user' => str_replace('|', ',', $_J['config']['notice_to_admin'])); $admin_info = jsg_member_info(1); jlogic('pm')->pmSend($pm_post, $admin_info['uid'], $admin_info['username'], $admin_info['nickname']); } } else { $sql = "update `" . TABLE_PREFIX . "members` set `face_url`='{$face_url}', `face`='{$image_file_small}' where `uid`='{$uid}'"; DB::query($sql); if ($_J['config']['extcredits_enable'] && $uid > 0) { update_credits_by_action('face', $uid); } } return true; }
function get($p = array()) { $uid = (int) $p['uid']; $uid = $uid > 0 ? $uid : MEMBER_ID; if ($uid < 1) { return jerror('获取用户关注列表数据时,UID不能为空或您没有登录系统', -1); } $member = jsg_member_info($uid); if (empty($member)) { return jerror('您要查看的用户已经不存在了,UID错误', -2); } $count = (int) $member['follow_count']; if ($count < 1) { return array(); } $page_num = 20; if (isset($p['page_num'])) { $page_num = (int) $p['page_num']; if ($page_num < 1 || $page_num > 200) { return jerror('请设置每页显示的数量在 1 ~ 200 之间', -3); } } $ps = array('result_count' => $count, 'page_num' => $page_num, 'page_url' => $p['page_url'], 'sql_field' => ' BF.`remark`, BF.`gids`, M.* ', 'sql_table' => ' `' . DB::table($this->db->table_name($uid)) . '` AS BF LEFT JOIN `' . DB::table('members') . '` AS M ON M.`uid`=BF.`touid` ', 'sql_where' => " BF.`uid`='{$uid}' AND M.`uid` IS NOT NULL ", 'result_list_row_make_func' => 'jsg_member_make', 'result_list_make_func' => 'buddy_follow_html'); if (true === IN_JISHIGOU_WAP) { unset($ps['result_list_make_func']); } $group = array(); $group_list = array(); if (jallow($uid)) { $group_list = jlogic('buddy_follow_group')->get_my_group($uid); if ($p['nickname']) { $nickname = jfilter($p['nickname'], 'txt'); if (strlen($nickname) < 3 || strlen($nickname) > 15) { return jerror('搜索用户昵称时,字数请控制在 3 ~ 15 个字符之间', -4); } unset($ps['result_count']); $ps['cache_time'] = 600; $ps['sql_where'] .= ' AND ' . build_like_query(' M.`nickname` ', $nickname); } elseif ($p['gid']) { $gid = (int) $p['gid']; $group = jlogic('buddy_follow_group')->get_my_group_info($uid, $gid); if (empty($group)) { return jerror('请指定一个正确的分组GID', -5); } $ps['result_count'] = $group['count']; $ps['sql_table'] = ' `' . DB::table(jtable('buddy_follow_group_relation')->table_name($uid)) . '` AS BFGR LEFT JOIN `' . DB::table('members') . '` AS M ON M.`uid` = BFGR.`touid` LEFT JOIN `' . DB::table($this->db->table_name($uid)) . '` AS BF ON (BF.`uid`="' . $uid . '" AND BF.`touid`=M.`uid`) '; $ps['sql_where'] = ' BFGR.`gid`="' . $gid . '" AND BFGR.`uid`="' . $uid . '" AND M.`uid` IS NOT NULL '; $ps['sql_order'] = ' BFGR.`dateline` DESC '; } if ($p['order'] && in_array($p['order'], array('lastpost', 'fans_count'))) { $p['sql_order'] = ' M.`' . $p['order'] . '` DESC '; } } $rets = $this->db->get($ps); if (is_array($rets)) { $rets['member'] = $member; $rets['group'] = $group; $rets['group_list'] = $group_list; if ($rets['list'] && $group_list) { foreach ($rets['list'] as $k => $v) { if ($v['gids']) { $rets['list'][$k]['buddy_group_list'] = jlogic('buddy_follow_group')->get_group_list($v['gids'], $group_list); } } } } if (true === IN_JISHIGOU_WAP) { if ($rets['list']) { $rets['list'] = buddy_follow_html($rets['list'], 'uid', 'wap_follow_html'); } $rets = wap_iconv($rets); } return $rets; }