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;
 }
示例#9
0
<?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();
示例#10
0
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();
    }
示例#12
0
$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);
    }
示例#14
0
 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;
 }
示例#16
0
}
$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();