/** * callback 登陆后回调地址 * @author:xjw129xjt(肖骏涛) xjt@ourstu.com */ public function callback() { $code = I('get.code'); $type = I('get.type'); $is_login = is_login(); $sns = \ThinkOauth::getInstance($type); //腾讯微博需传递的额外参数 $extend = null; if ($type == 'tencent') { $extend = array('openid' => I('get.openid'), 'openkey' => I('get.openkey')); } $token = $sns->getAccessToken($code, $extend); if (empty($token)) { $this->error('参数错误'); } $session = array('TOKEN' => $token, 'TYPE' => $type, 'OPENID' => $token['openid'], 'ACCESS_TOKEN' => $token['access_token']); session('SYNCLOGIN', $session); if ($is_login) { $this->dealIsLogin($is_login); } else { $addon_config = get_addon_config('SyncLogin'); $check = $this->checkIsSync(array('type_uid' => $token['openid'], 'type' => $type)); if ($addon_config['bind'] && !$check) { redirect(addons_url('SyncLogin://Base/bind')); } else { $this->unBind(); } } }
/** * 登陆后回调地址 * autor:xjw129xjt */ public function callback() { $code = I('get.code'); $type = I('get.type'); $is_login = is_login(); $sns = \ThinkOauth::getInstance($type); //腾讯微博需传递的额外参数 $extend = null; if ($type == 'tencent') { $extend = array('openid' => I('get.openid'), 'openkey' => I('get.openkey')); } $token = $sns->getAccessToken($code, $extend); session('SYNCLOGIN_TOKEN', $token); session('SYNCLOGIN_TYPE', $type); session('SYNCLOGIN_OPENID', $token['openid']); session('SYNCLOGIN_ACCESS_TOKEN', $token['access_token']); $check = D('sync_login')->where("`type_uid`='" . $token['openid'] . "' AND type='" . $type . "'")->select(); $addon_config = get_addon_config('SyncLogin'); if ($is_login) { $this->dealIsLogin($is_login); } else { if ($addon_config['bind'] && !$check) { redirect(addons_url('SyncLogin://Base/bind')); } else { $this->unbind(); } } }
/** * @param * @param $uid int 评论给谁? * @author caipeichao */ public function localComment($param) { $uid = $param['uid']; $app = $param['app']; $mod = $param['con']; $row_id = $param['id']; //获取参数 $p = $_REQUEST[C('VAR_PAGE')] ? $_REQUEST[C('VAR_PAGE')] : 1; $count = 7; //调用接口获取评论列表 $list = $this->getCommentList($app, $mod, $row_id, $p, $count); $total_count = $this->getCommentCount($app, $mod, $row_id); //增加用户信息 foreach ($list as &$e) { $e['user'] = query_user(array('uid', 'avatar64', 'nickname', 'space_url'), $e['uid']); } unset($e); $config = get_addon_config('LocalComment'); $can_guest_comment = $config['can_guest_comment']; $this->assign('can_guest_comment', $can_guest_comment); //显示页面 $loginuser = query_user(array('uid', 'avatar64', 'nickname', 'space_url'), $uid); $this->assign('loginuser', $loginuser); $this->assign('list', $list); $this->assign('total_count', $total_count); $this->assign('count', $count); $this->assign('app', $app); $this->assign('mod', $mod); $info = D($app . '/' . $mod)->get_info($row_id); $this->assign('info', $info); $this->assign('row_id', $row_id); $this->assign('uid', $uid); $this->display('comment'); }
public function addComment() { $config = get_addon_config('LocalComment'); $can_guest_comment = $config['can_guest_comment']; if (!$can_guest_comment) { //不允许游客评论 if (!is_login()) { $this->error('请登录后评论。'); } } //获取参数 $app = strval($_REQUEST['app']); $mod = strval($_REQUEST['mod']); $row_id = intval($_REQUEST['row_id']); $content = strval($_REQUEST['content']); $uid = intval($_REQUEST['uid']); //调用API接口,添加新评论 $data = array('app' => $app, 'mod' => $mod, 'row_id' => $row_id, 'content' => $content, 'uid' => is_login()); D($app . '/' . $mod)->where(array('id' => $row_id))->setInc('reply_count'); $commentModel = D('Addons://LocalComment/LocalComment'); $data = $commentModel->create($data); if (!$data) { $this->error('评论失败:' . $commentModel->getError()); } $commentModel->add($data); if (!is_login()) { if ($uid) { $title = '游客' . '评论了您'; $message = '评论内容:' . $content; $url = $_SERVER['HTTP_REFERER']; D('Common/Message')->sendMessage($uid, $message, $title, $url, 0, 0, $app); } //返回结果 $this->success('评论成功', 'refresh'); } else { //给评论对象发送消息 if ($uid) { $user = D('User/UcenterMember')->find(get_uid()); $title = $user['username'] . '评论了您'; $message = '评论内容:' . $content; $url = $_SERVER['HTTP_REFERER']; D('Common/Message')->sendMessage($uid, $message, $title, $url, get_uid(), 0, $app); } } //通知被@到的人 $uids = get_at_uids($content); $uids = array_unique($uids); $uids = array_subtract($uids, array($uid)); foreach ($uids as $uid) { $user = D('User/UcenterMember')->find($uid); $title = $user['username'] . '@了您'; $message = '评论内容:' . $content; $url = $_SERVER['HTTP_REFERER']; D('Common/Message')->sendMessage($uid, $message, $title, $url, get_uid(), 0, $app); } //返回结果 $this->success('评论成功', 'refresh'); }
public function view() { $current = U('/home/addons/adminlist/name/Message'); $this->assign('current', $current); //获取配置文件信息 $config_info = (include_once ONETHINK_ADDON_PATH . 'Message/config.inc.php'); $this->assign('group_type', $config_info['type']); $id = I('get.id', ''); $info = D('Addons://Message/Message')->detail($id); $this->assign('info', $info); $config = get_addon_config('Message'); $this->assign('config', $config); $this->display(T('Addons://Message@Message/view')); }
public function getList() { if (!extension_loaded('curl')) { $this->error('糗事百科插件需要开启PHP的CURL扩展'); } $lists = S('QiuBai_content'); if (!$lists) { $config = get_addon_config('QiuBai'); $HTTP_Server = "www.qiushibaike.com/8hr"; $HTTP_URL = "/"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://" . $HTTP_Server . $HTTP_URL); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"); // curl_setopt($ch,CURLOPT_COOKIE,$HTTP_SESSION); $content = curl_exec($ch); curl_close($ch); if ($content) { preg_match_all('/<div class="content" title="(.*?)">\\s*(.*?)\\s*<\\/div>/is', $content, $match); unset($match[0]); $lists = array_map(function ($a, $b) { return array('time' => $a, 'content' => $b); }, $match[1], $match[2]); S('QiuBai_content', $lists, $config['cache_time']); } } #dom对象方式匹配内容 // if($content){ // $dom = new \DOMDocument(); // $dom->loadHTML($content); // $body = $dom->getElementsByTagName('body'); // $body = simplexml_import_dom($body->item(0)); // $list = $body->xpath("//div[@class='main']/div[@class='content-block']/div[@class='col1']/div/div[@class='content']"); // foreach ($list as $key => $value) { // $attr = $value->attributes(); // $lists[] = array('time'=>strval($attr['title']),'content'=>trim(strval($value))); // } // } if ($lists) { $this->success('成功', '', array('data' => $lists)); } else { $this->error('获取糗事百科列表失败'); } $this->assign('qiubai_list', $lists); }
public function deleteImage() { $config = get_addon_config("ImageManager"); if ($config['delete_switch'] != 1) { $this->error('没有开启删除选项!'); } $id = I("id", 0, "intval"); if ($config['delete_mode'] == 1) { $pic = M("Picture")->find($id); if (file_exists($_SERVER['DOCUMENT_ROOT'] . $pic['path'])) { @unlink($_SERVER['DOCUMENT_ROOT'] . $pic['path']); } M("Picture")->delete($id); } else { M("Picture")->where(array('id' => $id))->setField("status", 0); } $this->success('ok'); }
public function bind() { $addon_config = get_addon_config('SyncLogin'); $arr = array(); foreach ($addon_config['type'] as &$v) { $arr[$v]['name'] = strtolower($v); $arr[$v]['is_bind'] = $this->check_is_bind_account(is_login(), strtolower($v)); if ($arr[$v]['is_bind']) { $token = D('sync_login')->where(array('type' => strtolower($v), 'uid' => is_login()))->find(); $user_info = D('Addons://SyncLogin/Info')->{$arr}[$v]['name'](array('access_token' => $token['oauth_token'], 'openid' => $token['oauth_token_secret'])); $arr[$v]['info'] = $user_info; } } unset($v); $this->assign('list', $arr); $this->assign('addon_config', $addon_config); $this->assign('tabHash', 'bind'); $this->display(T('Addons://SyncLogin@Ucenter/bind')); }
public function vote() { $config = get_addon_config('Digg'); $id = intval(I('id')); $type = intval(I('type')); $uid = is_login(); if (!$uid) { $this->error('请先登录再投票'); } $has_vote = M('Digg')->where("document_id={$id} AND uids like '%,{$uid},%'")->find(); if (!$has_vote) { $field = $type == '1' ? 'good' : 'bad'; $data = array($field => array('exp', "{$field}+1"), "uids" => array('exp', "concat(uids,'{$uid},')")); M('Digg')->where("document_id={$id}")->save($data); $this->success($config['post_sucess_tip']); } else { $this->error($config['post_error_tip']); } }
public function indexAliPlay($param) { $config = $this->getConfig(); // 检查插件是否开启 if ($config['codelogin']) { $post = get_addon_config('AliPlay'); if ($config['PARTNER']) { // 判断用户选择的接口类型,决定配置文件的写入路径 $pay_type = ''; switch ($config['pay_type']) { case 1: $pay_type = 'danbao'; break; case 2: $pay_type = 'jishi'; break; case 3: $pay_type = 'wangguan'; break; } // 读取文件中的内容 $str = file_get_contents("./Addons/AliPlay/Play/" . $pay_type . "/lib/aliplay.php"); $zz = array(); $rep = array(); foreach ($post as $key => $value) { $zz[] = "/define\\(\"{$key}\",\\s*.*?\\);/i"; $rep[] = "define(\"{$key}\", \"{$value}\");"; } // 改写文件中的内容 $str = preg_replace($zz, $rep, $str); file_put_contents("./Addons/AliPlay/Play/" . $pay_type . "/lib/aliplay.php", $str); $this->assign('pay_type', $pay_type); $this->assign('config', $config); $this->display('AliPlay'); } } }
public function getList() { $lists = S('Weather_content'); if (!$lists) { $config = get_addon_config('Weather'); $url = "http://api.map.baidu.com/telematics/v2/weather?location=" . $config['city'] . "&ak=" . $config['ak'] . ""; $result = file_get_contents($url); $content = simplexml_load_string($result); $lists['city'] = (string) $content->currentCity; $lists['showday'] = $config['showday']; foreach ($content->results->result as $result) { $lists['date'][] = (string) $result->date; $lists['weather'][] = (string) $result->weather; $lists['wind'][] = (string) $result->wind; $lists['temperature'][] = (string) $result->temperature; $lists['pictureUrl'][] = (string) $result->dayPictureUrl; } } if ($lists) { $this->success('成功', '', array('data' => $lists)); } else { $this->error('天气列表失败'); } }
public function index() { //JSSDK 初始部分 $param['mp_id'] = I('mp_id'); //$param ['id'] = I('id'); //如有插件中数据id,分享url中应加入id参数 //$url = addons_url ( 'Jssdk://Jssdk/index', $param ); //分享的url需要和自定义回复入口url保持相同 $url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $surl = get_shareurl(); if (!empty($surl)) { $this->assign('share_url', $surl); } $info = get_mpid_appinfo($param['mp_id']); $options['appid'] = $info['appid']; //初始化options信息 $options['appsecret'] = $info['secret']; $options['encodingaeskey'] = $info['encodingaeskey']; $weObj = new TPWechat($options); $auth = $weObj->checkAuth(); $js_ticket = $weObj->getJsTicket(); if (!$js_ticket) { $this->error('获取js_ticket失败!错误码:' . $weObj->errCode . ' 错误原因:' . ErrCode::getErrText($weObj->errCode)); } $js_sign = $weObj->getJsSign($url); $this->assign('js_sign', $js_sign); $addon_config = get_addon_config('Jssdk'); $this->assign('addon_config', $addon_config); //微信支付部分 //此处可以动态获取数据库中的MCHID和KEY $jssdkpay = new JsSdkPay($options); $jssdkpay->MCHID = ""; // 动态MCHID;微信支付分配的商户号 $jssdkpay->KEY = ""; // 动态KEY; //=========步骤2:使用统一支付接口,获取prepay_id============ //使用统一支付接口 $jssdkpay->parameters['openid'] = get_openid(); //trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识。 $jssdkpay->parameters['body'] = "订单支付"; //商品或支付单简要描述 $jssdkpay->parameters['out_trade_no'] = "outtradeno" . time(); //商户系统内部的订单号,32个字符内、可包含字母,不可重复 $jssdkpay->parameters['total_fee'] = 100; //收款金额,此处单位为分 出现小数点接口报错必须是整数 $jssdkpay->parameters['notify_url'] = 'http://test.uctoo.com/index.php/addon/Jssdk/Jssdk/alarmnotify'; //接收微信支付异步通知回调地址 $jssdkpay->parameters['trade_type'] = "JSAPI"; //取值如下:JSAPI,NATIVE,APP $jssdkpay->parameters['spbill_create_ip'] = get_client_ip(); //APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP。 //以下非必填参数根据需要添加 //$jssdkpay->parameters['device_info'] = "013467007045764"; //微信支付分配的终端设备号,商户自定义 //$jssdkpay->parameters['detail'] = "UCToo 蓝色"; //商品名称明细列表 //$jssdkpay->parameters['attach'] = "说明"; //附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据 //$jssdkpay->parameters['fee_type'] = "CNY"; //符合ISO 4217标准的三位字母代码,默认人民币:CNY //$jssdkpay->parameters['time_start'] = "20091225091010"; //订单生成时间,格式为yyyyMMddHHmmss //$jssdkpay->parameters['time_expire'] = "20091227091010"; //订单失效时间,格式为yyyyMMddHHmmss //$jssdkpay->parameters['goods_tag'] = "WXG"; //商品标记,代金券或立减优惠功能的参数 //$jssdkpay->parameters['product_id'] = "12235413214070356458058"; //trade_type=NATIVE,此参数必传。此id为二维码中包含的商品ID,商户自行定义。 $jssdkpay->prepay_id = $jssdkpay->getPrepayId(); //微信生成的预支付回话标识,用于后续接口调用中使用,该值有效期为2小时 //=========步骤3:使用jsapi调起支付============ $jsApiParameters = $jssdkpay->getParameters(); //JSSDK 用户支付完成后的一些系统操作 $param1['dcnum'] = $jssdkpay->parameters['out_trade_no']; $param1['openid'] = $jssdkpay->parameters['openid']; $ajaxurl = addons_url('Jssdk://Jssdk/orderpaid', $param1); //用户支付完成后,在微信支付返回alarmnotify之前(不保证时序),可以通过ajax调用,进行一些预处理操作 $jsApiParameters = substr($jsApiParameters, 1, -1) . ",success: function (res) {\n // 支付成功后的js回调函数\n \n }"; $this->assign("jsApiParameters", $jsApiParameters); //向页面传整理好的调起支付参数 $this->display(); }
public function addComment() { $config = get_addon_config('LocalComment'); $can_guest_comment = $config['can_guest_comment']; if (!$can_guest_comment) { //不允许游客评论 if (!is_login()) { $this->error('请登录后评论。'); } } //获取参数 $app = strval($_REQUEST['app']); $mod = strval($_REQUEST['con']); $row_id = intval($_REQUEST['row_id']); $content = strval($_REQUEST['content']); $uid = intval($_REQUEST['uid']); $pid = intval($_REQUEST['pid']); if (M($mod)->where(array('id' => $row_id))->getField('status') != 1) { $this->error('该文章尚未审核通过!'); } $data = array('app' => $app, 'con' => $mod, 'row_id' => $row_id, 'content' => $content, 'uid' => is_login(), 'pid' => $pid); $commentModel = D('Addons://LocalComment/LocalComment'); $data = $commentModel->create($data); if (!$data) { $this->error('评论失败:' . $commentModel->getError()); } else { D($app . '/' . $mod)->where(array('id' => $row_id))->setInc('reply_count'); $rowinfo = D($app . '/' . $mod)->where(array('id' => $row_id))->find(); $data['content'] = op_h($data['content'], 'font'); $commentModel->add($data); if (!is_login()) { if ($uid) { $title = '游客' . '评论了您'; $message = '评论内容:' . $content; $url = $_SERVER['HTTP_REFERER']; if (strtolower($mod) == 'article') { $rowurl = U('Home/Index/artc', array('id' => $row_id)); } if (strtolower($mod) == 'music') { $rowurl = U('Home/Index/musicc', array('id' => $row_id)); } if (strtolower($mod) == 'group') { $rowurl = U('Home/Index/groupc', array('id' => $row_id)); } sendMessage($rowinfo['uid'], '0', $title, $message . ',链接地址:<a href="' . $rowurl . '">' . $rowinfo['title'] . '</a>', 0); } //返回结果 $this->success('评论成功', 'refresh'); } else { //给评论对象发送消息 if ($uid) { $user = D('Member')->find(getnowUid()); $title = $user['nickname'] . '评论了您'; $message = '评论内容:' . $content; $url = $_SERVER['HTTP_REFERER']; if ($rowinfo['uid'] != getnowUid()) { if (strtolower($mod) == 'article') { $rowurl = U('Home/Index/artc', array('id' => $row_id)); } if (strtolower($mod) == 'music') { $rowurl = U('Home/Index/musicc', array('id' => $row_id)); } if (strtolower($mod) == 'group') { $rowurl = U('Home/Index/groupc', array('id' => $row_id)); } sendMessage($rowinfo['uid'], getnowUid(), $title, $message . ',链接地址:<a href="' . $rowurl . '">' . $rowinfo['title'] . '</a>', 0); } } } //通知被@到的人 $uids = get_at_uids($content); $uids = array_unique($uids); $uids = array_subtract($uids, array($uid)); foreach ($uids as $uid) { $user = D('Member')->find(getnowUid()); $title = $user['nickname'] . '@了您'; $message = '评论内容:' . $content; $url = $_SERVER['HTTP_REFERER']; sendMessage($uid, getnowUid(), $title, $message . ',链接地址:<a href="' . U('Index/artc', array('id' => $row_id)) . '">' . $rowinfo['title'] . '</a>', 0); } //返回结果 $this->success('评论成功'); } }
public function indexAliPlay($param) { $config = $this->getConfig(); //检查插件是否开启 if ($config['codelogin']) { $post = get_addon_config('AliPlay'); if ($config['PARTNER']) { //判断用户选择的接口类型,决定配置文件的写入路径 $pay_type = ''; switch ($config['pay_type']) { case 1: $pay_type = 'AliPlayEscow'; break; case 2: $pay_type = 'AliPlayDirect'; break; case 3: $pay_type = 'wangguan'; break; } //读取文件中的内容 $str = file_get_contents("./Addons/AliPlay/Play/" . $pay_type . "/lib/aliplay.php"); $zz = array(); $rep = array(); foreach ($post as $key => $value) { $zz[] = "/define\\(\"{$key}\",\\s*.*?\\);/i"; $rep[] = "define(\"{$key}\", \"{$value}\");"; } //改写文件中的内容 $str = preg_replace($zz, $rep, $str); file_put_contents("./Addons/AliPlay/Play/" . $pay_type . "/lib/aliplay.php", $str); $data['out_trade_no'] = $this->createOrderNo(); //订单号 $data['subject'] = "账户充值"; //订单名称; $data['price'] = ""; //付款金额; $data['logistics_fee'] = 0; //物流费用; $data['logistics_type'] = "POST"; //物流类型; $data['logistics_payment'] = "SELLER_PAY"; //物流支付方式; $data['body'] = "账户充值"; //订单描述; $data['show_url'] = ""; //商品展示地址; $data['receive_name'] = ""; //收货人姓名; $data['receive_address'] = ""; //收货人地址; $data['receive_zip'] = ""; //收货人邮编; $data['receive_mobile'] = ""; //收货人手机号码; $data['receive_phone'] = ""; //收货人电话号码; // echo '<pre>'; print_r($data); echo '</pre>'; $this->assign('data', $data); $this->assign('pay_type', $pay_type); $this->assign('config', $config); $this->display('AliPlay'); } } }
public function view() { error_reporting(0); $config = get_addon_config('AdaptiveImages'); $document_root = __ROOT__; $resolutions = $this->resolutions = explode(',', trim($config['resolutions'])); $this->cache_path = $config['cache_path']; $this->jpg_quality = $config['jpg_quality']; $this->sharpen = $config['sharpen']; $this->watch_cache = $config['watch_cache']; $this->browser_cache = $config['browser_cache']; $requested_uri = parse_url(urldecode($_SERVER['REQUEST_URI']), PHP_URL_PATH); $requested_uri = str_replace($document_root, '', $requested_uri); $requested_file = basename($requested_uri); $this->source_file = $source_file = '.' . $requested_uri; $resolution = FALSE; // 检测源文件是否存在 if (!file_exists($source_file)) { header("Status: 404 Not Found"); exit; } else { if ($config['status'] == 0) { $this->sendImage($this->source_file); } } /* 检测环境里是否有GD库 */ if (!extension_loaded('gd')) { if (!function_exists('dl') || !dl('gd.so')) { trigger_error('你必须启用 GD 扩展来使用Adaptive Images', E_USER_WARNING); $this->sendImage($source_file, $this->browser_cache); } } //$cache_path是否已经存在? if (!is_dir($this->cache_path)) { // no if (!@mkdir($this->cache_path, 0755, true)) { if (!is_dir($this->cache_path)) { $this->sendErrorImage("Failed to create cache directory at: {$this->cache_path}"); } } } /* 检查是否合法的cookie */ if (isset($_COOKIE['resolution'])) { $cookie_value = $_COOKIE['resolution']; // 格式是否正确 [whole number, comma, potential floating number] if (!preg_match("/^[0-9]+[,]*[0-9\\.]+\$/", "{$cookie_value}")) { // no it doesn't look valid setcookie("resolution", "{$cookie_value}", time() - 100); // delete the mangled cookie } else { // the cookie is valid, do stuff with it $cookie_data = explode(",", $_COOKIE['resolution']); $client_width = (int) $cookie_data[0]; // the base resolution (CSS pixels) $total_width = $client_width; $pixel_density = 1; // set a default, used for non-retina style JS snippet if (@$cookie_data[1]) { // the device's pixel density factor (physical pixels per CSS pixel) $pixel_density = $cookie_data[1]; } rsort($resolutions); // make sure the supplied break-points are in reverse size order $resolution = $resolutions[0]; // by default use the largest supported break-point // if pixel density is not 1, then we need to be smart about adapting and fitting into the defined breakpoints if ($pixel_density != 1) { $total_width = $client_width * $pixel_density; // required physical pixel width of the image // the required image width is bigger than any existing value in $resolutions if ($total_width > $resolutions[0]) { // firstly, fit the CSS size into a break point ignoring the multiplier foreach ($resolutions as $break_point) { // filter down if ($total_width <= $break_point) { $resolution = $break_point; } } // now apply the multiplier $resolution = $resolution * $pixel_density; } else { foreach ($resolutions as $break_point) { // filter down if ($total_width <= $break_point) { $resolution = $break_point; } } } } else { // pixel density is 1, just fit it into one of the breakpoints foreach ($resolutions as $break_point) { // filter down if ($total_width <= $break_point) { $resolution = $break_point; } } } } } //是否是手机 if (!$this->is_mobile()) { $is_mobile = FALSE; } else { $is_mobile = TRUE; } /* 没有响应式断点发现 (没有合法的cookie) */ if (!$resolution) { // 我们发送给手机端最小的宽度,非手机端最大的 $resolution = $is_mobile ? min($resolutions) : max($resolutions); } if (substr($requested_uri, 0, 1) == "/") { $requested_uri = substr($requested_uri, 1); } $cache_file = "{$this->cache_path}/{$resolution}/" . $requested_uri; /* 使用响应值作为路径变量,并且检测同名图片是否存在其中 */ if (file_exists($cache_file)) { if ($this->watch_cache) { //监视原图改变的话 $cache_file = $this->refreshCache($source_file, $cache_file, $resolution); } $this->sendImage($cache_file, $this->browser_cache); } /* 原图存在无缓存时创建缓存: */ $file = $this->generateImage($source_file, $cache_file, $resolution); $this->sendImage($file, $this->browser_cache); }
public function native() { $order_id = I('order_id'); if (empty($order_id)) { $this->error('非法订单参数...'); } $map = array('order_status' => 4, 'order_id' => $order_id); $order_info = M('Order')->field('order_id,order_price,product_id,order_type')->where($map)->find(); if (empty($order_info)) { $this->error('订单不存在...'); } switch ($order_info['order_type']) { case 'line': $info = M('Line')->field('title,sub_title')->find($order_info['product_id']); if ($info) { $order_info['title'] = $info['title']; $order_info['sub_title'] = $info['sub_title']; } else { $order_info['title'] = '旅游线路'; $order_info['sub_title'] = '旅游线路资费'; } break; case 'visa': $info = M('Visa')->field('title,sub_title')->find($order_info['product_id']); if ($info) { $order_info['title'] = $info['title']; $order_info['sub_title'] = $info['sub_title']; } else { $order_info['title'] = '旅游线路'; $order_info['sub_title'] = '旅游线路资费'; } break; default: break; } //模式二 import('Com.Wxpay.lib.NativePay'); import('Com.Wxpay.lib.WxPayApi'); import('Com.Wxpay.lib.WxPayDataBase'); $notify = new \Com\WxPay\lib\NativePay(); $get_notify_url = addons_url("Wxpay://Index/notify"); $get_notify_url = preg_replace('/.html/i', '', $get_notify_url); $get_notify_url = "http://" . $_SERVER['HTTP_HOST'] . $get_notify_url; $notify_url = $get_notify_url; //获取公众号信息,jsApiPay初始化参数 $config = get_addon_config('Wxpay'); $input = new \Com\WxPay\lib\WxPayUnifiedOrder(); $input->SetBody($order_info['title']); $input->SetAttach($order_info['sub_title']); $input->SetOut_trade_no($order_info['order_id']); $input->SetTotal_fee(intval($order_info['order_price'] * 100)); $input->SetTime_start(date("YmdHis")); $input->SetTime_expire(date("YmdHis", time() + 600)); $input->SetGoods_tag($order_info['title']); $input->SetNotify_url($notify_url); $input->SetTrade_type("NATIVE"); $input->SetProduct_id("123456789"); $result = $notify->GetPayUrl($input); if ($result['result_code'] == 'FAIL') { $this->error($result['err_code_des'], U('User/orderShow', array('order_id' => $order_info['order_id']))); } $url2 = $result["code_url"]; $this->assign('url2', $url2); // echo '<pre>'; print_r($result); echo '</pre>'; exit; $this->display(T('Addons://Wxpay@Index/native')); exit; // echo '<pre>'; print_r($result); echo '</pre>'; // $url = 'http://paysdk.weixin.qq.com/example/qrcode.php?data=' . urlencode($url2); // $url = "http://".$_SERVER['HTTP_HOST'] . addons_url("Wxpay://Index/qrcode", array('data'=>base64_encode($url2))); // exit($url); // $url = 'http://wwb.sypole.com/Addons/execute/_addons/Wxpay/_controller/Index/_action/qrcode?data=' . urlencode($url2); // header('Content-type: image/png'); // echo file_get_contents($url); }
/** * 提交评论 * 提交网址:./addComment?app=&mod=&row_id=&uid=&pid=&token= */ public function addComment() { $config = get_addon_config('LocalComment'); $can_guest_comment = $config['can_guest_comment']; $post_uid = get_uid(); if (!$can_guest_comment) { //不允许游客评论 if (!$post_uid) { $this->error('请登录后评论。'); } } //获取参数 $app = I('request.app', '', 'trim,htmlspecialchars'); $mod = I('request.mod', '', 'trim,htmlspecialchars'); $row_id = I('request.row_id', 0, 'intval'); $content = I('request.content', '', 'trim,htmlspecialchars'); $pid = I('request.pid', 0, 'intval'); $uid = I('request.uid', 0, 'intval'); if (!$this->_verifyToken($app, $mod, $row_id, $uid)) { $this->error('参数被篡改。'); } //调用API接口,添加新评论 $data = array('app' => $app, 'mod' => $mod, 'row_id' => $row_id, 'content' => $content, 'uid' => $post_uid, 'pid' => $pid); if ($post_uid > 0) { $data['nickname'] = D('Member')->where(array('uid' => $post_uid))->getField('nickname'); } else { $data['nickname'] = I('request.nickname', '', 'trim,htmlspecialchars'); if ($data['nickname'] === '') { $this->error('请请输入您的名称。'); } } if (!preg_match('/^[\\w]+$/', $app)) { $this->error('app的值不正确'); } if (!preg_match('/^[\\w]+$/', $mod)) { $this->error('mod的值不正确'); } D($app . '/' . $mod)->where(array('id' => $row_id))->setInc('reply_count'); $commentModel = D('Addons://LocalComment/LocalComment'); $data = $commentModel->create($data); if (!$data) { $this->error('评论失败:' . $commentModel->getError()); } $commentModel->add($data); $referer_url = htmlspecialchars($_SERVER['HTTP_REFERER']); //游客逻辑直接跳过@环节 if ($post_uid <= 0) { if ($uid) { $title = '游客「' . $data['nickname'] . '」评论了您'; $message = '评论内容:' . $content; D('Common/Message')->sendMessage($uid, $message, $title, $referer_url, 0, 0, $app); } //返回结果 $this->success('评论成功', 'refresh'); exit; } else { //给评论对象发送消息 $title = '用户「' . $data['nickname'] . '」评论了您'; $message = '评论内容:' . $content; D('Common/Message')->sendMessage($uid, $message, $title, $referer_url, $post_uid, 0, $app); } //通知被@到的人 $uids = get_at_uids($content); if ($uids) { foreach ($uids as $_uid) { if ($_uid == $uid || $_uid == $post_uid) { continue; } $title = '用户「' . $data['nickname'] . '」@了您'; $message = '评论内容:' . $content; D('Common/Message')->sendMessage($_uid, $message, $title, $referer_url, $post_uid, 0, $app); } } //返回结果 $this->success('评论成功', 'refresh'); }
public function getCheckRank() { $getranktime = get_addon_config('Rank_checkin'); $set_ranktime = $getranktime['ranktime']; $y = date("Y", time()); $m = date("m", time()); $d = date("d", time()); $start_time = mktime($set_ranktime, 0, 0, $m, $d, $y); $this->assign("ss", $start_time); $rank = S('check_rank'); if (empty($rank)) { $rank = D('Check_info')->where('ctime>' . $start_time)->order('ctime asc')->limit(5)->select(); S('check_rank', $rank, 60); } if (time() <= $start_time) { $return = array('time' => $start_time); } else { foreach ($rank as &$v) { $v['userInfo'] = query_user(array('avatar128', 'space_url', 'nickname', 'uid'), $v['uid']); } $return = array('list' => $rank); } if (isset($return['time'])) { $this->apiError('签到还未开始。', '8000', $return); } else { $this->apiSuccess('获取成功。', $return); } }