Search.php 3.69 KB
<?php
use Action\WebAction;
use Product\SearchModel;
class SearchController extends WebAction
{
    public function indexAction()
    {
        /* 过滤请求参数 */
        $condition = filter_input_array(INPUT_GET, array(
            'query' => FILTER_SANITIZE_STRING,
            'brand' => FILTER_VALIDATE_INT,
            'sort' => FILTER_VALIDATE_INT,
            'msort' => FILTER_VALIDATE_INT,
            'misort' => FILTER_VALIDATE_INT,
            'color' => FILTER_VALIDATE_INT,
            'size' => FILTER_DEFAULT,
            'style' => FILTER_DEFAULT,
            'price' => FILTER_DEFAULT,
            'gender' => FILTER_DEFAULT,
            'p_d' => FILTER_DEFAULT,
            'shelve_time' => FILTER_DEFAULT,
            'isNew' => FILTER_DEFAULT,
            'specialoffer' => FILTER_DEFAULT,
            'limited' => FILTER_DEFAULT,
            'order' => FILTER_DEFAULT,
            'viewNum' => FILTER_VALIDATE_INT,
            'rowNum' => FILTER_VALIDATE_INT,
            'page' => FILTER_VALIDATE_INT), false);
        //字符转码
        foreach($condition as $key => $val){
            $condition[$key] = rawurldecode($val);
        }
        //性別(频道)
        $gender_cookie = !isset($_COOKIE['_Gender']) ? '3' : ($_COOKIE['_Gender']=='2,3' ? 2 : 1);
        $gender = $this->get('gender') ? ($this->get('gender') == '2,3' ? 2 : 1) : $gender_cookie ;
        $condition['gender'] = $gender;
        //每页显示商品数
        if(!isset($condition['viewNum']) || empty($condition['viewNum'])){
            $condition['viewNum'] =60;
        }
        $view_num_arr = array(60, 100, 200);
        if (!in_array($condition['viewNum'], $view_num_arr)) {
            $condition['viewNum'] = 60;
        }
        //每行显示的商品数量
        if(!isset($condition['rowNum']) || empty($condition['rowNum'])){
            $condition['rowNum'] =5;
        }
        if ($condition['rowNum'] == 6) {
            $imgSize = array(195, 260);
            $minImgSize = array(50, 67);
        } else {
            $condition['rowNum'] = 5;
            $imgSize = array(235, 314);
            $minImgSize = array(60, 80);
        }
        //自定义搜索价格
        if (isset($condition['price']) && !empty($condition['price'])) {
            $price = explode(',', $condition['price']);
            if (!$price[0]) {
                $price[0] = 0;
            }
            if ($price[1]) {
                $price[1] = 99999;
            }
            $condition['price'] = implode(',', $price);
        }

        //返回搜索条件
        $condition['needFilter'] = 1;
        //过滤赠品
        $condition['attribute_not'] = 2;
        /*sale*/
        //默认排序
        if (!isset($condition['order']) || empty($condition['order'])) {
            $condition['order'] = 's_n_desc';
        }
        if (!isset($condition['p_d']) || empty($condition['p_d'])) {
            $condition['p_d'] = '0,0.9';
        }
        $options = array(
            'imgSize' => $imgSize,
            'minImgSize' => $minImgSize,
            'rowNum' =>$condition['rowNum'],
            'viewNum' =>$condition['viewNum'],
        );
        $params = $condition + $_GET;
        $params = array_filter($params);
        //每页记录数减1,下一页占位
        $params['viewNum'] = $params['viewNum'] - 1;
        $options['controller'] = $this->_request->controller;
        $searchData = SearchModel::searchData($params,$options);
        $cate = array('boys','girls','kids','lifestyle');
        $this->setWebNavHeader($cate[$gender-1]);
        $data = array(
            //初始化js
            'searchListPage' => true,
            'search' => $searchData
        );
        $this->_view->display('search', $data);
    }
}