Authored by 郭成尧

'filter-params'

@@ -128,69 +128,78 @@ class SearchModel @@ -128,69 +128,78 @@ class SearchModel
128 return $result; 128 return $result;
129 } 129 }
130 130
131 - public static function filter() 131 + /**
  132 + * @param array $params 直接传筛选参数
  133 + * @return array
  134 + */
  135 + public static function filter($params = array())
132 { 136 {
133 $data = array(); 137 $data = array();
134 138
135 - $condition = filter_input_array(INPUT_GET, array(  
136 - 'query' => FILTER_DEFAULT,  
137 - 'brand' => FILTER_DEFAULT,  
138 - 'shop_id' => FILTER_DEFAULT,  
139 - 'sort' => FILTER_DEFAULT,  
140 - 'msort' => FILTER_DEFAULT,  
141 - 'misort' => FILTER_DEFAULT,  
142 - 'color' => FILTER_DEFAULT,  
143 - 'size' => FILTER_DEFAULT,  
144 - 'style' => FILTER_DEFAULT,  
145 - 'price' => FILTER_DEFAULT,  
146 - 'discount' => FILTER_DEFAULT,  
147 - 'gender' => FILTER_DEFAULT,  
148 - 'channel' => FILTER_DEFAULT,  
149 - 'ageLevel' => FILTER_DEFAULT,  
150 - 'p_d' => FILTER_DEFAULT,  
151 - 'filter_poolId' => FILTER_DEFAULT  
152 - ), false);  
153 -  
154 - // 转义分类  
155 - if (isset($condition['sort'])) {  
156 - $condition['sort'] = rawurldecode($condition['sort']);  
157 - }  
158 - // 转义分类  
159 - if (isset($condition['msort'])) {  
160 - $condition['msort'] = rawurldecode($condition['msort']);  
161 - }  
162 - // 转义分类  
163 - if (isset($condition['misort'])) {  
164 - $condition['misort'] = rawurldecode($condition['misort']);  
165 - }  
166 - // 转义颜色  
167 - if (isset($condition['color'])) {  
168 - $condition['color'] = rawurldecode($condition['color']);  
169 - }  
170 - //  
171 - if (isset($condition['ageLevel'])) {  
172 - $condition['age_level'] = rawurldecode($condition['ageLevel']);  
173 - unset($condition['ageLevel']);  
174 - }  
175 - // 为了兼容现在运营在用的p_d  
176 - if (isset($condition['p_d'])) {  
177 - $condition['p_d'] = rawurldecode($condition['p_d']);  
178 - } // 转换折扣  
179 - elseif (isset($condition['discount'])) {  
180 - $condition['p_d'] = rawurldecode($condition['discount']);  
181 - unset($condition['discount']);  
182 - }  
183 - // 转义性别  
184 - if (isset($condition['gender'])) {  
185 - $condition['gender'] = rawurldecode($condition['gender']);  
186 - }  
187 - // 转义价格  
188 - if (isset($condition['price'])) {  
189 - $condition['price'] = rawurldecode($condition['price']);  
190 - }  
191 - // 转义风格  
192 - if (isset($condition['style'])) {  
193 - $condition['style'] = rawurldecode($condition['style']); 139 + if (empty($params)) {
  140 + $condition = filter_input_array(INPUT_GET, array(
  141 + 'query' => FILTER_DEFAULT,
  142 + 'brand' => FILTER_DEFAULT,
  143 + 'shop_id' => FILTER_DEFAULT,
  144 + 'sort' => FILTER_DEFAULT,
  145 + 'msort' => FILTER_DEFAULT,
  146 + 'misort' => FILTER_DEFAULT,
  147 + 'color' => FILTER_DEFAULT,
  148 + 'size' => FILTER_DEFAULT,
  149 + 'style' => FILTER_DEFAULT,
  150 + 'price' => FILTER_DEFAULT,
  151 + 'discount' => FILTER_DEFAULT,
  152 + 'gender' => FILTER_DEFAULT,
  153 + 'channel' => FILTER_DEFAULT,
  154 + 'ageLevel' => FILTER_DEFAULT,
  155 + 'p_d' => FILTER_DEFAULT,
  156 + 'filter_poolId' => FILTER_DEFAULT
  157 + ), false);
  158 +
  159 + // 转义分类
  160 + if (isset($condition['sort'])) {
  161 + $condition['sort'] = rawurldecode($condition['sort']);
  162 + }
  163 + // 转义分类
  164 + if (isset($condition['msort'])) {
  165 + $condition['msort'] = rawurldecode($condition['msort']);
  166 + }
  167 + // 转义分类
  168 + if (isset($condition['misort'])) {
  169 + $condition['misort'] = rawurldecode($condition['misort']);
  170 + }
  171 + // 转义颜色
  172 + if (isset($condition['color'])) {
  173 + $condition['color'] = rawurldecode($condition['color']);
  174 + }
  175 + //
  176 + if (isset($condition['ageLevel'])) {
  177 + $condition['age_level'] = rawurldecode($condition['ageLevel']);
  178 + unset($condition['ageLevel']);
  179 + }
  180 + // 为了兼容现在运营在用的p_d
  181 + if (isset($condition['p_d'])) {
  182 + $condition['p_d'] = rawurldecode($condition['p_d']);
  183 + } // 转换折扣
  184 + elseif (isset($condition['discount'])) {
  185 + $condition['p_d'] = rawurldecode($condition['discount']);
  186 + unset($condition['discount']);
  187 + }
  188 + // 转义性别
  189 + if (isset($condition['gender'])) {
  190 + $condition['gender'] = rawurldecode($condition['gender']);
  191 + }
  192 + // 转义价格
  193 + if (isset($condition['price'])) {
  194 + $condition['price'] = rawurldecode($condition['price']);
  195 + }
  196 + // 转义风格
  197 + if (isset($condition['style'])) {
  198 + $condition['style'] = rawurldecode($condition['style']);
  199 + }
  200 +
  201 + } else {
  202 + $condition = $params;
194 } 203 }
195 204
196 // 区别各种列表页面的筛选数据 205 // 区别各种列表页面的筛选数据
@@ -306,7 +315,7 @@ class SearchModel @@ -306,7 +315,7 @@ class SearchModel
306 $order = empty($_GET['order']) ? 0 : $_GET['order']; 315 $order = empty($_GET['order']) ? 0 : $_GET['order'];
307 $condition['order'] = Helpers::transOrder($order, $_GET['type']); 316 $condition['order'] = Helpers::transOrder($order, $_GET['type']);
308 317
309 - /* 如果参数不为空是直接调用 */ 318 + /* 如果参数不为空是直接调用 */
310 } else { 319 } else {
311 $condition = $params; 320 $condition = $params;
312 } 321 }
@@ -485,19 +485,26 @@ class IndexController extends AbstractAction @@ -485,19 +485,26 @@ class IndexController extends AbstractAction
485 exit; 485 exit;
486 } 486 }
487 487
488 - $filter = Product\SearchModel::filter(); 488 + /* tar add 160826 */
  489 + $data['shopIdForFilter'] = $shopId;
  490 + $data['gender'] = $this->get('gender');
  491 + $data['channel'] = $this->get('yh_channel') ? $this->get('yh_channel') : Helpers::getChannelByCookie();
  492 +
  493 + $filter = Product\SearchModel::filter(array(
  494 + 'shop' => $shopId,
  495 + 'gender' => $data['gender'],
  496 + 'channel' => $data['channel']
  497 + ));
  498 +
489 $data['filter'] = $filter['filter']; 499 $data['filter'] = $filter['filter'];
490 500
491 /* tar add 160931 */ 501 /* tar add 160931 */
492 $data['goods'] = \Product\SearchModel::search(array( 502 $data['goods'] = \Product\SearchModel::search(array(
493 - 'shop' => $shopId 503 + 'shop' => $shopId,
  504 + 'gender' => $data['gender'],
  505 + 'channel' => $data['channel']
494 )); 506 ));
495 507
496 - /* tar add 160826 */  
497 - $data['shopIdForFilter'] = $shopId;  
498 - $data['gender'] = $this->get('gender');  
499 - $data['channel'] = $this->get('yh_channel') ? $this->get('yh_channel') : Helpers::getChannelByCookie();  
500 -  
501 $this->_view->display('shop', array( 508 $this->_view->display('shop', array(
502 'shopIndex' => $data, 509 'shopIndex' => $data,
503 'shopPage' => array( 510 'shopPage' => array(