public function send_action() { if (trim($_POST['message']) == '') { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('请输入私信内容'))); } if (!($recipient_user = $this->model('account')->get_user_info_by_username($_POST['recipient']))) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('接收私信的用户不存在'))); } if ($recipient_user['uid'] == $this->user_id) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('不能给自己发私信'))); } if ($recipient_user['inbox_recv']) { if (!$this->model('message')->check_permission($recipient_user['uid'], $this->user_id)) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('对方设置了只有 Ta 关注的人才能给 Ta 发送私信'))); } } // !注: 来路检测后面不能再放报错提示 if (!valid_post_hash($_POST['post_hash'])) { H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('页面停留时间过长,或内容已提交,请刷新页面'))); } $this->model('message')->send_message($this->user_id, $recipient_user['uid'], $_POST['message']); if ($_POST['return_url']) { $rsm = array('url' => get_js_url(strip_tags($_POST['return_url']))); } else { $rsm = array('url' => get_js_url('/inbox/')); } H::ajax_json_output(AWS_APP::RSM($rsm, 1, null)); }
function binding_callback_action() { $oauth = new Services_Weibo_WeiboOAuth(get_setting('sina_akey'), get_setting('sina_skey')); if ($_GET['uid'] and $this->user_info['permission']['is_administortar']) { $user_id = intval($_GET['uid']); $user_info = $this->model('account')->get_user_info_by_uid($user_id); if (empty($user_info)) { H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('本地用户不存在,无法绑定'))); } $sina_token = $oauth->getAccessToken('code', array('code' => $_GET['code'], 'redirect_uri' => get_js_url('/account/sina/binding_callback/uid-' . $user_id))); } else { $user_id = $this->user_id; AWS_APP::session()->sina_token = $oauth->getAccessToken('code', array('code' => $_GET['code'], 'redirect_uri' => get_js_url('/account/sina/binding_callback/'))); $sina_token = AWS_APP::session()->sina_token; $redirect = get_js_url('/account/setting/openid/'); } $client = new Services_Weibo_WeiboClient(get_setting('sina_akey'), get_setting('sina_skey'), $sina_token['access_token']); $uid_get = $client->get_uid(); $sina_profile = $client->show_user_by_id($uid_get['uid']); if ($sina_profile['error']) { H::redirect_msg(AWS_APP::lang()->_t('与微博通信出错, 错误代码: %s', $sina_profile['error']), "/account/setting/openid/"); } if (!$this->model('integral')->fetch_log($user_id, 'BIND_OPENID')) { $this->model('integral')->process($user_id, 'BIND_OPENID', round(get_setting('integral_system_config_profile') * 0.2), '绑定 OPEN ID'); } //$this->model('openid_weibo')->bind_account($sina_profile, get_js_url('/account/setting/openid/'), $user_id, $last_key['oauth_token'], $last_key['oauth_token_secret'], $sina_token); $this->model('openid_weibo')->bind_account($sina_profile, $redirect, $user_id, $sina_token); }
public function list_action() { if ($this->is_post()) { foreach ($_POST as $key => $val) { if ($key == 'start_date' or $key == 'end_date') { $val = base64_encode($val); } if ($key == 'keyword' or $key == 'user_name') { $val = rawurlencode($val); } $param[] = $key . '-' . $val; } H::ajax_json_output(AWS_APP::RSM(array('url' => get_js_url('/admin/article/list/' . implode('__', $param))), 1, null)); } $where = array(); if ($_GET['keyword']) { $where[] = "(`title` LIKE '%" . $this->model('article')->quote($_GET['keyword']) . "%')"; } if ($_GET['start_date']) { $where[] = 'add_time >= ' . strtotime(base64_decode($_GET['start_date'])); } if ($_GET['end_date']) { $where[] = 'add_time <= ' . strtotime('+1 day', strtotime(base64_decode($_GET['end_date']))); } if ($_GET['user_name']) { $user_info = $this->model('account')->get_user_info_by_username($_GET['user_name']); $where[] = 'uid = ' . intval($user_info['uid']); } if ($_GET['comment_count_min']) { $where[] = 'comments >= ' . intval($_GET['comment_count_min']); } if ($_GET['answer_count_max']) { $where[] = 'comments <= ' . intval($_GET['comment_count_max']); } if ($articles_list = $this->model('article')->fetch_page('article', implode(' AND ', $where), 'id DESC', $_GET['page'], $this->per_page)) { $search_articles_total = $this->model('article')->found_rows(); } if ($articles_list) { foreach ($articles_list as $key => $val) { $articles_list_uids[$val['uid']] = $val['uid']; } if ($articles_list_uids) { $articles_list_user_infos = $this->model('account')->get_user_info_by_uids($articles_list_uids); } foreach ($articles_list as $key => $val) { $articles_list[$key]['user_info'] = $articles_list_user_infos[$val['uid']]; } } $url_param = array(); foreach ($_GET as $key => $val) { if (!in_array($key, array('app', 'c', 'act', 'page'))) { $url_param[] = $key . '-' . $val; } } TPL::assign('pagination', AWS_APP::pagination()->initialize(array('base_url' => get_js_url('/admin/article/list/') . implode('__', $url_param), 'total_rows' => $search_articles_total, 'per_page' => $this->per_page))->create_links()); $this->crumb(AWS_APP::lang()->_t('文章管理'), 'admin/article/list/'); TPL::assign('articles_count', $search_articles_total); TPL::assign('list', $articles_list); TPL::output('admin/article/list'); }
public function index_action() { if ($_GET['tag']) { $this->crumb(AWS_APP::lang()->_t('标签') . ': ' . $_GET['tag'], '/favorite/tag-' . $_GET['tag']); } //边栏可能感兴趣的人或话题 if (TPL::is_output('block/sidebar_recommend_users_topics.tpl.htm', 'favorite/index')) { $recommend_users_topics = $this->model('module')->recommend_users_topics($this->user_id); TPL::assign('sidebar_recommend_users_topics', $recommend_users_topics); } if ($action_list = $this->model('favorite')->get_item_list($_GET['tag'], $this->user_id, calc_page_limit($_GET['page'], get_setting('contents_per_page')))) { foreach ($action_list as $key => $val) { $item_ids[] = $val['item_id']; } TPL::assign('list', $action_list); } else { if (!$_GET['page'] or $_GET['page'] == 1) { $this->model('favorite')->remove_favorite_tag(null, null, $_GET['tag'], $this->user_id); } } if ($item_ids) { $favorite_items_tags = $this->model('favorite')->get_favorite_items_tags_by_item_id($this->user_id, $item_ids); TPL::assign('favorite_items_tags', $favorite_items_tags); } TPL::assign('favorite_tags', $this->model('favorite')->get_favorite_tags($this->user_id)); TPL::assign('pagination', AWS_APP::pagination()->initialize(array('base_url' => get_js_url('/favorite/tag-' . $_GET['tag']), 'total_rows' => $this->model('favorite')->count_favorite_items($this->user_id, $_GET['tag']), 'per_page' => get_setting('contents_per_page')))->create_links()); TPL::output('favorite/index'); }
public function list_action() { $this->crumb(AWS_APP::lang()->_t('专题管理'), 'admin/feature/list/'); $feature_list = $this->model('feature')->get_feature_list('id DESC', $_GET['page'], $this->per_page); TPL::assign('pagination', AWS_APP::pagination()->initialize(array('base_url' => get_js_url('/admin/feature/list/'), 'total_rows' => $this->model('feature')->found_rows(), 'per_page' => 20))->create_links()); TPL::assign('list', $feature_list); TPL::output('admin/feature/list'); }
public function createSign($out_trade_no, $subject, $total_fee, $extra_common_param = null) { $parameter = array("service" => "create_direct_pay_by_user", "payment_type" => "1", "partner" => trim(get_setting('alipay_partner')), "_input_charset" => 'utf-8', "seller_email" => trim(get_setting('alipay_seller_email')), "return_url" => get_js_url('/payment/callback/alipay/'), 'notify_url' => get_js_url('/payment/notify/alipay/'), "out_trade_no" => $out_trade_no, "subject" => $subject, "body" => '', "total_fee" => $total_fee, "paymethod" => '', "defaultbank" => '', "anti_phishing_key" => '', "exter_invoke_ip" => '', "show_url" => get_setting('base_url'), "extra_common_param" => $extra_common_param, "royalty_type" => '', "royalty_parameters" => ''); //除去待签名参数数组中的空值和签名参数 $parameter = $this->paraFilter($parameter); //对待签名参数数组排序 $para_sort = $this->argSort($parameter); return $this->buildMysign($para_sort, get_setting('alipay_key')); }
public function format_js_users_output($data) { if ($data) { foreach ($data as $key => $val) { $output .= '<div class="item"><dl class="inf"><dt><a href="' . get_js_url('/people/' . $val['url_token']) . '">' . $val['user_name'] . '</a></dt><dd>回复了 ' . $val['answer_count'] . ' 个问题</dd><dd>获得 ' . $val['agree_count'] . ' 个赞同</dd></dl><div class="avatar"><a href=""><img src="' . get_avatar_url($val['uid'], 'mid') . '" /></a></div></div><!-- .item -->'; } } return "document.write('" . addcslashes($output, "'") . "');"; }
public function new_find_password($uid, $server = 'master') { if (!$uid) { return false; } $active_code_hash = $this->active_code_generate(); $active_id = $this->model('active')->new_active_code($uid, time() + 60 * 60 * 24, $active_code_hash, 'FIND_PASSWORD'); return $this->model('email')->action_email('FIND_PASSWORD', $uid, get_js_url('/account/find_password/modify/key-' . $active_code_hash), $server); }
public function list_action() { if ($recommend_homepage_list = $this->model('recommend')->fetch_page('recommend_homepage', 'id > 0', ' add_time DESC', $_GET['page'], $this->per_page)) { $total_rows = $this->model('recommend')->found_rows(); foreach ($recommend_homepage_list as $key => $val) { switch ($val['item_type']) { case 'question': $val['item_tag'] = '问题(精选)'; $val['item_link'] = 'question/' . $val['item_id']; $question_info = $this->model('question')->get_question_info_by_id($val['item_id']); if ($question_info) { $val['item_title'] = $question_info['question_content']; } else { $val['item_title'] = '问题 #' . $val['item_id']; } break; case 'article': $val['item_tag'] = '文章(精选)'; $val['item_link'] = 'article/' . $val['item_id']; $article_info = $this->model('article')->get_article_info_by_id($val['item_id']); if ($article_info) { $val['item_title'] = $article_info['title']; } else { $val['item_title'] = '文章 #' . $val['item_id']; } break; case 'topic': $val['item_tag'] = '专题(精选)'; $val['item_link'] = 'topic/' . $val['item_id']; $topic_info = $this->model('topic')->get_topic_by_id($val['item_id']); if ($topic_info) { $val['item_title'] = $topic_info['topic_title']; } else { $val['item_title'] = '专题 #' . $val['item_id']; } break; case 'top_question': $val['item_tag'] = '问题(置顶)'; $val['item_link'] = 'question/' . $val['item_id']; $question_info = $this->model('question')->get_question_info_by_id($val['item_id']); if ($question_info) { $val['item_title'] = $question_info['question_content']; } else { $val['item_title'] = '问题 #' . $val['item_id']; } break; } $recommend_homepage_list[$key] = $val; } } TPL::assign('recommend_homepage_list', $recommend_homepage_list); TPL::assign('pagination', AWS_APP::pagination()->initialize(array('base_url' => get_js_url('/admin/recommend/list/') . implode('__', $url_param), 'total_rows' => $total_rows, 'per_page' => $this->per_page))->create_links()); $this->crumb(AWS_APP::lang()->_t('首页精选管理'), 'admin/recommend/list/'); TPL::output('admin/recommend/list'); }
public static function parse_redirect_url($url) { if (substr($url, 0, 1) == '?') { $url = base_url() . $url; } else { if (substr($url, 0, 1) == '/') { $url = get_js_url($url); } } return $url; }
public function index_action() { if ($order_list = $this->model('project')->get_sponsored_order_list($_GET['id'], $this->user_id, $_GET['page'], get_setting('contents_per_page'))) { TPL::assign('pagination', AWS_APP::pagination()->initialize(array('base_url' => get_js_url('/project/sponsored/' . $_GET['id']), 'total_rows' => $this->model('project')->found_rows(), 'per_page' => get_setting('contents_per_page')))->create_links()); foreach ($order_list as $key => $val) { $order_list[$key]['order_status'] = $this->model('project')->get_order_status($val); } } TPL::assign('order_list', $order_list); TPL::output('project/sponsored/index'); }
public function send_batch_invitations($email_list, $uid, $user_name) { foreach ($email_list as $key => $email) { if ($this->model('account')->check_email($email)) { continue; } $invitation_code = $this->get_unique_invitation_code(); $this->model('invitation')->add_invitation($uid, $invitation_code, $email, time(), ip2long($_SERVER['REMOTE_ADDR'])); $this->model('email')->action_email('INVITE_REG', $email, get_js_url('/account/register/email-' . urlencode($email) . '__icode-' . $invitation_code), array('user_name' => $user_name)); } return true; }
public function list_action() { $this->crumb(AWS_APP::lang()->_t('内容审核'), 'admin/approval/list/'); TPL::assign('menu_list', $this->model('admin')->fetch_menu_list(300)); if (!$_GET['type']) { $_GET['type'] = 'question'; } switch ($_GET['type']) { case 'weibo_msg': case 'received_email': $approval_list = $this->model('admin')->fetch_page($_GET['type'], 'question_id IS NULL', 'id ASC', $_GET['page'], $this->per_page); $found_rows = $this->model('admin')->found_rows(); break; case 'unverified_modify': $approval_list = $this->model('question')->fetch_page('question', 'unverified_modify_count <> 0', 'question_id ASC', $_GET['page'], $this->per_page); $found_rows = $this->model('question')->found_rows(); break; default: $approval_list = $this->model('publish')->get_approval_list($_GET['type'], $_GET['page'], $this->per_page); $found_rows = $this->model('publish')->found_rows(); break; } TPL::assign('answer_count', $this->model('publish')->count('approval', "type = 'answer'")); TPL::assign('question_count', $this->model('publish')->count('approval', "type = 'question'")); TPL::assign('article_count', $this->model('publish')->count('approval', "type = 'article'")); TPL::assign('article_comment_count', $this->model('publish')->count('approval', "type = 'article_comment'")); TPL::assign('weibo_msg_count', $this->model('openid_weibo_weibo')->count('weibo_msg', 'question_id IS NULL')); TPL::assign('received_email_count', $this->model('edm')->count('received_email', 'question_id IS NULL')); TPL::assign('unverified_modifies_count', $this->model('question')->count('question', 'unverified_modify_count <> 0')); if ($approval_list) { TPL::assign('pagination', AWS_APP::pagination()->initialize(array('base_url' => get_js_url('/admin/approval/list/type-' . $_GET['type']), 'total_rows' => $found_rows, 'per_page' => $this->per_page))->create_links()); if ($_GET['type'] == 'unverified_modify') { foreach ($approval_list as $key => $approval_info) { $approval_list[$key]['uid'] = $approval_info['published_uid']; if (!$approval_uids[$approval_list[$key]['uid']]) { $approval_uids[$approval_list[$key]['uid']] = $approval_list[$key]['uid']; } $approval_list[$key]['unverified_modify'] = @unserialize($approval_info['unverified_modify']); } } else { foreach ($approval_list as $approval_info) { if (!$approval_uids[$approval_info['uid']]) { $approval_uids[$approval_info['uid']] = $approval_info['uid']; } } } TPL::assign('users_info', $this->model('account')->get_user_info_by_uids($approval_uids)); } TPL::assign($_GET['type'] . '_count', $found_rows); TPL::assign('approval_list', $approval_list); TPL::output('admin/approval/list'); }
public function index_action() { $this->model('account')->update_inbox_unread($this->user_id); if ($inbox_dialog = $this->model('message')->get_inbox_message($_GET['page'], get_setting('contents_per_page'), $this->user_id)) { $inbox_total_rows = $this->model('message')->found_rows(); foreach ($inbox_dialog as $key => $val) { $dialog_ids[] = $val['id']; if ($this->user_id == $val['recipient_uid']) { $inbox_dialog_uids[] = $val['sender_uid']; } else { $inbox_dialog_uids[] = $val['recipient_uid']; } } } if ($inbox_dialog_uids) { if ($users_info_query = $this->model('account')->get_user_info_by_uids($inbox_dialog_uids)) { foreach ($users_info_query as $user) { $users_info[$user['uid']] = $user; } } } if ($dialog_ids) { $last_message = $this->model('message')->get_last_messages($dialog_ids); } if ($inbox_dialog) { foreach ($inbox_dialog as $key => $value) { if ($value['recipient_uid'] == $this->user_id and $value['recipient_count']) { $data[$key]['user_name'] = $users_info[$value['sender_uid']]['user_name']; $data[$key]['url_token'] = $users_info[$value['sender_uid']]['url_token']; $data[$key]['unread'] = $value['recipient_unread']; $data[$key]['count'] = $value['recipient_count']; $data[$key]['uid'] = $value['sender_uid']; $data[$key]['profile_update_time'] = $users_info[$value['sender_uid']]['profile_update_time']; } else { if ($value['sender_uid'] == $this->user_id and $value['sender_count']) { $data[$key]['user_name'] = $users_info[$value['recipient_uid']]['user_name']; $data[$key]['url_token'] = $users_info[$value['recipient_uid']]['url_token']; $data[$key]['unread'] = $value['sender_unread']; $data[$key]['count'] = $value['sender_count']; $data[$key]['uid'] = $value['recipient_uid']; $data[$key]['profile_update_time'] = $users_info[$value['recipient_uid']]['profile_update_time']; } } $data[$key]['last_message'] = $last_message[$value['id']]; $data[$key]['update_time'] = $value['update_time']; $data[$key]['id'] = $value['id']; } } TPL::assign('list', $data); TPL::assign('pagination', AWS_APP::pagination()->initialize(array('base_url' => get_js_url('/inbox/'), 'total_rows' => $inbox_total_rows, 'per_page' => get_setting('contents_per_page')))->create_links()); TPL::output('inbox/index'); }
public function index_actions_action() { //if ($_GET['filter'] == 'publish') if ($_GET['filter'] == 'focus') { if ($result = $this->model('question')->get_user_focus($this->user_id, intval($_GET['page']) * $this->per_page . ", {$this->per_page}")) { foreach ($result as $key => $val) { $question_ids[] = $val['question_id']; } $topics_questions = $this->model('topic')->get_topics_by_item_ids($question_ids, 'question'); foreach ($result as $key => $val) { if (!$user_info_list[$val['published_uid']]) { $user_info_list[$val['published_uid']] = $this->model('account')->get_user_info_by_uid($val['published_uid'], true); } $data[$key]['user_info'] = $user_info_list[$val['published_uid']]; $data[$key]['associate_type'] = 1; $data[$key]['topics'] = $topics_questions[$val['question_id']]; $data[$key]['link'] = get_js_url('/question/' . $val['question_id']); $data[$key]['title'] = $val['question_content']; $data[$key]['question_info'] = $val; } } } else { if ($_GET['filter'] == 'public') { $data = $this->model('actions')->get_user_actions(null, intval($_GET['page']) * $this->per_page . ", {$this->per_page}", null, $this->user_id); } else { if ($_GET['filter'] == 'activity' and check_extension_package('project')) { $project_like = $this->model('project')->fetch_all('project_like', 'uid = ' . $this->user_id); foreach ($project_like as $project_info) { $project_ids[] = $project_info['project_id']; } $this->model('project')->fetch_all('product_order', 'uid = ' . $this->user_id); foreach ($product_order as $project_info) { $project_ids[] = $project_info['project_id']; } $project_ids = array_unique($project_ids); $data = $this->model('project')->get_project_info_by_ids($project_ids, intval($_GET['page']) * $this->per_page . ", {$this->per_page}"); } else { $data = $this->model('actions')->home_activity($this->user_id, intval($_GET['page']) * $this->per_page . ", {$this->per_page}"); } } } if (!is_array($data)) { $data = array(); } TPL::assign('list', $data); if (is_mobile()) { TPL::output('m/ajax/index_actions'); } else { TPL::output('home/ajax/index_actions'); } }
public function user_info_action() { if ($this->user_id == $_GET['uid']) { $user_info = $this->user_info; } else { if (!($user_info = $this->model('account')->get_user_info_by_uid($_GET['uid'], ture))) { H::ajax_json_output(array('uid' => null)); } } if ($this->user_id != $user_info['uid']) { $user_follow_check = $this->model('follow')->user_follow_check($this->user_id, $user_info['uid']); } H::ajax_json_output(array('reputation' => $user_info['reputation'], 'agree_count' => $user_info['agree_count'], 'thanks_count' => $user_info['thanks_count'], 'type' => 'people', 'uid' => $user_info['uid'], 'user_name' => $user_info['user_name'], 'avatar_file' => get_avatar_url($user_info['uid'], 'mid'), 'signature' => $user_info['signature'], 'focus' => $user_follow_check ? true : false, 'is_me' => $this->user_id == $user_info['uid'] ? true : false, 'url' => get_js_url('/people/' . $user_info['url_token']), 'category_enable' => get_setting('category_enable') == 'Y' ? 1 : 0, 'verified' => $user_info['verified'], 'fans_count' => $user_info['fans_count'])); }
public function save_slide_action() { if (!$_POST['title']) { H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('请填写幻灯片标题'))); } if (!$_POST['category']) { H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('请选择幻灯片分类'))); } if ($_POST['id']) { $slide_info = $this->model('slide')->get_slide_by_id($_POST['id']); if (!$slide_info) { H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('指定幻灯片不存在'))); } } if ($slide_info) { $this->model('slide')->save_slide($slide_info['id'], $_POST['title'], $_POST['description'], $_POST['link'], $_POST['category']); $id = $slide_info['id']; } else { $id = $this->model('slide')->save_slide(null, $_POST['title'], $_POST['description'], $_POST['link']); if (!$id) { H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('保存失败'))); } } if ($_FILES['img']['name']) { AWS_APP::upload()->initialize(array('allowed_types' => 'jpg,jpeg,png,gif', 'upload_path' => get_setting('upload_dir') . '/slide', 'is_image' => TRUE))->do_upload('img'); if (AWS_APP::upload()->get_error()) { switch (AWS_APP::upload()->get_error()) { default: H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('错误代码') . ': ' . AWS_APP::upload()->get_error())); break; case 'upload_invalid_filetype': H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('文件类型无效'))); break; } } $upload_data = AWS_APP::upload()->data(); if (!$upload_data) { H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('上传失败, 请与管理员联系'))); } foreach (AWS_APP::config()->get('image')->slide_thumbnail as $key => $val) { $thumb_file[$key] = $upload_data['file_path'] . $id . "-" . $key . '.jpg'; AWS_APP::image()->initialize(array('quality' => 90, 'source_image' => $upload_data['full_path'], 'new_image' => $thumb_file[$key], 'width' => $val['w'], 'height' => $val['h']))->resize(); } @unlink($upload_data['full_path']); } H::ajax_json_output(AWS_APP::RSM(array('url' => get_js_url('/admin/slide/list/')), 1, null)); }
public function follow_people_action() { if (!$_POST['uid'] or $_POST['uid'] == $this->user_id) { die; } // 首先判断是否存在关注 if ($this->model('follow')->user_follow_check($this->user_id, $_POST['uid'])) { $action = 'remove'; $this->model('follow')->user_follow_del($this->user_id, $_POST['uid']); } else { $action = 'add'; $this->model('follow')->user_follow_add($this->user_id, $_POST['uid']); $this->model('notify')->send($this->user_id, $_POST['uid'], notify_class::TYPE_PEOPLE_FOCUS, notify_class::CATEGORY_PEOPLE, $this->user_id, array('from_uid' => $this->user_id)); $this->model('email')->action_email('FOLLOW_ME', $_POST['uid'], get_js_url('/people/' . $this->user_info['url_token']), array('user_name' => $this->user_info['user_name'])); } H::ajax_json_output(AWS_APP::RSM(array('type' => $action), 1, null)); }
public function format_js_topics_ul_output($ul_class, $data) { $output = '<ul class="' . $ul_class . '">'; if ($data) { foreach ($data as $key => $val) { /*** 话题图片调用:get_topic_pic_url($val['uid'], $val['topic_pic']) $val['topic_description'] - 话题简介 $val['discuss_count'] - 讨论数量 ***/ $output .= '<li><a href="' . get_js_url('/topic/' . $val['url_token']) . '" target="_blank">' . $val['topic_title'] . '</a></li>'; } } $output .= '</ul>'; return "document.write('" . addcslashes($output, "'") . "');"; }
public function receiving_list_action() { $this->crumb(AWS_APP::lang()->_t('邮件导入'), "admin/edm/receiving_list"); $receiving_email_list = $this->model('edm')->fetch_page('receiving_email_config', null, null, $_GET['page'], $this->per_page); $total_rows = $this->model('edm')->found_rows(); if ($receiving_email_list) { foreach ($receiving_email_list as $receiving_email_config) { $uids[] = $receiving_email_config['uid']; } $users_info = $this->model('account')->get_user_info_by_uids($uids); TPL::assign('users_info', $users_info); } TPL::assign('receiving_email_list', $receiving_email_list); TPL::assign('accounts_total', $total_rows); TPL::assign('pagination', AWS_APP::pagination()->initialize(array('base_url' => get_js_url('/admin/edm/receiving_list/'), 'total_rows' => $total_rows, 'per_page' => $this->per_page))->create_links()); TPL::assign('menu_list', $this->model('admin')->fetch_menu_list(807)); TPL::output('admin/edm/receiving_list'); }
public function unsubscription_action() { if ($_GET['id']) { $arg = explode(',', $_GET['id']); $email = base64_decode($arg[0]); $human_verify = $arg[2]; } if (md5($email . G_SECUKEY) == $arg[1]) { if ($human_verify == ip2long(fetch_ip())) { $this->model('edm')->unsubscription($email); H::redirect_msg(AWS_APP::lang()->_t('%s 退订邮件成功', $email)); } else { $unsubscription_link = get_js_url('/account/edm/unsubscription/' . $arg[0] . ',' . $arg[1] . ',' . ip2long(fetch_ip())); H::redirect_msg(AWS_APP::lang()->_t('是否确认退订邮件订阅? ( <a href="%s">继续</a> )', $unsubscription_link)); } } else { H::redirect_msg(AWS_APP::lang()->_t('退订链接无效')); } }
public function send_message($sender_uid, $recipient_uid, $message) { if (!$sender_uid or !$recipient_uid or !$message) { return false; } if (!($inbox_dialog = $this->get_dialog_by_user($sender_uid, $recipient_uid))) { $inbox_dialog_id = $this->insert('inbox_dialog', array('sender_uid' => $sender_uid, 'sender_unread' => 0, 'recipient_uid' => $recipient_uid, 'recipient_unread' => 0, 'add_time' => time(), 'update_time' => time(), 'sender_count' => 0, 'recipient_count' => 0)); } else { $inbox_dialog_id = $inbox_dialog['id']; } $message_id = $this->insert('inbox', array('dialog_id' => $inbox_dialog_id, 'message' => htmlspecialchars($message), 'add_time' => time(), 'uid' => $sender_uid)); $this->update_dialog_count($inbox_dialog_id, $sender_uid); $this->model('account')->update_inbox_unread($recipient_uid); //$this->model('account')->update_inbox_unread($sender_uid); if ($user_info = $this->model('account')->get_user_info_by_uid($sender_uid)) { $this->model('email')->action_email('NEW_MESSAGE', $recipient_uid, get_js_url('/inbox/'), array('user_name' => $user_info['user_name'])); } return $message_id; }
public function get_request_token() { $args = array('oauth_callback' => get_js_url($this->oauth_callback)); $header = array($this->build_auth_header($args, self::OAUTH_REQUEST_TOKEN_URL, 'POST')); $result = HTTP::request(self::OAUTH_REQUEST_TOKEN_URL, 'POST', null, 10, $header); if (!$result) { $this->error_msg = AWS_APP::lang()->_t('获取 request token 时,与 Twitter 通信失败'); return false; } parse_str($result, $this->request_token); if (!$this->request_token['oauth_token'] or !$this->request_token['oauth_token_secret']) { $this->error_msg = AWS_APP::lang()->_t('获取 request token 失败'); return false; } if ($this->request_token['oauth_callback_confirmed'] != 'true') { $this->error_msg = AWS_APP::lang()->_t('callback url 设置错误'); return false; } return true; }
public function reply_answer_to_sina($question_id, $comment) { if (!get_setting('sina_akey') or !get_setting('sina_skey')) { return false; } $msg_info = $this->fetch_row('weibo_msg', 'question_id = ' . intval($question_id)); if (!$msg_info) { return false; } $service_info = $this->model('openid_weibo_oauth')->get_weibo_user_by_id($msg_info['weibo_uid']); if (!$service_info) { return false; } $comment .= ' (' . AWS_APP::lang()->_t('来自') . ' ' . get_js_url('/question/' . $question_id) . ' )'; $result = $this->model('openid_weibo_oauth')->create_comment($service_info['access_token'], $msg_info['id'], $comment); if ($result['error_code'] == 21332) { $this->notification_of_refresh_access_token($service_user_info['uid'], $service_user_info['user_name']); } return $result; }
public function get_access_token() { if (!$this->authorization_code) { $this->error_msg = AWS_APP::lang()->_t('authorization code 为空'); return false; } $args = array('client_id' => get_setting('sina_akey'), 'client_secret' => get_setting('sina_skey'), 'grant_type' => 'authorization_code', 'code' => $this->authorization_code, 'redirect_uri' => get_js_url($this->redirect_url)); $result = HTTP::request(self::OAUTH2_TOKEN_URL, 'POST', http_build_query($args)); if (!$result) { $this->error_msg = AWS_APP::lang()->_t('获取 access token 时,与微博通信失败'); return false; } $result = json_decode($result, true); if ($result['error_code']) { $this->error_msg = AWS_APP::lang()->_t('获取 access token 失败,错误为:%s', $result['error']); return false; } $this->access_token = $result['access_token']; return true; }
public function get_user_access_token() { if (!$this->authorization_code) { $this->error_msg = AWS_APP::lang()->_t('authorization code 为空'); return false; } $args = array('client_id' => get_setting('facebook_app_id'), 'client_secret' => get_setting('facebook_app_secret'), 'code' => $this->authorization_code, 'redirect_uri' => get_js_url($this->redirect_url)); $result = curl_get_contents(self::OAUTH2_TOKEN_URL . '?' . http_build_query($args)); if (!$result) { $this->error_msg = AWS_APP::lang()->_t('获取 user access token 时,与 Facebook 通信失败'); return false; } parse_str($result, $user_access_token); if (!$user_access_token['access_token']) { $result = json_decode($result, true); $this->error_msg = $result['error'] ? AWS_APP::lang()->_t('获取 user access token 失败,错误为:%s', $result['error']['message']) : AWS_APP::lang()->_t('获取 user access token 失败'); return false; } $this->user_access_token = $user_access_token['access_token']; return true; }
public function callback_qq_action() { if (get_setting('qq_login_enabled') != 'Y') { H::redirect_msg(AWS_APP::lang()->_t('QQ 帐号绑定功能已关闭'), '/'); } if (!$_GET['code']) { H::redirect_msg(AWS_APP::lang()->_t('与 QQ 通信出错, 请重新登录'), '/account/login/'); } if (!AWS_APP::session()->QQConnect['access_token']) { if (!$this->model('openid_qq')->request_access_token(get_js_url('/account/qq/callback_qq/'))) { H::redirect_msg(AWS_APP::lang()->_t('与 QQ 通信出错, 请重新登录'), '/account/login/'); } } if (!AWS_APP::session()->QQConnect['access_token'] or !($uinfo = $this->model('openid_qq')->request_user_info())) { H::redirect_msg(AWS_APP::lang()->_t('与 QQ 通信出错, 请重新登录'), '/account/login/'); } else { if (!$this->model('integral')->fetch_log($this->user_id, 'BIND_OPENID')) { $this->model('integral')->process($this->user_id, 'BIND_OPENID', round(get_setting('integral_system_config_profile') * 0.2), AWS_APP::lang()->_t('绑定 OPEN ID')); } $this->model('openid_qq')->bind_account($uinfo, get_js_url('/account/setting/openid/'), $this->user_id); } }
public function get_access_token() { if (!$this->authorization_code) { $this->error_msg = AWS_APP::lang()->_t('authorization code 为空'); return false; } $args = array('grant_type' => 'authorization_code', 'client_id' => get_setting('qq_login_app_id'), 'client_secret' => get_setting('qq_login_app_key'), 'code' => $this->authorization_code, 'redirect_uri' => get_js_url($this->redirect_url)); $result = curl_get_contents(self::OAUTH2_TOKEN_URL . '?' . http_build_query($args)); if (!$result) { $this->error_msg = AWS_APP::lang()->_t('获取 access token 时,与 QQ 通信失败'); return false; } parse_str($result, $access_token); if (!$access_token['access_token']) { preg_match('/\\((.+)\\)/', $result, $matchs); $result = json_decode($matchs[1], true); $this->error_msg = AWS_APP::lang()->_t('获取 access token 失败,错误为:%s', $result['error_description']); return false; } $this->access_token = $access_token['access_token']; $this->refresh_token = $access_token['refresh_token']; $this->expires_time = time() + intval($access_token['expires_in']); return true; }
public function process_list_data($favorite_items) { if (!$favorite_items) { return false; } foreach ($favorite_items as $key => $data) { switch ($data['type']) { case 'answer': $answer_ids[] = $data['item_id']; break; case 'article': $article_ids[] = $data['item_id']; break; } } if ($answer_ids) { if ($answer_infos = $this->model('answer')->get_answers_by_ids($answer_ids)) { foreach ($answer_infos as $key => $data) { $question_ids[$val['question_id']] = $data['question_id']; $favorite_uids[$data['uid']] = $data['uid']; } $answer_attachs = $this->model('publish')->get_attachs('answer', $answer_ids, 'min'); $question_infos = $this->model('question')->get_question_info_by_ids($question_ids); } } if ($article_ids) { if ($article_infos = $this->model('article')->get_article_info_by_ids($article_ids)) { foreach ($article_infos as $key => $data) { $favorite_uids[$data['uid']] = $data['uid']; } } } $users_info = $this->model('account')->get_user_info_by_uids($favorite_uids); foreach ($favorite_items as $key => $data) { switch ($data['type']) { case 'answer': $favorite_list_data[$key]['title'] = $question_infos[$answer_infos[$data['item_id']]['question_id']]['question_content']; $favorite_list_data[$key]['link'] = get_js_url('/question/' . $answer_infos[$data['item_id']]['question_id'] . '?rf=false&item_id=' . $data['item_id'] . '#!answer_' . $data['item_id']); $favorite_list_data[$key]['add_time'] = $question_infos[$answer_infos[$data['item_id']]['question_id']]['add_time']; $favorite_list_data[$key]['answer_info'] = $answer_infos[$data['item_id']]; if ($favorite_list_data[$key]['answer_info']['has_attach']) { $favorite_list_data[$key]['answer_info']['attachs'] = $answer_attachs[$data['item_id']]; } $favorite_list_data[$key]['question_info'] = $question_infos[$answer_infos[$data['item_id']]['question_id']]; $favorite_list_data[$key]['user_info'] = $users_info[$answer_infos[$data['item_id']]['uid']]; break; case 'article': $favorite_list_data[$key]['title'] = $article_infos[$data['item_id']]['title']; $favorite_list_data[$key]['link'] = get_js_url('/article/' . $data['item_id']); $favorite_list_data[$key]['add_time'] = $article_infos[$data['item_id']]['add_time']; $favorite_list_data[$key]['article_info'] = $article_infos[$data['item_id']]; $favorite_list_data[$key]['last_action_str'] = ACTION_LOG::format_action_data(ACTION_LOG::ADD_ARTICLE, $data['uid'], $users_info[$data['uid']]['user_name']); $favorite_list_data[$key]['user_info'] = $users_info[$article_infos[$data['item_id']]['uid']]; break; } $favorite_list_data[$key]['item_id'] = $data['item_id']; $favorite_list_data[$key]['item_type'] = $data['type']; } return $favorite_list_data; }
public function save_third_party_login_action() { if (!$_POST['name']) { H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('请输入第三方名称'))); } if (!$_POST['url'] or substr($_POST['url'], 0, 7) != 'http://' and substr($_POST['url'], 0, 8) != 'https://') { H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('请输入正确的 URL'))); } $_POST['token'] = trim($_POST['token']); if (!$_POST['token']) { H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('请输入第三方 Token'))); } if ($_POST['id']) { $rule_info = $this->model('openid_weixin_thirdlogin')->get_third_party_login_by_id($_POST['id']); if (!$rule_info) { H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('第三方接入不存在'))); } $this->model('openid_weixin_thirdlogin')->update_third_party_login($rule_info['id'], 'update', $_POST['name'], $_POST['url'], $_POST['token']); } else { $account_info = $this->model('weixin')->get_account_info_by_id($_POST['account_id']); if (!$account_info) { H::ajax_json_output(AWS_APP::RSM(null, -1, AWS_APP::lang()->_t('公众账号不存在'))); } $this->model('openid_weixin_thirdlogin')->update_third_party_login(null, 'add', $_POST['name'], $_POST['url'], $_POST['token'], 1, $account_info['id']); } H::ajax_json_output(AWS_APP::RSM(array('url' => get_js_url('/admin/weixin/third_party_login/id-' . $_POST['account_id'])), 1, null)); }