public function get($f3) { // 设置 order_refer 记录,记录在客户端 $orderRefer = array(); // 检查彩贝的记录 $caibeiRefer = $f3->get('SESSION[yiqifa_caibei_order_refer]'); if (!empty($caibeiRefer)) { $orderRefer = $caibeiRefer; unset($orderRefer['refer_host']); // 去掉彩贝的 refer_host } // 清除彩贝记录 $f3->set('SESSION[yiqifa_caibei_order_refer]', null); $orderRefer['utm_source'] = 'YIQIFACPS'; // 保存额外的 亿起发 参数 $validator = new Validator($_REQUEST); $referParamArray = array(); $referParamArray['src'] = $validator->validate('src'); $referParamArray['cid'] = $validator->validate('cid'); $referParamArray['wi'] = $validator->validate('wi'); $referParamArray['channel'] = $validator->validate('channel'); $orderRefer['refer_param'] = json_encode($referParamArray); //设置 cookie ReferHelper::setOrderReferSpecific($f3, $orderRefer, YiqifaCpsPlugin::getOptionValue('yiqifacps_duration')); // 页面跳转到商品 $url = $validator->validate('url'); $redirectUrl = empty($url) ? '/' : $url; RouteHelper::reRoute($this, $redirectUrl); return; }
public function get($f3) { AuthHelper::removeAuthUser(); $f3->clear('SESSION'); $this->addFlashMessage('成功退出登陆'); // 返回首页 RouteHelper::reRoute($this, '/', false); }
public function get($f3) { global $smarty; // 首先做参数合法性验证 $validator = new Validator($f3->get('GET')); $goods_id = $validator->required('商品id不能为空')->digits('商品id非法')->min(1, true, '商品id非法')->validate('goods_id'); if (!$this->validate($validator)) { goto out_fail; } // 生成 smarty 的缓存 id $smartyCacheId = 'Goods|' . $goods_id . '|View'; // 开启并设置 smarty 缓存时间 enableSmartyCache(true, MobileThemePlugin::getOptionValue('smarty_cache_time_goods_view')); // 缓存页面 if ($smarty->isCached('goods_view.tpl', $smartyCacheId)) { goto out_display; } // 查询商品信息 $goodsBasicService = new GoodsBasicService(); $goodsInfo = $goodsBasicService->loadGoodsById($goods_id); // 商品不存在,退出 if ($goodsInfo->isEmpty() || !Utils::isTagExist(PluginHelper::SYSTEM_MOBILE, $goodsInfo['system_tag_list'])) { $this->addFlashMessage('商品 [' . $goods_id . '] 不存在'); goto out_fail; } // 取商品推广信息设置 $goodsPromote = $goodsBasicService->loadGoodsPromoteByGoodsId($goods_id); // 取商品图片集 $goodsGalleryArray = GoodsGalleryCache::getGoodsGallery($goods_id); foreach ($goodsGalleryArray as &$galleryItem) { $galleryItem['img_url'] = RouteHelper::makeImageUrl($galleryItem['img_url']); $galleryItem['thumb_url'] = RouteHelper::makeImageUrl($galleryItem['thumb_url']); } unset($galleryItem); // 设置商品页面的 SEO 信息 $smarty->assign('seo_title', $goodsInfo['seo_title'] . ',' . $f3->get('sysConfig[site_name]')); $smarty->assign('seo_description', $goodsInfo['seo_description']); $smarty->assign('seo_keywords', $goodsInfo['seo_keyword']); // 给模板赋值 $smarty->assign('goodsInfo', $goodsInfo); $smarty->assign('goodsPromote', $goodsPromote); if (!Utils::isEmpty($goodsGalleryArray)) { $smarty->assign('goodsGalleryArray', $goodsGalleryArray); } // 设置商品规格 if (!empty($goodsInfo['goods_spec'])) { $goodsSpecService = new GoodsSpecService(); $goodsSpecService->initWithJson($goodsInfo['goods_spec']); $smarty->assign('goodsSpec', $goodsSpecService->getGoodsSpecDataArray()); } out_display: $smarty->display('goods_view.tpl', $smartyCacheId); return; out_fail: // 失败从这里返回 RouteHelper::reRoute($this, '/'); // 返回首页 }
public function get($f3) { AdminLog::logAdminOperate('user.logout', '用户退出', 'IP:' . $f3->get('IP')); AuthHelper::removeAuthUser(); $f3->clear('SESSION'); $this->addFlashMessage('成功退出登陆'); // 刷新当前页面 RouteHelper::reRoute($this, '/', false); }
public function beforeRoute($f3) { parent::beforeRoute($f3); // 用户没有登陆,让用户去登陆 if (!AuthHelper::isAuthUser()) { // 如果已经记录了一个回跳 URL ,则不要再覆盖这个记录了 RouteHelper::reRoute($this, '/User/Login', !RouteHelper::hasRememberUrl()); } }
public function post($f3) { // 权限检查 $this->requirePrivilege('manage_plugin_theme_configure'); // 保存数据 ShopThemePlugin::saveOptionValue('head_nav_json_data', json_encode($f3->get('POST[headNav]'))); // 清除 所有页面 $shopClear = new ShopClear(); $shopClear->clearAllCache(); $this->addFlashMessage('保存设置成功'); RouteHelper::reRoute($this, '/Theme/Shop/HeadNav'); }
public function beforeRoute($f3) { global $smarty; parent::beforeRoute($f3); // 用户没有登陆,让用户去登陆 if (!AuthHelper::isAuthUser()) { // 如果已经记录了一个回跳 URL ,则不要再覆盖这个记录了 RouteHelper::reRoute($this, '/User/Login', !RouteHelper::hasRememberUrl()); return; } //把认证用户放入到 smarty 中 $smarty->assign('authSupplierUser', AuthHelper::getAuthUser()); }
public function get($f3) { // 权限检查 $this->requirePrivilege('manage_goods_edit_edit_get'); global $smarty; // 参数验证 $validator = new Validator($f3->get('GET')); $goods_id = $validator->required('商品ID不能为空')->digits()->min(1)->validate('goods_id'); $smarty->display('goods_edit_linkgoods.tpl'); return; out_fail: RouteHelper::reRoute($this, '/Goods/Search'); }
public function post($f3) { global $smarty; // 首先做参数合法性验证 $validator = new Validator($f3->get('POST')); $input = array(); $input['phone'] = $validator->validate('phone'); $input['address'] = $validator->validate('address'); $input['oldpassword'] = $validator->validate('oldpassword'); $input['password'] = $validator->validate('password'); // 用户打算修改密码 if (!Utils::isBlank($input['password'])) { $validator->required('必须提供旧密码才能修改密码')->validate('oldpassword'); } // 提供的旧密码,但是新密码为空 if (!Utils::isBlank($input['oldpassword'])) { $validator->required('新密码不能为空')->validate('password'); } if (!$this->validate($validator)) { goto out; } $authSupplierUser = AuthHelper::getAuthUser(); $supplierUserService = new SupplierUserService(); // 验证用户登陆 $supplierUser = $supplierUserService->loadSupplierById($authSupplierUser['suppliers_id']); if ($supplierUser->isEmpty()) { $this->addFlashMessage("非法登陆用户"); RouteHelper::reRoute($this, '/User/Logout', false); } // 用户打算修改密码,但是旧密码不对 if (!empty($input['password']) && !$supplierUserService->verifyPassword($authSupplierUser['suppliers_id'], $input['oldpassword'])) { $this->addFlashMessage('旧密码不对'); goto out; } // 更新数据 unset($input['oldpassword']); $supplierUserService->updateSupplier($supplierUser, $input); // 记录用户的登陆信息 $supplierUserInfo = $supplierUser->toArray(); unset($supplierUserInfo['password']); // 不要记录密码 AuthHelper::saveAuthUser($supplierUserInfo); $this->addFlashMessage("修改资料成功"); $smarty->assign($supplierUserInfo); out: // 从这里出去 $smarty->display('my_profile.tpl'); }
public function post($f3) { global $smarty; // 首先做参数合法性验证 $validator = new Validator($f3->get('POST')); $input = array(); $input['oldpassword'] = $validator->validate('oldpassword'); $input['password'] = $validator->validate('password'); $input['email'] = $validator->validate('email'); $input['mobile_phone'] = $validator->digits('手机号格式不对')->validate('mobile_phone'); // 用户打算修改密码 if (!Utils::isBlank($input['password'])) { $validator->required('必须提供旧密码才能修改密码')->validate('oldpassword'); } // 提供的旧密码,但是新密码为空 if (!Utils::isBlank($input['oldpassword'])) { $validator->required('新密码不能为空')->validate('password'); } if (!$this->validate($validator)) { goto out_fail; } $userInfo = AuthHelper::getAuthUser(); $userService = new UserService(); $user = $userService->loadUserById($userInfo['user_id']); if (!$user) { // 非法用户,应该让它自动登陆出去 $this->addFlashMessage('非法登陆用户'); RouteHelper::reRoute($this, '/User/Logout', false); } // 用户打算修改密码,但是旧密码不对 if (!empty($input['password']) && !$userService->verifyPassword($userInfo['user_id'], $input['oldpassword'])) { $this->addFlashMessage('旧密码不对'); goto out_fail; } // 更新数据 unset($input['oldpassword']); $userService->updateUser($user, $input); // 更新认证记录 AuthHelper::removeAuthUser(); AuthHelper::saveAuthUser($user->toArray()); $this->addFlashMessage('资料更新成功'); RouteHelper::reRoute($this, '/My/Profile'); return; // 这里正常返回 out_fail: // 失败返回 $smarty->display('my_profile.tpl', 'post'); }
public function get($f3) { // 清除客户端所有数据 ClientData::clearClientData(); // 清除服务器端数据 AuthHelper::removeAuthUser(); $f3->clear('SESSION'); $this->addFlashMessage('成功退出登陆'); $backUrl = RouteHelper::getRefer(); if (Utils::isBlank($backUrl)) { // 没有来路域名则返回首页 $backUrl = '/'; } // 刷新当前页面 RouteHelper::reRoute($this, $backUrl, false); }
public function clearArticleCacheById($f3) { // 权限检查 $this->requirePrivilege('manage_misc_cache'); // 参数验证 $validator = new Validator($f3->get('POST')); $article_id = $validator->required('商品ID不能为空')->digits()->validate('article_id'); if (!$this->validate($validator)) { goto out; } ClearHelper::clearArticleCacheById($article_id); $this->addFlashMessage('商品[' . $article_id . ']页面清理成功'); out: // 从这里退出 RouteHelper::reRoute($this, RouteHelper::getRefer(), false); }
public function get($f3) { // 权限检查 $this->requirePrivilege('manage_goods_edit_edit_get'); // 参数验证 $validator = new Validator($f3->get('GET')); $goods_id = $validator->required('商品ID不能为空')->digits()->min(1)->validate('goods_id'); if (!$this->validate($validator)) { goto out; } // 清除商品缓存 ClearHelper::clearGoodsCacheById($goods_id); $this->addFlashMessage('商品[' . $goods_id . '] 缓存清除成功'); out: RouteHelper::reRoute($this, RouteHelper::getRefer(), false); }
/** * 更新或者新建一个快递公司 * * @param $f3 */ public function Edit($f3) { // 权限检查 $this->requirePrivilege('manage_misc_express_edit'); global $smarty; // 参数验证 $validator = new Validator($f3->get('GET')); $meta_id = $validator->digits()->validate('meta_id'); $meta_id = $meta_id ?: 0; // 加载 快递信息 $expressService = new ExpressService(); $expressInfo = $expressService->loadMetaById($meta_id); if (Request::isRequestGet()) { goto out_assign; } // 安全性检查 if ($meta_id > 0) { if ($expressInfo->isEmpty() || ExpressService::META_TYPE != $expressInfo->meta_type) { $this->addFlashMessage('非法ID[' . $meta_id . ']'); goto out; } } unset($validator); $validator = new Validator($f3->get('POST')); $inputArray = array(); $inputArray['meta_type'] = ExpressService::META_TYPE; $inputArray['meta_name'] = $validator->required()->validate('meta_name'); $inputArray['meta_ename'] = $validator->required()->validate('meta_ename'); $inputArray['meta_sort_order'] = $validator->digits()->validate('meta_sort_order'); $inputArray['meta_status'] = $validator->digits()->validate('meta_status'); $inputArray['meta_desc'] = $validator->validate('meta_desc'); if (!$this->validate($validator)) { goto out; } // 保存 $expressInfo->copyFrom($inputArray); $expressInfo->save(); $this->addFlashMessage('快递信息保存成功'); // POST 成功从这里退出 RouteHelper::reRoute($this, RouteHelper::makeUrl('/Misc/Express/Edit', array('meta_id' => $expressInfo->meta_id), true)); return; out_assign: $smarty->assign($expressInfo->toArray()); out: $smarty->display('misc_express_edit.tpl'); }
public function get($f3) { global $smarty; // 参数验证 $validator = new Validator($f3->get('GET')); $pageNo = $validator->digits()->min(0)->validate('pageNo'); $pageSize = $validator->digits()->min(0)->validate('pageSize'); // 设置缺省值 $pageNo = isset($pageNo) && $pageNo > 0 ? $pageNo : 0; $pageSize = isset($pageSize) && $pageSize > 0 ? $pageSize : 10; if (!$this->validate($validator)) { goto out_display; } $userInfo = AuthHelper::getAuthUser(); // 构造查询条件 $searchFormQuery = array(); $searchFormQuery['oi.user_id'] = $userInfo['user_id']; // 合并查询参数 $searchParamArray = array_merge(QueryBuilder::buildSearchParamArray($searchFormQuery), $this->searchExtraCondArray); // 查询订单 $totalCount = SearchHelper::count(SearchHelper::Module_OrderGoodsOrderInfo, $searchParamArray); if ($totalCount <= 0) { // 没订单,可以直接退出了 goto out_display; } // 页数超过最大值,返回第一页 if ($pageNo * $pageSize >= $totalCount) { RouteHelper::reRoute($this, '/My/Order'); } // 订单排序 $orderByParam = array(); $orderByParam[] = array('og.rec_id', 'desc'); // 订单列表 $orderGoodsArray = SearchHelper::search(SearchHelper::Module_OrderGoodsOrderInfo, 'og.order_id, og.goods_id, og.goods_attr, og.goods_number, og.goods_price, og.shipping_fee' . ', og.create_time, og.order_goods_status, oi.order_sn, oi.pay_time', $searchParamArray, $orderByParam, $pageNo * $pageSize, $pageSize); foreach ($orderGoodsArray as &$orderGoodsItem) { $orderGoodsItem['order_goods_status_desc'] = OrderGoodsService::$orderGoodsStatusDesc[$orderGoodsItem['order_goods_status']]; } unset($orderGoodsItem); // 给模板赋值 $smarty->assign('totalCount', $totalCount); $smarty->assign('pageNo', $pageNo); $smarty->assign('pageSize', $pageSize); $smarty->assign('orderGoodsArray', $orderGoodsArray); out_display: $smarty->display('my_order.tpl', 'get'); }
public function get($f3) { global $smarty; // 参数验证 $validator = new Validator($f3->get('GET')); $pageNo = $validator->digits()->min(0)->validate('pageNo'); $pageSize = $validator->digits()->min(0)->validate('pageSize'); // 设置缺省值 $pageNo = isset($pageNo) && $pageNo > 0 ? $pageNo : 0; $pageSize = isset($pageSize) && $pageSize > 0 ? $pageSize : 10; if (!$this->validate($validator)) { goto out_display; } $userInfo = AuthHelper::getAuthUser(); $userBasicService = new UserBasicService(); $userInfo = $userBasicService->loadUserById($userInfo['user_id']); // 用户总共有资金余额 $smarty->assign('userMoney', $userInfo['user_money']); $accountLog = new AccountLogService(); // 用户总共有多少account_log $totalCount = $accountLog->countUserMoneyArray($userInfo['user_id'], 10); //缓存 10 秒钟 if ($totalCount <= 0) { // 没资金变动记录,可以直接退出了 goto out_display; } $smarty->assign('totalCount', $totalCount); // 页数超过最大值,返回第一页 if ($pageNo * $pageSize >= $totalCount) { RouteHelper::reRoute($this, '/My/Money'); } // 传递分页的变量 $smarty->assign('pageNo', $pageNo); $smarty->assign('pageSize', $pageSize); // account_log 列表 $accountLogArray = $accountLog->fetchUserMoneyArray($userInfo['user_id'], $pageNo * $pageSize, $pageSize, 10); //缓存 10 秒钟 foreach ($accountLogArray as &$accountLogItem) { $accountLogItem['change_type_desc'] = AccountLogService::$changeTypeDesc[$accountLogItem['change_type']]; } unset($accountLogItem); $smarty->assign('accountLogArray', $accountLogArray); out_display: $smarty->display('my_money.tpl', 'get'); }
public function Edit($f3) { // 权限检查 $this->requirePrivilege('manage_article_category_edit'); global $smarty; // 参数验证 $validator = new Validator($f3->get('GET')); $meta_id = $validator->digits()->validate('meta_id'); $meta_id = $meta_id ?: 0; // 加载 分类信息 $articleCategoryService = new ArticleCategoryService(); $articleCategory = $articleCategoryService->loadArticleCategoryById($meta_id); if (Request::isRequestGet()) { goto out_assign; } // 安全性检查 if ($meta_id > 0) { if ($articleCategory->isEmpty() || ArticleCategoryService::META_TYPE != $articleCategory->meta_type) { $this->addFlashMessage('非法ID[' . $meta_id . ']'); goto out; } } unset($validator); $validator = new Validator($f3->get('POST')); $inputArray = array(); $inputArray['meta_type'] = ArticleCategoryService::META_TYPE; $inputArray['meta_name'] = $validator->required()->validate('meta_name'); $inputArray['meta_sort_order'] = $validator->digits()->validate('meta_sort_order'); $inputArray['meta_desc'] = $validator->validate('meta_desc'); if (!$this->validate($validator)) { goto out; } // 保存 $articleCategory->copyFrom($inputArray); $articleCategory->save(); $this->addFlashMessage('分类信息保存成功'); // POST 成功从这里退出 RouteHelper::reRoute($this, RouteHelper::makeUrl('/Article/Category/Edit', array('meta_id' => $articleCategory->meta_id), true)); return; out_assign: $smarty->assign($articleCategory->toArray()); out: $smarty->display('article_category_edit.tpl'); }
public function post($f3) { // 权限检查 $this->requirePrivilege('manage_goods_edit_edit_post'); global $smarty; // 参数验证 $validator = new Validator($f3->get('GET')); $goods_id = $validator->required('商品ID不能为空')->digits()->min(1)->validate('goods_id'); if (!$this->validate($validator)) { goto out_fail_list_goods; } unset($validator); // 用户提交的商品信息做验证 $goodsPromoteInfo = $f3->get('POST.goods_promote'); if (empty($goodsPromoteInfo)) { goto out_fail_validate; } //安全性处理 unset($goodsPromoteInfo['promote_id']); $goodsPromoteInfo['goods_id'] = $goods_id; // 写入到数据库 $goodsBasicService = new GoodsBasicService(); $goodsPromote = $goodsBasicService->loadGoodsPromoteByGoodsId($goods_id); $goodsPromote->copyFrom($goodsPromoteInfo); $goodsPromote->save(); // 记录商品编辑日志 $goodsLogContent = '360分类:' . $goodsPromote['360tuan_category'] . ',' . $goodsPromote['360tuan_category_end'] . "\n" . "360排序:" . $goodsPromote['360tuan_sort_order']; $authAdminUser = AuthHelper::getAuthUser(); $goodsLogService = new GoodsLogService(); $goodsLogService->addGoodsLog($goods_id, $authAdminUser['user_id'], $authAdminUser['user_name'], static::$goodsLogDesc, $goodsLogContent); // 成功,显示商品详情 $this->addFlashMessage('商品推广渠道保存成功'); //清除缓存,确保商品显示正确 ClearHelper::clearGoodsCacheById($goods_id); RouteHelper::reRoute($this, RouteHelper::makeUrl('/Goods/Edit/Promote', array('goods_id' => $goods_id), true)); return; // 参数验证失败 out_fail_validate: $smarty->display('goods_edit_promote.tpl'); return; out_fail_list_goods: RouteHelper::reRoute($this, '/Goods/Search'); }
/** * 采用 Magic 方法来实现,就不用每个支付方式都实现一次了 */ public function __call($method, $args) { global $f3; $payGateway = PaymentGatewayHelper::getPaymentGateway($method); $ret = $payGateway->doReturnUrl($f3); if ($ret) { $this->addFlashMessage('订单支付成功'); } else { $this->addFlashMessage('订单支付失败,请联系在线客服'); } $order_id = $payGateway->getOrderId(); if (!empty($order_id)) { // 跳转到订单查看 RouteHelper::reRoute($this, RouteHelper::makeUrl('/My/Order/Detail', array('order_id' => $order_id), true)); return; } // 跳转到我的订单 RouteHelper::reRoute($this, '/My/Order'); }
public function post($f3) { // 权限检查 $this->requirePrivilege('manage_plugin_theme_adv_configure'); // 参数验证 $validator = new Validator($f3->get('POST')); // 广告设置 json 数据,由 JavaScript 打包发送过来 $shop_index_advblock_json_data = $validator->validate('shop_index_advblock_json_data'); $jsonObject = json_decode($shop_index_advblock_json_data, true); if (empty($jsonObject)) { $shop_index_advblock_json_data = null; } ShopThemePlugin::saveOptionValue('shop_index_advblock_json_data', $shop_index_advblock_json_data); // 清除 /Shop/Index 页面 $shopClear = new ShopClear(); $shopClear->clearHomePage(); $this->addFlashMessage('保存设置成功'); RouteHelper::reRoute($this, '/Theme/Shop/AdvShopBlock'); }
/** * 供货商列表显示 */ public function ListUser($f3) { // 权限检查 $this->requirePrivilege('manage_account_supplier_listuser'); global $smarty; // 参数验证 $validator = new Validator($f3->get('GET')); $pageNo = $validator->digits()->min(0)->validate('pageNo'); $pageSize = $validator->digits()->min(0)->validate('pageSize'); //查询条件 $formQuery = array(); $formQuery['suppliers_name'] = $validator->validate('suppliers_name'); $formQuery['suppliers_desc'] = $validator->validate('suppliers_desc'); // 设置缺省值 $pageNo = isset($pageNo) && $pageNo > 0 ? $pageNo : 0; $pageSize = isset($pageSize) && $pageSize > 0 ? $pageSize : 10; if (!$this->validate($validator)) { goto out_display; } // 建立查询条件 $condArray = QueryBuilder::buildQueryCondArray($formQuery); // 查询供货商列表 $supplierUserService = new SupplierUserService(); $totalCount = $supplierUserService->countSupplierArray($condArray); if ($totalCount <= 0) { // 没用户,可以直接退出了 goto out_display; } // 页数超过最大值,返回第一页 if ($pageNo * $pageSize >= $totalCount) { RouteHelper::reRoute($this, '/Account/Supplier/ListUser'); } // 供货商列表 $supplierUserArray = $supplierUserService->fetchSupplierArray($condArray, $pageNo * $pageSize, $pageSize); // 给模板赋值 $smarty->assign('totalCount', $totalCount); $smarty->assign('pageNo', $pageNo); $smarty->assign('pageSize', $pageSize); $smarty->assign('supplierUserArray', $supplierUserArray); out_display: $smarty->display('account_supplier_listuser.tpl'); }
public function beforeRoute($f3) { parent::beforeRoute($f3); // 由于我们使用 GET 来传递 session id,出于安全性考虑,我们需要检查来源 IP $userSessionIP = $f3->get('SESSION[user_session_ip]'); if (empty($userSessionIP)) { $f3->set('SESSION[user_session_ip]', $f3->get('IP')); } else { if ($userSessionIP !== $f3->get('IP')) { // IP 非法,清空当前 session 数据 $f3->clear('SESSION'); session_destroy(); session_write_close(); } } // 用户没有登陆,让用户去登陆 if (!AuthHelper::isAuthUser()) { // 如果已经记录了一个回跳 URL ,则不要再覆盖这个记录了 RouteHelper::reRoute($this, '/User/Login', !RouteHelper::hasRememberUrl()); } }
public function get($f3) { global $smarty; // 首先做参数合法性验证 $validator = new Validator($f3->get('GET')); $article_id = $validator->required('文章id不能为空')->digits('文章id非法')->min(1, true, '文章id非法')->validate('article_id'); if (!$this->validate($validator)) { goto out_fail; } // 生成 smarty 的缓存 id $smartyCacheId = 'Article|' . $article_id . '|View'; // 开启并设置 smarty 缓存时间 enableSmartyCache(true, bzf_get_option_value('smarty_cache_time_article_view')); if ($smarty->isCached('article_view.tpl', $smartyCacheId)) { goto out_display; } // 查询文章信息 $articleService = new ArticleBasicService(); $articleInfo = $articleService->loadArticleById($article_id); // 文章不存在,退出 if ($articleInfo->isEmpty() || !$articleInfo->is_open) { $this->addFlashMessage('文章 [' . $article_id . '] 不存在'); goto out_fail; } // 设置文章页面的 SEO 信息 $smarty->assign('seo_title', $articleInfo['title'] . ',' . $f3->get('sysConfig[site_name]')); $smarty->assign('seo_description', $articleInfo['description']); $smarty->assign('seo_keywords', $articleInfo['seo_keyword']); // 给模板赋值 $smarty->assign('articleInfo', $articleInfo); out_display: $smarty->display('article_view.tpl', $smartyCacheId); return; out_fail: // 失败从这里返回 RouteHelper::reRoute($this, '/'); // 返回首页 }
public function post($f3) { // 权限检查 $this->requirePrivilege('manage_plugin_theme_adv_configure'); // 参数验证 $validator = new Validator($f3->get('POST')); // slider 广告设置 $imageArray = $validator->validate('image'); $urlArray = $validator->validate('url'); $targetArray = $validator->validate('target'); $imageSize = is_array($imageArray) ? count($imageArray) : 0; $shop_index_adv_slider = array(); // 组织数据结构 for ($index = 0; $index < $imageSize; $index++) { $shop_index_adv_slider[] = array('image' => $imageArray[$index], 'url' => $urlArray[$index], 'target' => $targetArray[$index]); } ShopThemePlugin::saveOptionValue('shop_index_adv_slider', json_encode($shop_index_adv_slider)); // 清除 /Shop/Index 页面 $shopClear = new ShopClear(); $shopClear->clearHomePage(); $this->addFlashMessage('保存设置成功'); RouteHelper::reRoute($this, '/Theme/Shop/AdvShopSlider'); }
public function post($f3) { global $smarty; // 首先做参数合法性验证 $validator = new Validator($f3->get('POST')); $addressInfo = array(); $addressInfo['consignee'] = $validator->required('姓名不能为空')->validate('consignee'); $addressInfo['address'] = $validator->required('地址不能为空')->validate('address'); $addressInfo['mobile'] = $validator->required('手机号码不能为空')->digits('手机号码格式不正确')->validate('mobile'); $addressInfo['tel'] = $validator->validate('tel'); $addressInfo['zipcode'] = $validator->digits('邮编格式不正确')->validate('zipcode'); if (!$this->validate($validator)) { goto out_fail; } $userInfo = AuthHelper::getAuthUser(); $userAddressService = new UserAddressService(); $userAddressService->updateUserFirstAddress($userInfo['user_id'], $addressInfo); $this->addFlashMessage('地址更新成功'); RouteHelper::reRoute($this, '/My/Address'); return; out_fail: // 失败返回 $smarty->display('my_address.tpl', 'post'); }
public function get($f3) { // 权限检查 $this->requirePrivilege('manage_goods_edit_edit_get'); global $smarty; // 参数验证 $validator = new Validator($f3->get('GET')); $goods_id = $validator->required('商品ID不能为空')->digits()->min(1)->validate('goods_id'); $pageNo = $validator->digits()->min(0)->validate('pageNo'); $pageSize = $validator->digits()->min(0)->validate('pageSize'); // 设置缺省值 $pageNo = isset($pageNo) && $pageNo > 0 ? $pageNo : 0; $pageSize = isset($pageSize) && $pageSize > 0 ? $pageSize : 20; if (!$this->validate($validator)) { goto out_fail; } $goodsLogService = new GoodsLogService(); $totalCount = $goodsLogService->countGoodsLogArray($goods_id); $goodsLogArray = $goodsLogService->fetchGoodsLogArray($goods_id, $pageNo * $pageSize, $pageSize); // 格式化内容的输出 foreach ($goodsLogArray as &$goodsLog) { if (!empty($goodsLog['content'])) { $goodsLog['content'] = nl2br($goodsLog['content']); } } unset($goodsLog); // 给模板赋值 $smarty->assign('goodsLogArray', $goodsLogArray); $smarty->assign('totalCount', $totalCount); $smarty->assign('pageNo', $pageNo); $smarty->assign('pageSize', $pageSize); $smarty->display('goods_edit_log.tpl'); return; out_fail: RouteHelper::reRoute($this, '/Goods/Search'); }
public function post($f3) { // 参数验证 $validator = new Validator($f3->get('POST')); $dbHost = $validator->validate('dbHost'); $dbPort = $validator->validate('dbPort'); $dbName = $validator->validate('dbName'); // 系统通用的配置 $sysConfig = $validator->validate('sysConfig'); if (!$this->validate($validator)) { goto out_fail; } try { // 对云平台要做特殊处理 if (CloudHelper::CLOUD_ENGINE_SAE == CloudHelper::$currentEngineStr) { $dbPdo = 'mysql:host=' . SAE_MYSQL_HOST_M . ';port=' . SAE_MYSQL_PORT . ';dbname=' . SAE_MYSQL_DB; $sysConfig['db_username'] = SAE_MYSQL_USER; $sysConfig['db_password'] = SAE_MYSQL_PASS; goto import_data; } if (CloudHelper::CLOUD_ENGINE_BAE3 == CloudHelper::$currentEngineStr) { $sysConfig['db_username'] = $sysConfig['bae3_api_key']; $sysConfig['db_password'] = $sysConfig['bae3_secret_key']; } // 检查是否需要创建数据库 $dbPdo = 'mysql:host=' . $dbHost . ';port=' . $dbPort; $dbEngine = new \Core\Modal\DbEngine($dbPdo, $sysConfig['db_username'], $sysConfig['db_password']); // 检查数据库是否存在,从而确定我们是否应该新建一个数据库 $shouldCreateDatabase = true; $databaseArray = $dbEngine->exec('SHOW DATABASES'); foreach ($databaseArray as $databaseItem) { if ($databaseItem['Database'] == $dbName) { $shouldCreateDatabase = false; break; } } if ($shouldCreateDatabase) { // 在这里创建一个新的数据库 $dbEngine->exec('CREATE DATABASE ' . $dbName); } // 重新初始化数据库连接 unset($dbPdo); unset($dbEngine); $dbPdo = 'mysql:host=' . $dbHost . ';port=' . $dbPort . ';dbname=' . $dbName; // 更新配置文件 env.cfg $filePath = INSTALL_PATH . '/../protected/Config/env.cfg'; $fileContent = file_get_contents($filePath); $fileContent = preg_replace('/sysConfig\\[env\\]="[^"]*"/', 'sysConfig[env]="prod"', $fileContent); file_put_contents($filePath, $fileContent); // 更新配置文件 common-prod.cfg $filePath = INSTALL_PATH . '/../protected/Config/common-prod.cfg'; $fileContent = file_get_contents($filePath); $fileContent = preg_replace('/sysConfig\\[db_pdo\\]="[^"]*"/', 'sysConfig[db_pdo]="' . $dbPdo . '"', $fileContent); // 清除 demo 配置 $fileContent = preg_replace('/sysConfig\\[is_demo\\]=1/', 'sysConfig[is_demo]=0', $fileContent); // 清除 Cache 的设置 $sysConfig['cache'] = ''; foreach ($sysConfig as $key => $value) { $fileContent = preg_replace('/sysConfig\\[' . $key . '\\]="[^"]*"/', 'sysConfig[' . $key . ']="' . $value . '"', $fileContent); } file_put_contents($filePath, $fileContent); import_data: // 这里完成导入数据的工作 $pdoObject = new \PDO($dbPdo, $sysConfig['db_username'], $sysConfig['db_password']); // 解析 sql 文件,导入数据 $sqlFileContent = file_get_contents(INSTALL_PATH . '/Asset/data/bzfshop.sql'); $sqlFileContent = SqlHelper::removeComment($sqlFileContent); $sqlArray = SqlHelper::splitToSqlArray($sqlFileContent, ';'); foreach ($sqlArray as $sqlQuery) { $pdoObject->exec($sqlQuery); } unset($pdoObject); } catch (\PDOException $e) { $this->addFlashMessage($e->getMessage()); goto out_fail; } $this->addFlashMessage('数据导入成功'); // 成功,进入到下一步 RouteHelper::reRoute($this, '/Install/Step4'); return; out_fail: // 失败从这里退出 global $smarty; $smarty->assign('currentEngineStr', CloudHelper::$currentEngineStr); $smarty->display('install_step3.tpl'); }
public function get($f3) { global $smarty; // 首先做参数合法性验证 $validator = new Validator($f3->get('GET')); $pageNo = $validator->digits('pageNo 参数非法')->min(0, true, 'pageNo 参数非法')->validate('pageNo'); // 搜索参数数组 $searchFormQuery = array(); $searchFormQuery['category_id'] = $validator->digits('分类id非法')->min(1, true, '分类id非法')->filter('ValidatorIntValue')->validate('category_id'); $searchFormQuery['suppliers_id'] = $validator->digits('供货商id非法')->min(1, true, '供货商id非法')->filter('ValidatorIntValue')->validate('suppliers_id'); $searchFormQuery['goods_name'] = $validator->validate('goods_name'); // 价格区间查询 $shopPriceMin = $validator->filter('ValidatorFloatValue')->validate('shop_price_min'); $shopPriceMax = $validator->filter('ValidatorFloatValue')->validate('shop_price_max'); $searchFormQuery['shop_price'] = array($shopPriceMin, $shopPriceMax); // 排序 $orderBy = $validator->oneOf(array('', 'total_buy_number', 'shop_price', 'add_time'))->validate('orderBy'); $orderDir = $validator->oneOf(array('', 'asc', 'desc'))->validate('orderDir'); $orderByParam = array(); if (!empty($orderBy)) { $orderByParam = array(array($orderBy, $orderDir)); } //增加一些我们的缺省排序 $orderByParam[] = array('sort_order', 'desc'); $orderByParam[] = array('goods_id', 'desc'); // 参数验证 if (!$this->validate($validator) || empty($searchFormQuery)) { goto out_fail; } $pageNo = isset($pageNo) && $pageNo > 0 ? $pageNo : 0; $pageSize = 10; // 每页固定显示 10 个商品 // 生成 smarty 的缓存 id $smartyCacheId = 'Goods|Search|' . md5(json_encode($searchFormQuery) . json_encode($orderByParam) . '_' . $pageNo . '_' . $pageSize); // 开启并设置 smarty 缓存时间 enableSmartyCache(true, MobileThemePlugin::getOptionValue('smarty_cache_time_goods_search')); if ($smarty->isCached('goods_search.tpl', $smartyCacheId)) { goto out_display; } // 合并查询参数 $searchParamArray = array_merge(QueryBuilder::buildSearchParamArray($searchFormQuery), $this->searchExtraCondArray); $totalCount = SearchHelper::count(SearchHelper::Module_Goods, $searchParamArray); if ($totalCount <= 0) { goto out_display; // 没有商品,直接显示 } // 页号可能是用户乱输入的,我们需要检查 if ($pageNo * $pageSize >= $totalCount) { goto out_fail; // 返回首页 } $goodsArray = SearchHelper::search(SearchHelper::Module_Goods, $this->searchFieldSelector, $searchParamArray, $orderByParam, $pageNo * $pageSize, $pageSize); if (empty($goodsArray)) { goto out_display; } // 取得 商品ID 列表 $goodsIdArray = array(); foreach ($goodsArray as $goodsItem) { $goodsIdArray[] = $goodsItem['goods_id']; } // 取得商品的图片 $goodsGalleryService = new GoodsGalleryService(); $goodsGalleryArray = $goodsGalleryService->fetchGoodsGalleryArrayByGoodsIdArray($goodsIdArray); $currentGoodsId = -1; $goodsThumbImageArray = array(); $goodsImageArray = array(); foreach ($goodsGalleryArray as $goodsGalleryItem) { if ($currentGoodsId == $goodsGalleryItem['goods_id']) { continue; //每个商品我们只需要一张图片,跳过其它的图片 } $currentGoodsId = $goodsGalleryItem['goods_id']; // 新的商品 id $goodsThumbImageArray[$currentGoodsId] = RouteHelper::makeImageUrl($goodsGalleryItem['thumb_url']); $goodsImageArray[$currentGoodsId] = RouteHelper::makeImageUrl($goodsGalleryItem['img_url']); } // 赋值给模板 $smarty->assign('totalCount', $totalCount); $smarty->assign('pageNo', $pageNo); $smarty->assign('pageSize', $pageSize); $smarty->assign('goodsArray', $goodsArray); $smarty->assign('goodsThumbImageArray', $goodsThumbImageArray); $smarty->assign('goodsImageArray', $goodsImageArray); out_display: $smarty->display('goods_search.tpl', $smartyCacheId); return; out_fail: // 失败从这里返回 RouteHelper::reRoute($this, '/'); // 返回首页 }
public function Edit($f3) { global $smarty; // 参数验证 $validator = new Validator($f3->get('GET')); $article_id = $validator->digits()->min(0)->filter('ValidatorIntValue')->validate('article_id'); if (!$this->validate($validator)) { goto out_fail; } // 取得文章 $articleService = new ArticleService(); $article = $articleService->loadArticleById($article_id); if ($article_id > 0 && $article->isEmpty()) { $this->addFlashMessage('文章ID[' . $article_id . ']非法'); goto out_fail; } // 只是显示文章内容而已 if (Request::isRequestGet()) { $smarty->assign('article', $article->toArray()); goto out_get; } // 权限检查 $this->requirePrivilege('manage_article_article_edit'); // 从这里开始是修改文章内容 unset($validator); $articleInfoArray = $f3->get('POST[article]'); $validator = new Validator($articleInfoArray); // 获得修改数据 $inputArray = array(); $inputArray['title'] = $validator->required()->validate('title'); $inputArray['seo_keyword'] = $validator->validate('seo_keyword'); $inputArray['cat_id'] = $validator->validate('cat_id'); $inputArray['is_open'] = $validator->validate('is_open'); $inputArray['description'] = $validator->validate('description'); $inputArray['content'] = $articleInfoArray['content']; // 不要过滤 html if (!$this->validate($validator)) { goto out_get; } $authAdminUser = AuthHelper::getAuthUser(); // 新建文章 if ($article_id <= 0) { $inputArray['admin_user_id'] = $authAdminUser['user_id']; $inputArray['admin_user_name'] = $authAdminUser['user_name']; $inputArray['add_time'] = Time::gmTime(); } // 文章更新 $inputArray['update_user_id'] = $authAdminUser['user_id']; $inputArray['update_user_name'] = $authAdminUser['user_name']; $inputArray['update_time'] = Time::gmTime(); // 保存修改 $article->copyFrom($inputArray); $article->save(); // 清除文章缓存 ClearHelper::clearArticleCacheById($article->article_id); $this->addFlashMessage('文章保存成功'); RouteHelper::reRoute($this, RouteHelper::makeUrl('/Article/Article/Edit', array('article_id' => $article->article_id), true)); return; // POST 从这里退出 out_get: // GET 从这里退出 $smarty->display('article_article_edit.tpl'); return; out_fail: // 失败从这里退出 RouteHelper::reRoute($this, '/Article/Article/Search'); }
public function AttrItemRemove($f3) { // 权限检查 $this->requirePrivilege('manage_goods_type_listtype'); // 参数验证 $validator = new Validator($f3->get('GET')); $meta_id = $validator->required()->digits()->min(1)->validate('meta_id'); if (!$this->validate($validator)) { goto out; } $goodsTypeService = new GoodsTypeService(); $goodsTypeService->removeGoodsTypeAttrItem($meta_id); $this->addFlashMessage('成功删除属性[' . $meta_id . ']'); out: RouteHelper::reRoute($this, RouteHelper::getRefer(), false); }