From 344c995f59cf6c97a4ef419d7e14e3f426ad3c86 Mon Sep 17 00:00:00 2001 From: Rock Zhang <iamgtskk@gmail.com> Date: Thu, 12 Nov 2015 11:03:13 +0800 Subject: [PATCH] 添加一些搜索参数,price,style等,同时支持区间查询 --- yohobuy/m.yohobuy.com/application/controllers/Search.php | 41 ++++++++++++++++++++++++++--------------- yohobuy/m.yohobuy.com/application/modules/Product/controllers/Index.php | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 109 insertions(+), 27 deletions(-) diff --git a/yohobuy/m.yohobuy.com/application/controllers/Search.php b/yohobuy/m.yohobuy.com/application/controllers/Search.php index 620cc76..d6272a3 100644 --- a/yohobuy/m.yohobuy.com/application/controllers/Search.php +++ b/yohobuy/m.yohobuy.com/application/controllers/Search.php @@ -35,13 +35,14 @@ class SearchController extends AbstractAction // 过滤请求参数 $condition = filter_input_array(INPUT_GET, array( 'query' => FILTER_DEFAULT, - 'brand' => FILTER_VALIDATE_INT, + 'brand' => FILTER_DEFAULT, 'sort' => FILTER_DEFAULT, 'msort' => FILTER_DEFAULT, 'misort' => FILTER_DEFAULT, - 'color' => FILTER_VALIDATE_INT, - 'size' => FILTER_VALIDATE_INT, - 'price' => FILTER_VALIDATE_INT, + 'color' => FILTER_DEFAULT, + 'size' => FILTER_DEFAULT, + 'style' => FILTER_DEFAULT, + 'price' => FILTER_DEFAULT, 'discount' => FILTER_DEFAULT, 'gender' => FILTER_DEFAULT, 'p_d' => FILTER_DEFAULT,), false); @@ -49,7 +50,7 @@ class SearchController extends AbstractAction $query = empty($condition['query']) ? null : strtolower(trim($condition['query'])); if (isset($condition['discount'])) { $condition['p_d'] = rawurldecode($condition['discount']); - unset($condition['discount']); + // unset($condition['discount']); 为了兼容js中传参的discount } if (isset($condition['query'])) { $condition['query'] = rawurlencode($condition['query']); @@ -200,13 +201,14 @@ class SearchController extends AbstractAction /* 过滤请求参数 */ $condition = filter_input_array(INPUT_GET, array( 'query' => FILTER_DEFAULT, - 'brand' => FILTER_VALIDATE_INT, + 'brand' => FILTER_DEFAULT, 'sort' => FILTER_DEFAULT, 'msort' => FILTER_DEFAULT, 'misort' => FILTER_DEFAULT, - 'color' => FILTER_VALIDATE_INT, - 'size' => FILTER_VALIDATE_INT, - 'price' => FILTER_VALIDATE_INT, + 'color' => FILTER_DEFAULT, + 'size' => FILTER_DEFAULT, + 'style' => FILTER_DEFAULT, + 'price' => FILTER_DEFAULT, 'discount' => FILTER_DEFAULT, 'gender' => FILTER_DEFAULT, 'p_d' => FILTER_DEFAULT, @@ -223,6 +225,10 @@ class SearchController extends AbstractAction if (isset($condition['misort'])) { $condition['misort'] = rawurldecode($condition['misort']); } + // 转义价格 + if (isset($condition['price'])) { + $condition['price'] = rawurldecode($condition['price']); + } // 转换折扣 if (isset($condition['discount'])) { $condition['p_d'] = rawurldecode($condition['discount']); @@ -282,13 +288,14 @@ class SearchController extends AbstractAction // 过滤请求参数 $condition = filter_input_array(INPUT_GET, array( 'query' => FILTER_DEFAULT, - 'brand' => FILTER_VALIDATE_INT, + 'brand' => FILTER_DEFAULT, 'sort' => FILTER_DEFAULT, - 'msort' => FILTER_VALIDATE_INT, - 'misort' => FILTER_VALIDATE_INT, - 'color' => FILTER_VALIDATE_INT, - 'size' => FILTER_VALIDATE_INT, - 'price' => FILTER_VALIDATE_INT, + 'msort' => FILTER_DEFAULT, + 'misort' => FILTER_DEFAULT, + 'color' => FILTER_DEFAULT, + 'size' => FILTER_DEFAULT, + 'style' => FILTER_DEFAULT, + 'price' => FILTER_DEFAULT, 'discount' => FILTER_DEFAULT, 'gender' => FILTER_DEFAULT, 'p_d' => FILTER_DEFAULT,), false); @@ -306,6 +313,10 @@ class SearchController extends AbstractAction if (isset($condition['gender'])) { $condition['gender'] = rawurldecode($condition['gender']); } + // 转义价格 + if (isset($condition['price'])) { + $condition['price'] = rawurldecode($condition['price']); + } // 区别各种列表页面的筛选数据 $data = Product\SearchModel::getFilterData($condition); diff --git a/yohobuy/m.yohobuy.com/application/modules/Product/controllers/Index.php b/yohobuy/m.yohobuy.com/application/modules/Product/controllers/Index.php index b63510c..629cf02 100644 --- a/yohobuy/m.yohobuy.com/application/modules/Product/controllers/Index.php +++ b/yohobuy/m.yohobuy.com/application/modules/Product/controllers/Index.php @@ -25,17 +25,54 @@ class IndexController extends AbstractAction { // 过滤请求参数 $condition = filter_input_array(INPUT_GET, array( - 'brand' => FILTER_VALIDATE_INT, + 'brand' => FILTER_DEFAULT, 'sort' => FILTER_DEFAULT, 'msort' => FILTER_DEFAULT, 'misort' => FILTER_DEFAULT, - 'color' => FILTER_VALIDATE_INT, - 'size' => FILTER_VALIDATE_INT, - 'price' => FILTER_VALIDATE_INT, - 'discount' => FILTER_VALIDATE_INT, + 'color' => FILTER_DEFAULT, + 'size' => FILTER_DEFAULT, + 'style' => FILTER_DEFAULT, + 'price' => FILTER_DEFAULT, + 'discount' => FILTER_DEFAULT, 'gender' => FILTER_DEFAULT, 'p_d' => FILTER_DEFAULT,), false); + // 转义品牌 + if (isset($condition['brand'])) { + $condition['brand'] = rawurldecode($condition['brand']); + } + // 转义分类 + if (isset($condition['sort'])) { + $condition['sort'] = rawurldecode($condition['sort']); + } + // 转义一级分类 + if (isset($condition['msort'])) { + $condition['msort'] = rawurldecode($condition['msort']); + } + // 转义二级分类 + if (isset($condition['misort'])) { + $condition['misort'] = rawurldecode($condition['misort']); + } + // 转义颜色 + if (isset($condition['color'])) { + $condition['color'] = rawurldecode($condition['color']); + } + // 转义尺码 + if (isset($condition['size'])) { + $condition['size'] = rawurldecode($condition['size']); + } + // 转义风格 + if (isset($condition['style'])) { + $condition['style'] = rawurldecode($condition['style']); + } + // 转义价格 + if (isset($condition['price'])) { + $condition['price'] = rawurldecode($condition['price']); + } + // 转换折扣 + if (isset($condition['discount'])) { + $condition['p_d'] = rawurldecode($condition['discount']); + } // 性别参数,不传则从COOKIE获取 if (!isset($condition['gender'])) { $condition['gender'] = Helpers::getGenderByCookie(); @@ -54,6 +91,7 @@ class IndexController extends AbstractAction if (!$condition) { $condition = array(); } + print_r($condition); $goodList = $condition; $goodList['cartUrl'] = Helpers::url('/cart/index/index', null); @@ -112,16 +150,49 @@ class IndexController extends AbstractAction /* 过滤请求参数 */ $condition = filter_input_array(INPUT_GET, array( 'sort' => FILTER_DEFAULT, - 'msort' => FILTER_VALIDATE_INT, - 'misort' => FILTER_VALIDATE_INT, - 'color' => FILTER_VALIDATE_INT, - 'size' => FILTER_VALIDATE_INT, - 'price' => FILTER_VALIDATE_INT, - 'discount' => FILTER_VALIDATE_INT, + 'msort' => FILTER_DEFAULT, + 'misort' => FILTER_DEFAULT, + 'color' => FILTER_DEFAULT, + 'size' => FILTER_DEFAULT, + 'style' => FILTER_DEFAULT, + 'price' => FILTER_DEFAULT, + 'discount' => FILTER_DEFAULT, 'gender' => FILTER_DEFAULT, 'p_d' => FILTER_DEFAULT,), false); $condition['brand'] = $brandId; - + + // 转义分类 + if (isset($condition['sort'])) { + $condition['sort'] = rawurldecode($condition['sort']); + } + // 转义一级分类 + if (isset($condition['msort'])) { + $condition['msort'] = rawurldecode($condition['msort']); + } + // 转义二级分类 + if (isset($condition['misort'])) { + $condition['misort'] = rawurldecode($condition['misort']); + } + // 转义颜色 + if (isset($condition['color'])) { + $condition['color'] = rawurldecode($condition['color']); + } + // 转义尺码 + if (isset($condition['size'])) { + $condition['size'] = rawurldecode($condition['size']); + } + // 转义风格 + if (isset($condition['style'])) { + $condition['style'] = rawurldecode($condition['style']); + } + // 转义价格 + if (isset($condition['price'])) { + $condition['price'] = rawurldecode($condition['price']); + } + // 转换折扣 + if (isset($condition['discount'])) { + $condition['p_d'] = rawurldecode($condition['discount']); + } if ($brandId === 0) { $condition['query'] = $domain; } -- libgit2 0.24.0