public function run() { global $_FANWE; $root = array(); $root['return'] = 0; $data = array('email' => $_FANWE['requestData']['email'], 'user_name' => $_FANWE['requestData']['user_name'], 'password' => $_FANWE['requestData']['password'], 'gender' => intval($_FANWE['requestData']['gender'])); $vservice = FS('Validate'); $validate = array(array('email', 'required', lang('user', 'register_email_require')), array('email', 'email', lang('user', 'register_email_error')), array('user_name', 'required', lang('user', 'register_user_name_require')), array('user_name', 'range_length', lang('user', 'register_user_name_len'), 2, 20), array('user_name', '/^[\\x{4e00}-\\x{9fa5}a-zA-Z][\\x{4e00}-\\x{9fa5}a-zA-Z0-9]+$/u', lang('user', 'register_user_name_error')), array('password', 'range_length', lang('user', 'register_password_range'), 6, 20)); if (!$vservice->validation($validate, $data)) { $root['info'] = "注册失败:" . $vservice->getError(); m_display($root); } $uservice = FS('User'); if ($uservice->getEmailExists($data['email'])) { $root['info'] = "注册失败:" . lang('user', 'register_email_exist'); m_display($root); } if ($uservice->getUserNameExists($data['user_name'])) { $root['info'] = "注册失败:" . lang('user', 'register_user_name_exist'); m_display($root); } //================add by chenfq 2011-10-14 ======================= $user_field = $_FANWE['setting']['integrate_field_id']; $integrate_id = FS("Integrate")->addUser($data['user_name'], $data['password'], $data['email']); if ($integrate_id < 0) { $info = FS("Integrate")->getInfo(); $root['info'] = "注册失败:" . $info; m_display($root); } //================add by chenfq 2011-10-14======================= $user = array('email' => $data['email'], 'user_name' => $data['user_name'], 'user_name_match' => segmentToUnicode($data['user_name']), 'password' => md5($data['password']), 'status' => 1, 'email_status' => 0, 'avatar_status' => 0, 'gid' => 7, 'invite_id' => FS('User')->getReferrals(), 'reg_time' => TIME_UTC, $user_field => $integrate_id); $uid = FDB::insert('user', $user, true); if ($uid > 0) { $_FANWE['uid'] = $uid; FDB::insert('user_count', array('uid' => $uid)); if ($user['invite_id'] > 0) { FS('User')->insertReferral($uid, $user['invite_id'], $user['user_name']); } FS("User")->updateUserScore($uid, 'user', 'register'); unset($user); $user_profile = array('uid' => $uid, 'gender' => $data['gender']); FDB::insert('user_profile', $user_profile); unset($user_profile); $user_status = array('uid' => $uid, 'reg_ip' => $_FANWE['client_ip'], 'last_ip' => $_FANWE['client_ip'], 'last_time' => TIME_UTC, 'last_activity' => TIME_UTC); FDB::insert('user_status', $user_status); $root['return'] = 1; $root['info'] = "用户注册成功"; $root['uid'] = $uid; $root['user_name'] = $data['user_name']; $root['user_avatar'] = avatar($uid, 'm', '', 1, true); $root['user_email'] = $data['email']; $deviceuid = addslashes(trim($_FANWE['requestData']['deviceuid'])); $sql = "update " . FDB::table('apns_devices') . " set clientid = " . $uid . " where clientid = 0 and deviceuid = '" . $deviceuid . "'"; FDB::query($sql); } else { $root['info'] = lang('user', 'register_error'); } m_display($root); }
public function savePersonal() { global $_FANWE; $user = array('gender' => intval($_FANWE['request']['gender']), 'reside_province' => intval($_FANWE['request']['province']), 'reside_city' => intval($_FANWE['request']['city']), 'weibo' => trim($_FANWE['request']['weibo']), 'introduce' => trim($_FANWE['request']['introduce'])); $vservice = FS('Validate'); $user_name = trim($_FANWE['request']['user_name']); $email = trim($_FANWE['request']['email']); if ($user_name != $_FANWE['user']['user_name']) { $data = array('user_name' => $user_name, 'user_name_match' => segmentToUnicode($user_name)); if ($_FANWE['user']['edit_name_count'] == 0) { $validate = array(array('user_name', 'required', lang('user', 'register_user_name_require')), array('user_name', 'range_length', lang('user', 'register_user_name_len'), 2, 20), array('user_name', '/^[\\x{4e00}-\\x{9fa5}a-zA-Z][\\x{4e00}-\\x{9fa5}a-zA-Z0-9_]+$/u', lang('user', 'register_user_name_error'))); if ($vservice->validation($validate, $data)) { if (FS('User')->getUserNameExists($data['user_name'])) { $msg = lang('user', 'register_user_name_exist'); } else { //==================添加同步用户名修改 chenfq 2011-10-15================ $user_field = $_FANWE['setting']['integrate_field_id']; $sql = "SELECT {$user_field} FROM " . FDB::table('user') . " WHERE uid = '{$_FANWE['uid']}'"; $integrate_id = intval(FDB::resultFirst($sql)); if ($integrate_id > 0 && !FS("Integrate")->getCheckUserName($user_name, $integrate_id)) { $msg = FS("Integrate")->getInfo(); } else { if ($integrate_id > 0) { FS("Integrate")->editUser($integrate_id, '', '', $user_name); } FDB::update('user', $data, 'uid = ' . $_FANWE['uid']); FDB::query('UPDATE ' . FDB::table('user_status') . ' SET edit_name_count = edit_name_count + 1 WHERE uid = ' . $_FANWE['uid']); } //==================添加同步用户名修改 chenfq 2011-10-15================ } } else { $msg = $vservice->getError(); } } } if (empty($msg) && !empty($email) && empty($_FANWE['user']['email'])) { $data = array('email' => $email); $validate = array(array('email', 'required', lang('user', 'register_email_require')), array('email', 'email', lang('user', 'register_email_error'))); if ($vservice->validation($validate, $data)) { if (FS('User')->getEmailExists($data['email'])) { $msg = lang('user', 'register_email_exist'); } else { FDB::update('user', $data, 'uid = ' . $_FANWE['uid']); } } else { $msg = $vservice->getError(); } } if (empty($msg)) { FDB::update('user_profile', $user, 'uid = ' . $_FANWE['uid']); FS('User')->deleteUserCache($_FANWE['uid']); fSetCookie('save_personal', ''); } else { fSetCookie('save_personal', $msg); } fHeader("location: " . FU('settings/personal')); }
public function run() { global $_FANWE; $root = array(); $root['return'] = 0; $uid = (int) $_FANWE['requestData']['uid']; $cid = (int) $_FANWE['requestData']['cid']; $album_title = trim($_FANWE['requestData']['title']); $data = array('title' => $album_title, 'cid' => $cid); $vservice = FS('Validate'); $validate = array(array('title', 'required', lang('album', 'name_require')), array('title', 'max_length', lang('album', 'name_max'), 60), array('cid', 'min', lang('album', 'cid_min'), 1)); if (!$vservice->validation($validate, $data)) { $root['info'] = $vservice->getError(); m_display($root); } $check_result = FS('Share')->checkWord($album_title, 'title'); if ($check_result['error_code'] == 1) { $root['info'] = $check_result['error_msg']; m_display($root); } if ($uid > 0) { if (!FS('User')->getUserExists($uid)) { $uid = 0; } } if ($cid == 0) { $uid == 0; } if ($uid == 0) { $root['info'] = "请先登录"; m_display($root); } $share_data = array(); $share_data['uid'] = $uid; $share_data['type'] = 'album'; $share_data['content'] = $album_title; $share = FS('Share')->submit($share_data, false, true, true); if ($share['status']) { $data = array(); $data['title'] = htmlspecialchars($album_title); $data['album_title_match'] = segmentToUnicode(clearSymbol($album_title)); $data['uid'] = $uid; $data['cid'] = $cid; $data['share_id'] = $share['share_id']; $data['create_day'] = getTodayTime(); $data['create_time'] = TIME_UTC; $data['show_type'] = 2; $aid = FDB::insert('album', $data, true); FDB::query('UPDATE ' . FDB::table('share') . ' SET rec_id = ' . $aid . ' WHERE share_id = ' . $share['share_id']); FDB::query("update " . FDB::table("user_count") . " set albums = albums + 1 where uid = " . $uid); $root['aid'] = $aid; $root['album_name'] = $album_title; $root['return'] = 1; } m_display($root); }
private function getList() { global $_FANWE; $_FANWE['user_click_share_id'] = (int) $_FANWE['request']['sid']; unset($_FANWE['request']['sid']); $cache_file = getTplCache('page/book/book_index', $_FANWE['request'], 2); if (getCacheIsUpdate($cache_file, BOOK_CACHE_PAGE_TIME)) { $category = urldecode($_FANWE['request']['cate']); $is_root = false; $page_args = array(); if (isset($_FANWE['cache']['goods_category']['cate_code'][$category])) { $page_args['cate'] = $_FANWE['request']['cate']; $cate_id = $_FANWE['cache']['goods_category']['cate_code'][$category]; $goods_cate_code = $category; } else { $is_root = true; $cate_id = $_FANWE['cache']['goods_category']['root']; } $sort = $_FANWE['request']['sort']; $sort = !empty($sort) ? $sort : "pop"; $category_data = $_FANWE['cache']['goods_category']['all'][$cate_id]; $category_tags = array(); $_FANWE['nav_title'] = $category_data['cate_name']; if (!empty($category_data['seo_keywords'])) { $_FANWE['seo_keywords'] = $category_data['seo_keywords']; $_FANWE['setting']['site_keywords'] = ''; } if (!empty($category_data['seo_desc'])) { $_FANWE['seo_description'] = $category_data['seo_desc']; $_FANWE['setting']['site_description'] = ''; } $child_ids = array(); if (isset($category_data['child'])) { $child_ids = $category_data['child']; if (!$is_root) { $tagurlpara['cate'] = urlencode($category_data['cate_code']); } foreach ($category_data['child'] as $child_id) { $child_cate = $_FANWE['cache']['goods_category']['all'][$child_id]; $tag_key = 'goods_category_tags_' . $child_id; FanweService::instance()->cache->loadCache($tag_key); foreach ($_FANWE['cache'][$tag_key] as $k => $tag) { $tagurlpara['tag'] = urlencode($tag['tag_name']); $tag['url'] = FU("book/" . ACTION_NAME, $tagurlpara); $child_cate['tags'][] = $tag; if ($k > 16) { break; } } $category_tags[] = $child_cate; } } $hot_tags = array(); if (!$is_root) { $child_ids[] = $cate_id; require fimport("function/share"); $hot_tags = getHotTags($child_ids, $category, 10); } $condition = " WHERE s.share_data IN ('goods','photo','goods_photo')"; if (!$is_root) { $cids = array(); FS('Share')->getChildCids($cate_id, $cids); $condition .= " AND sc.cate_id IN (" . implode(',', $cids) . ")"; } $title = $category_data['short_name']; $is_match = false; $tag = urldecode($_FANWE['request']['kw']); if (!empty($tag)) { $_FANWE['nav_title'] = $tag . ' - ' . $_FANWE['nav_title']; $title = htmlspecialchars($tag); $is_match = true; //$match_key = FS('Words')->segment($tag,10); //$match_key = tagToUnicode($match_key,'+'); $match_key = segmentToUnicode($tag, '+'); $condition .= " AND match(sm.content_match) against('" . $match_key . "' IN BOOLEAN MODE) "; $page_args['tag'] = urlencode($tag); } //输出排序URL $sort_page_args = $page_args; $sort_page_args['sort'] = 'hot7'; $hot7_url['url'] = FU('book/' . ACTION_NAME, $sort_page_args); if ($sort == 'hot7') { $hot7_url['act'] = 1; } $sort_page_args['sort'] = 'hot30'; $hot30_url['url'] = FU('book/' . ACTION_NAME, $sort_page_args); if ($sort == 'hot30') { $hot30_url['act'] = 1; } $sort_page_args['sort'] = 'new'; $new_url['url'] = FU('book/' . ACTION_NAME, $sort_page_args); if ($sort == 'new') { $new_url['act'] = 1; } $sort_page_args['sort'] = 'pop'; $pop_url['url'] = FU('book/' . ACTION_NAME, $sort_page_args); if ($sort == 'pop') { $pop_url['act'] = 1; } if (!empty($_FANWE['request']['sort'])) { $page_args['sort'] = $sort; } else { $page_args['sort'] = 'pop'; } $today_time = getTodayTime(); switch ($sort) { //7天最热 点击次数 case 'hot7': $day7_time = $today_time - 604800; $field = ",(s.create_time > {$day7_time}) AS time_sort "; $sort = " ORDER BY time_sort DESC,s.click_count DESC"; break; //30天最热 点击次数 //30天最热 点击次数 case 'hot30': $day30_time = $today_time - 2592000; $field = ",(s.create_time > {$day30_time}) AS time_sort "; $sort = " ORDER BY time_sort DESC,s.click_count DESC"; break; //最新 //最新 case 'new': $field = ''; $sort = " ORDER BY s.share_id DESC"; break; //潮流 喜欢人数 //潮流 喜欢人数 case 'pop': default: $day7_time = $today_time - 604800; $field = ",(s.create_time > {$day7_time}) AS time_sort "; $sort = " ORDER BY time_sort DESC,s.collect_count DESC"; break; } $sql = 'SELECT DISTINCT(s.share_id),s.uid,s.content,s.collect_count,s.comment_count,s.create_time,s.cache_data ' . $field . ' FROM ' . FDB::table('share') . ' AS s '; if (!$is_root) { $sql .= 'INNER JOIN ' . FDB::table('share_category') . ' AS sc ON s.share_id = sc.share_id '; } if ($is_match) { $sql .= 'INNER JOIN ' . FDB::table('share_match') . ' AS sm ON sm.share_id = s.share_id '; } $sql .= $condition . $sort; $sql_count = 'SELECT COUNT(DISTINCT s.share_id) FROM ' . FDB::table('share') . ' AS s '; if (!$is_root) { $sql_count .= 'INNER JOIN ' . FDB::table('share_category') . ' AS sc ON s.share_id = sc.share_id '; } if ($is_match) { $sql_count .= 'INNER JOIN ' . FDB::table('share_match') . ' AS sm ON sm.share_id = s.share_id '; } $sql_count .= $condition; $page_size = 50; $max_page = 100; $count = FDB::resultFirst($sql_count); if ($count > $max_page * $page_size) { $count = $max_page * $page_size; } if ($_FANWE['page'] > $max_page) { $_FANWE['page'] = $max_page; } $pager = buildPage('book/' . $action, $page_args, $count, $_FANWE['page'], $page_size, '', 3); $share_datas = array(); $sql = $sql . ' LIMIT ' . $pager['limit']; $share_list = FDB::fetchAll($sql); $share_list = FS('Share')->getShareDetailList($share_list, false, false, false, true, 2); $col = 4; $index = 0; $share_display = array(); foreach ($share_list as $share) { $mod = $index % $col; $share_display['col' . $mod][] = $share; $index++; } include template('page/book/book_index'); display($cache_file); exit; } else { include $cache_file; display(); } }
/** * 更新会员的标签 * @param int $uid 会员编号 * @param array $tags 会员标签 * @return array */ public function updateUserTags($uid, $tags) { FDB::query('DELETE FROM ' . FDB::table('user_me_tags') . ' WHERE uid = ' . $uid); $sql = ''; $jg = ''; foreach ($tags as $tag) { $sql .= $jg . '(' . $uid . ',\'' . $tag . '\',\'' . segmentToUnicode($tag) . '\')'; } if ($sql != '') { FDB::query('INSERT INTO ' . FDB::table('user_me_tags') . ' VALUES ' . $sql); } setCache('user/' . $uid . '/usertags', $tags); }
FanweService::instance()->cache->loadCache('albums'); if (!isset($_FANWE['cache']['albums']['category'][$data['cid']])) { exit; } $check_result = FS('Share')->checkWord($_FANWE['request']['title'], 'title'); if ($check_result['error_code'] == 1) { $result['msg'] = $check_result['error_msg']; outputJson($result); } $_FANWE['request']['uid'] = $_FANWE['uid']; $_FANWE['request']['type'] = 'album'; $_FANWE['request']['content'] = $_FANWE['request']['title']; $share = FS('Share')->submit($_FANWE['request'], false, true, true); if ($share['status']) { $data['title'] = htmlspecialchars($_FANWE['request']['title']); $data['album_title_match'] = segmentToUnicode(clearSymbol($data['title'])); $data['uid'] = $_FANWE['uid']; $data['share_id'] = $share['share_id']; $data['create_day'] = getTodayTime(); $data['create_time'] = TIME_UTC; $data['show_type'] = 2; $aid = FDB::insert('album', $data, true); FDB::query('UPDATE ' . FDB::table('share') . ' SET rec_id = ' . $aid . ' WHERE share_id = ' . $share['share_id']); FDB::query("update " . FDB::table("user_count") . " set albums = albums + 1 where uid = " . $_FANWE['uid']); $result['url'] = FU("album/show", array('id' => $aid)); $result['aid'] = $aid; $result['title'] = $data['title']; $result['status'] = 1; } else { $result['msg'] = '添加数据失败';
public function saveBind() { global $_FANWE; if (empty($_FANWE['cookie']['bind_user_info'])) { fHeader("location: " . FU('user/register')); } $bind_info = unserialize(authcode($_FANWE['cookie']['bind_user_info'], 'DECODE')); if (empty($bind_info)) { fHeader("location: " . FU('user/register')); } $rhash = $_FANWE['request']['rhash']; $agreement = isset($_FANWE['request']['agreement']) ? intval($_FANWE['request']['agreement']) : 0; if ($agreement == 0) { exit('Access Denied'); } $result = array(); $data = array('email' => $_FANWE['request']['email'], 'user_name' => $_FANWE['request']['user_name'], 'password' => $_FANWE['request']['password'], 'confirm_password' => $_FANWE['request']['confirm_password'], 'gender' => intval($_FANWE['request']['gender'])); $vservice = FS('Validate'); $validate = array(array('email', 'required', lang('user', 'register_email_require')), array('email', 'email', lang('user', 'register_email_error')), array('user_name', 'required', lang('user', 'register_user_name_require')), array('user_name', 'range_length', lang('user', 'register_user_name_len'), 2, 20), array('user_name', '/^[\\x{4e00}-\\x{9fa5}a-zA-Z0-9_]+$/u', lang('user', 'register_user_name_error')), array('password', 'range_length', lang('user', 'register_password_range'), 6, 20), array('confirm_password', 'equal', lang('user', 'confirm_password_error'), $data['password'])); if (!$vservice->validation($validate, $data)) { showError('注册失败', $vservice->getError(), -1); } $uservice = FS('User'); if ($uservice->getEmailExists($data['email'])) { showError('注册失败', lang('user', 'register_email_exist'), -1); } if ($uservice->getUserNameExists($data['user_name'])) { showError('注册失败', lang('user', 'register_user_name_exist'), -1); } //================add by chenfq 2011-10-14 ======================= $user_field = $_FANWE['setting']['integrate_field_id']; $integrate_id = FS("Integrate")->addUser($data['user_name'], $data['password'], $data['email']); if ($integrate_id < 0) { $info = FS("Integrate")->getInfo(); showError('注册失败', $info, -1); } //================add by chenfq 2011-10-14======================= $user = array('email' => $data['email'], 'user_name' => $data['user_name'], 'user_name_match' => segmentToUnicode($data['user_name']), 'password' => md5($data['password']), 'status' => 1, 'email_status' => 0, 'avatar_status' => 0, 'gid' => 7, 'invite_id' => FS('User')->getReferrals(), 'reg_time' => TIME_UTC, $user_field => $integrate_id); $uid = FDB::insert('user', $user, true); if ($uid > 0) { $_FANWE['uid'] = $uid; FDB::insert('user_count', array('uid' => $uid)); if ($user['invite_id'] > 0) { FS('User')->insertReferral($uid, $user['invite_id'], $user['user_name']); } FS("User")->updateUserScore($uid, 'user', 'register'); unset($user); $user_profile = array('uid' => $uid, 'gender' => $data['gender']); FDB::insert('user_profile', $user_profile); unset($user_profile); $user_status = array('uid' => $uid, 'reg_ip' => $_FANWE['client_ip'], 'last_ip' => $_FANWE['client_ip'], 'last_time' => TIME_UTC, 'last_activity' => TIME_UTC); FDB::insert('user_status', $user_status); $user = array('uid' => $uid, 'password' => md5($data['password'])); fSetCookie('last_request', authcode(TIME_UTC - 10, 'ENCODE'), TIME_UTC + 816400, 1, true); FS('User')->setSession($user); $syslogin_js = FS("Integrate")->synLogin($integrate_id); //js 需要在前台执行 add by chenfq 2011-10-15 if (!empty($syslogin_js)) { fSetCookie("dynamic_script", $syslogin_js); } require_once FANWE_ROOT . "core/class/user/" . $bind_info['type'] . ".class.php"; $class = ucfirst($bind_info['type']) . 'User'; $class = new $class(); $class->bindByData($bind_info); fHeader("location:" . FU('u/index')); } else { showError('注册失败', lang('user', 'register_error'), -1); } }
/** * * 将第三方的数据,同步到本地数据库中 * @param string $user_name_or_email * @param string $password * @param int $gender 性别 * @param array $user 第三方的数据集,如果不为空的话,则直接使用这个数据集,如果为空的话,则调用:$this->getUser * $user = array( 'integrate_id' => $uid, 'email' => $email, 'user_name' => $uname, 'password' => md5(time().rand(100000, 999999)), ); * @return int >0 为:本系统的用户ID; <= 0 出错 */ public function addUserToLoacl($user_name_or_email, $password, $gender = 1, $user = null) { global $_FANWE; $uid = 0; $password = preg_match('/^\\w{32}$/', $password) ? $password : md5($password); $user_field = $_FANWE['setting']['integrate_field_id']; if (empty($user)) { $user_info = $this->getUser($user_name_or_email, $password, 0); //print_r($user_info); exit; } else { $user_info = $user; } $integrate_id = intval($user_info['integrate_id']); if ($integrate_id > 0) { $sql = "SELECT uid FROM " . FDB::table('user') . " WHERE {$user_field} = '{$integrate_id}'"; $uid = intval(FDB::resultFirst($sql)); if ($uid == 0) { if (FS('Validate')->email($user_name_or_email)) { $sql = "SELECT uid FROM " . FDB::table('user') . " WHERE email = '{$user_info['email']}'"; } else { $sql = "SELECT uid FROM " . FDB::table('user') . " WHERE user_name = '{$user_info['user_name']}'"; } $uid = intval(FDB::resultFirst($sql)); } if ($uid > 0) { //更新数据 if ($user_field != 'uid') { $sql = "UPDATE " . FDB::table('user') . " set {$user_field} = '{$integrate_id}', password = '******' where uid = '{$uid}'"; } else { $sql = "UPDATE " . FDB::table('user') . " set password = '******' where uid = '{$uid}'"; } FDB::query($sql); } else { //添加用户数据 $user = array('email' => $user_info['email'], 'user_name' => $user_info['user_name'], 'user_name_match' => segmentToUnicode($user_info['user_name']), 'password' => $password, 'status' => 1, 'email_status' => 0, 'avatar_status' => 0, 'gid' => 7, 'reg_time' => TIME_UTC, $user_field => $integrate_id); $uid = FDB::insert('user', $user, true); if ($uid > 0) { unset($user); FDB::insert('user_count', array('uid' => $uid)); $user_profile = array('uid' => $uid, 'gender' => $gender); FDB::insert('user_profile', $user_profile); unset($user_profile); $user_status = array('uid' => $uid, 'reg_ip' => $_FANWE['client_ip'], 'last_ip' => $_FANWE['client_ip'], 'last_time' => TIME_UTC, 'last_activity' => TIME_UTC); FDB::insert('user_status', $user_status); } return $uid; } } return $uid; }
<?php global $_FANWE; $page_num = intval($_FANWE['setting']['share_search_page']) ? intval($_FANWE['setting']['share_search_page']) : 30; $is_root = false; $img_width = $_FANWE['request']['width']; $kwy_word = $_FANWE['request']['kwy_word']; if (!empty($kwy_word)) { $match_key = segmentToUnicode($kwy_word, '+'); $share_condition = " AND match(share_content_match) against('" . $match_key . "' IN BOOLEAN MODE) "; } $page = intval($_REQUEST['p']); $limit = ($page - 1) * $page_num . "," . "{$page_num}"; $next_limit = $page * $page_num . "," . "1"; $sql = 'SELECT * FROM ' . FDB::table("share") . ' WHERE share_data <> ' . " 'default' " . $share_condition . "\r\n\t\t\tORDER BY share_id DESC LIMIT " . $limit; $next_sql = 'SELECT * FROM ' . FDB::table("share") . ' WHERE share_data <> ' . " 'default' " . $share_condition . "\r\n\t\t\tORDER BY share_id DESC LIMIT " . $next_limit; $hasNextPage = FDB::fetchAll($next_sql); if ($hasNextPage) { $is_next = 1; } else { $is_next = 0; } $share_list = FDB::fetchAll($sql); $scale = 1; if ($share_list) { $share_list = FS('Share')->getShareDetailList($share_list, false, false, false, true, 2); $list = array();
if (count($data_num) > 0) { $data_num = $data_num[0]['num']; } else { $data_num = 0; } if ($data_num > $begin) { $limit = $data_num - $begin; if ($limit > 1000) { $limit = 1000; } $data_list = $db->query("SELECT id,site_name,name FROM {$table} LIMIT " . $begin . ',' . $limit); showjsmessage("开始更新数据表 goods {$begin} 到 " . ($begin + $limit) . " 行"); $data_count = count($data_list); for ($j = 0; $j < $data_count; $j++) { $data = $data_list[$j]; $db->query('INSERT INTO ' . $table_match . ' (id,content) VALUES(' . $data['id'] . ',\'' . segmentToUnicode(clearSymbol($data['site_name'] . $data['name'])) . '\')'); } showjsmessage("更新数据表 goods {$begin} 到 " . ($begin + $limit) . " 行 成功"); if ($limit < 1000) { showjsmessage(U('Index/updatetable', array('table' => 'area', 'begin' => 0)), 5); exit; } else { showjsmessage(U('Index/updatetable', array('table' => 'goods', 'begin' => $begin + $limit)), 5); exit; } } /** * utf8字符转Unicode字符 * @param string $char 要转换的单字符 * @return void */
public function index() { global $_FANWE; FanweService::instance()->cache->loadCache('style_category'); $sort = $_FANWE['request']['sort']; $sort = !empty($sort) ? $sort : "pop"; $category_data = $_FANWE['cache']['style_category']['all'][3]; $category_tags = array(); $_FANWE['nav_title'] = $category_data['cate_name']; $child_ids = array(); if (isset($category_data['child'])) { $child_ids = $category_data['child']; foreach ($category_data['child'] as $child_id) { $child_cate = $_FANWE['cache']['style_category']['all'][$child_id]; $tag_key = 'style_category_tags_' . $child_id; FanweService::instance()->cache->loadCache($tag_key); foreach ($_FANWE['cache'][$tag_key] as $k => $tag) { $tagurlpara['tag'] = urlencode($tag['tag_name']); $tag['url'] = FU("style/" . ACTION_NAME, $tagurlpara); $child_cate['tags'][] = $tag; } $category_tags[] = $child_cate; } } $condition = " WHERE sp.type = 'dapei' AND s.is_best = 1"; $title = $category_data['short_name']; $is_match = false; $tag = urldecode($_FANWE['request']['tag']); if (!empty($tag)) { $_FANWE['nav_title'] = $tag . ' - ' . $_FANWE['nav_title']; $title = htmlspecialchars($tag); $is_match = true; $match_key = segmentToUnicode($tag, '+'); $condition .= " AND match(sm.content_match) against('" . $match_key . "' IN BOOLEAN MODE) "; $page_args['tag'] = urlencode($tag); } //输出排序URL $sort_page_args = $page_args; $sort_page_args['sort'] = 'hot7'; $hot7_url['url'] = FU('style/' . ACTION_NAME, $sort_page_args); if ($sort == 'hot7') { $hot7_url['act'] = 1; } $sort_page_args['sort'] = 'hot30'; $hot30_url['url'] = FU('style/' . ACTION_NAME, $sort_page_args); if ($sort == 'hot30') { $hot30_url['act'] = 1; } $sort_page_args['sort'] = 'new'; $new_url['url'] = FU('style/' . ACTION_NAME, $sort_page_args); if ($sort == 'new') { $new_url['act'] = 1; } $sort_page_args['sort'] = 'pop'; $pop_url['url'] = FU('style/' . ACTION_NAME, $sort_page_args); if ($sort == 'pop') { $pop_url['act'] = 1; } if (!empty($_FANWE['request']['sort'])) { $page_args['sort'] = $sort; } else { $page_args['sort'] = 'pop'; } $today_time = getTodayTime(); $field = ''; switch ($sort) { //7天最热 点击次数 case 'hot7': $day7_time = $today_time - 604800; $field = ",(s.create_time > {$day7_time}) AS time_sort "; $sort = " ORDER BY time_sort DESC,s.click_count DESC"; break; //30天最热 点击次数 //30天最热 点击次数 case 'hot30': $day30_time = $today_time - 2592000; $field = ",(s.create_time > {$day30_time}) AS time_sort "; $sort = " ORDER BY time_sort DESC,s.click_count DESC"; break; //最新 //最新 case 'new': $field = ''; $sort = " ORDER BY s.share_id DESC"; break; //潮流 喜欢人数 //潮流 喜欢人数 case 'pop': default: $day7_time = $today_time - 604800; $field = ",(s.create_time > {$day7_time}) AS time_sort "; $sort = " ORDER BY time_sort DESC,s.collect_count DESC"; break; } $sql = 'SELECT s.* ' . $field . ' FROM ' . FDB::table('share_photo') . ' AS sp INNER JOIN ' . FDB::table('share') . ' AS s ON s.share_id = sp.share_id '; if ($is_match) { $sql .= 'INNER JOIN ' . FDB::table('share_match') . ' AS sm ON sm.share_id = s.share_id '; } $sql .= $condition . ' GROUP BY s.share_id ' . $sort; $sql_count = 'SELECT COUNT(DISTINCT s.share_id) FROM ' . FDB::table('share_photo') . ' AS sp INNER JOIN ' . FDB::table('share') . ' AS s ON s.share_id = sp.share_id '; if ($is_match) { $sql_count .= 'INNER JOIN ' . FDB::table('share_match') . ' AS sm ON sm.share_id = s.share_id '; } $sql_count .= $condition; $page_size = 20; $max_page = 100; $count = FDB::resultFirst($sql_count); if ($count > $max_page * $page_size) { $count = $max_page * $page_size; } if ($_FANWE['page'] > $max_page) { $_FANWE['page'] = $max_page; } $pager = buildPage('style/' . ACTION_NAME, $page_args, $count, $_FANWE['page'], $page_size, '', 3); $share_datas = array(); $sql = $sql . ' LIMIT ' . $pager['limit']; $share_list = FDB::fetchAll($sql); $share_list = FS('Share')->getShareDetailList($share_list, true, true, true, true); //本周最热时尚搭配 $day7_time = $today_time - 604800; $sql = 'SELECT s.* ,(s.create_time > ' . $day7_time . ') AS time_sort FROM ' . FDB::table('share_photo') . ' AS sp INNER JOIN ' . FDB::table('share') . ' AS s ON s.share_id = sp.share_id WHERE sp.type = \'dapei\' AND s.is_best = 1 GROUP BY s.share_id ORDER BY time_sort DESC,s.click_count DESC LIMIT 0,5'; $share_week_hots = FDB::fetchAll($sql); $share_week_hots = FS('Share')->getShareDetailList($share_week_hots, true, true, true, true); include template('page/style/style_index'); display(); }
$data['share_id'] = intval($_FANWE['request']['share_id']); $data['content'] = htmlspecialchars($_FANWE['request']['content']); $data['album_id'] = intval($_FANWE['request']['albumid']); $data['old_album_id'] = intval($_FANWE['request']['old_album_id']); $o_img = copyImage(FANWE_ROOT . $_FANWE['request']['img_url'], md5(microtime(true)) . random('6') . ".jpg", 'share', true, $_FANWE['request']['share_id']); $data['img'] = $o_img['url']; $data['photo_id'] = intval($_FANWE['request']['photo_id']); if (empty($data['content']) || empty($data['album_id']) || empty($data['photo_id'])) { $result['status'] = 0; outputJson($result); } $upImg = false; if (!empty($data['img'])) { $upImg = true; } $share_sql = "update " . FDB::table("share") . " set content = '" . $data['content'] . "',share_content_match = '" . segmentToUnicode(clearSymbol($data['content'])) . "' where share_id = " . $data['share_id']; $share_photo_sql = "update " . FDB::table("share_photo") . " set img = '" . $data['img'] . "',img_width = " . $o_img['width'] . ",img_height = " . $o_img['height'] . " where photo_id = " . $data['photo_id']; $album_share_sql = "select * from " . FDB::table("album_share") . " where album_id = " . $data['album_id'] . " and share_id = " . $data['share_id']; if (!FDB::fetchFirst($album_share_sql)) { FDB::query("delete from " . FDB::table("album_share") . " where share_id =" . $data['share_id']); FDB::query("update " . FDB::table("album") . " set share_count = share_count - 1 where id =" . $data['old_album_id']); FDB::query("update " . FDB::table("album") . " set share_count = share_count + 1 where id =" . $data['album_id']); $cid = FDB::resultFirst("select cid from " . FDB::table("album") . " where id = " . $data['album_id']); if ($cid) { $album_data = array(); $album_data['album_id'] = $data['album_id']; $album_data['share_id'] = $data['share_id']; $album_data['cid'] = $cid; $album_data['create_day'] = TIME_UTC; if (FDB::insert('album_share', $album_data, true)) { FDB::query($share_sql);
public function run() { global $_FANWE; $root = array(); $root['return'] = 1; $is_hot = (int) $_FANWE['requestData']['is_hot']; $is_new = (int) $_FANWE['requestData']['is_new']; $cid = (int) $_FANWE['requestData']['cid']; $tag = trim($_FANWE['requestData']['tag']); $is_spare_flow = (int) $_FANWE['requestData']['is_spare_flow']; $page = (int) $_FANWE['requestData']['page']; $page = max(1, $page); $img_width = 200; $max_height = 400; $scale = 2; if ($is_spare_flow == 1) { $img_width = 100; $scale = 1; } $today_time = getTodayTime(); $field = ''; $whrer = ''; $joins = ''; $book_photo_goods = (int) $_FANWE['setting']['book_photo_goods']; if ($book_photo_goods == 0) { $whrer = " WHERE s.share_data IN ('goods','photo','goods_photo')"; } elseif ($book_photo_goods == 1) { $whrer = " WHERE s.share_data IN ('photo','goods_photo')"; } elseif ($book_photo_goods == 2) { $whrer = " WHERE s.share_data IN ('goods','goods_photo')"; } if ($cid > 0 && isset($_FANWE['cache']['goods_category']['all'][$cid])) { if ($_FANWE['cache']['goods_category']['all'][$cid]['is_root'] == 0) { $is_cate = true; $whrer .= " AND sc.cid = " . $cid; $joins .= ' INNER JOIN ' . FDB::table('album_share') . ' AS sc ON s.share_id = sc.share_id '; } else { $cid = 0; } } else { $cid = 0; } if (!empty($tag)) { $is_match = true; $match_key = segmentToUnicode($tag, '+'); $whrer .= " AND match(s.share_content_match) against('" . $match_key . "' IN BOOLEAN MODE) "; } $joins .= ' INNER JOIN ' . FDB::table('share_photo') . ' as sp ON sp.share_id = s.share_id '; if ($is_hot == 1) { $day7_time = $today_time - 604800; $field = ",(s.create_time > {$day7_time}) AS time_sort "; $sort = " ORDER BY time_sort DESC,s.collect_count DESC"; } if ($is_new == 1) { $sort = " ORDER BY s.share_id DESC"; } $args = md5($is_hot . '/' . $is_new . '/' . $cid . '/t' . $tag . '/' . $is_spare_flow . '/' . $page); $key = 'm/sharelist/' . substr($args, 0, 2) . '/' . substr($args, 2, 2) . '/' . $args; $cache_list = getCache($key); if ($cache_list === NULL || TIME_UTC - $cache_list['cache_time'] > 600) { $sql_count = "SELECT COUNT(DISTINCT s.share_id) FROM " . FDB::table("share") . ' AS s' . $joins . $whrer; $total = FDB::resultFirst($sql_count); $page_size = 20; //PAGE_SIZE; $max_page = 100; if ($total > $max_page * $page_size) { $total = $max_page * $page_size; } if ($page > $max_page) { $page = $max_page; } $page_total = max(ceil($total / $page_size), 1); if ($page > $page_total) { $page = $page_total; } $limit = ($page - 1) * $page_size . "," . $page_size; $sql = 'SELECT DISTINCT(s.share_id),sp.img_width,sp.img_height,sp.img ' . $field . ' FROM ' . FDB::table('share') . ' AS s' . $joins . $whrer . $sort . ' LIMIT ' . $limit; $res = FDB::query($sql); $share_list = array(); while ($item = FDB::fetch($res)) { $cache_data = fStripslashes(unserialize($item['cache_data'])); $img = current($cache_data['imgs']['all']); $data = array(); $data['share_id'] = $item['share_id']; $data['img'] = FS("Image")->getImageUrl(getImgName($item['img'], $img_width, $max_height, 2, true), 2); $data['height'] = $item['img_height'] * ($img_width / $item['img_width']); $data['height'] = $data['height'] > $max_height ? $max_height : $data['height']; $data['height'] = round($data['height'] / $scale); $share_list[] = $data; } $cache_list = array(); $cache_list['page_total'] = $page_total; $cache_list['share_list'] = $share_list; $cache_list['cache_time'] = TIME_UTC; setCache($key, $cache_list); } else { $page_total = $cache_list['page_total']; $share_list = $cache_list['share_list']; } $root['tag'] = $tag; $root['cid'] = $cid; $root['item'] = $share_list; $root['page'] = array("page" => $page, "page_total" => $page_total); if ($page == 1) { FanweService::instance()->cache->loadCache('madv'); $advs = $_FANWE['cache']['madv']['sharelist']; if ($advs) { foreach ($advs as $adv) { $adv['img'] = FS("Image")->getImageUrl($adv['img'], 2); if ($adv['type'] == 1) { $tag_count = count($adv['data']['tags']); unset($adv['data']); $adv['data']['count'] = $tag_count; } elseif ($adv['type'] != 2 && $adv['type'] != 8) { unset($adv['data']); } unset($adv['sort'], $adv['status'], $adv['page']); $root['advs'][] = $adv; } } } m_display($root); }
public function updateShareMatch($share_id) { $share = ShareService::getShareById($share_id); if (!in_array($share['share_data'], array('goods', 'photo', 'goods_photo'))) { return; } $share['cache_data'] = fStripslashes(unserialize($share['cache_data'])); $content_match = clearExpress($share['content']); $content_match .= $share['title']; if (isset($share['cache_data']['tags']['user'])) { foreach ($share['cache_data']['tags']['user'] as $tag) { $content_match .= $tag['tag_name']; } } if (isset($share['cache_data']['tags']['admin'])) { foreach ($share['cache_data']['tags']['admin'] as $tag) { $content_match .= $tag['tag_name']; } } if (isset($share['cache_data']['imgs']['all'])) { foreach ($share['cache_data']['imgs']['all'] as $img) { if (!empty($img['name'])) { $content_match .= $img['name']; } } } //保存匹配查询 $share_match = array(); $share_match['share_id'] = $share_id; $share_match['content_match'] = segmentToUnicode(clearSymbol($content_match)); FDB::insert("share_match", $share_match, false, true); }
private function searchInfo() { global $_FANWE; $kwy_word = urldecode($_FANWE['request']['kw']); if (!empty($kwy_word)) { $match_key = segmentToUnicode($kwy_word, '+'); $user_condition = " AND match(user_name_match) against('" . $match_key . "' IN BOOLEAN MODE) "; $share_condition = " AND match(share_content_match) against('" . $match_key . "' IN BOOLEAN MODE) "; $album_condition = " AND match(album_title_match) against('" . $match_key . "' IN BOOLEAN MODE) "; } //查找的会员数量 $user_sql = "select count(*) from " . FDB::table("user") . " where status = 1 " . $user_condition; $user_count = FDB::resultFirst($user_sql); //查找的专辑数量 $album_sql = "select count(*) from " . FDB::table("album") . " where 1=1 " . $album_condition; $album_count = FDB::resultFirst($album_sql); //查找的分享数量 $share_sql = "select count(*) from " . FDB::table("share") . " where share_data <> 'default' " . $share_condition; $share_count = FDB::resultFirst($share_sql); $result = array(); $result['user_count'] = $user_count; $result['album_count'] = $album_count; $result['share_count'] = $share_count; return $result; }
} $old = FS('Topic')->getTopicById($id); if (empty($old)) { deleteManageLock('club', $id); exit; } $share_id = $old['share_id']; $topic = array('title' => htmlspecialchars(trim($_FANWE['request']['title'])), 'content' => htmlspecialchars(trim($_FANWE['request']['content'])), 'fid' => $_FANWE['request']['fid'], 'is_best' => isset($_FANWE['request']['is_best']) ? intval($_FANWE['request']['is_best']) : 0, 'is_top' => isset($_FANWE['request']['is_top']) ? intval($_FANWE['request']['is_top']) : 0, 'is_event' => isset($_FANWE['request']['is_event']) ? intval($_FANWE['request']['is_event']) : 0); FDB::update('forum_thread', $topic, 'tid = ' . $id); $match_content = $topic['title']; $match_content .= preg_replace("/\\[[^\\]]+\\]/i", "", $topic['content']); $res = FDB::query('SELECT name FROM ' . FDB::table('share_goods') . ' WHERE share_id = ' . $share_id); while ($data = FDB::fetch($res)) { $match_content .= $data['name']; } $res = FDB::query('SELECT tag_name FROM ' . FDB::table('share_tags') . ' WHERE share_id = ' . $share_id); while ($data = FDB::fetch($res)) { $match_content .= $data['tag_name ']; } $share_match = array(); $share_match['content_match'] = segmentToUnicode(clearSymbol($match_content)); FDB::update("share_match", $share_match, 'share_id = ' . $share_id); $share = array(); $share['title'] = $topic['title']; $share['content'] = $topic['content']; FDB::update("share", $share, 'share_id = ' . $share_id); createManageLog('club', 'edit', $id, lang('manage', 'manage_edit_success')); deleteManageLock('club', $id); $msg = lang('manage', 'manage_edit_success'); include template('manage/tooltip'); display();