Authored by Rock Zhang

'添加列表页的筛选接口

{{> filter}}
\ No newline at end of file
... ...
... ... @@ -203,20 +203,9 @@ class SearchController extends AbstractAction
// 转换排序方式
$page = $this->get('page', 1);
$order = $this->get('order', 0);
$orderVal = $this->get('order', 0);
$type = $this->get('type', '');
switch ($type) {
case 'price':
$order = ($order == 0) ? 's_p_desc' : 's_p_asc';
break;
case 'discount':
$order = ($order == 0) ? 'p_d_desc' : 'p_d_asc';
break;
case 'newest':
default:
$order = ($order == 0) ? 's_t_desc' : 's_t_asc';
break;
}
$order = Helpers::transOrder($orderVal, $type);
$data = array();
// 查询品类或品牌数据
... ... @@ -258,6 +247,56 @@ class SearchController extends AbstractAction
}
/**
* Ajax异步获取筛选数据
* @return array 筛选数据
*/
public function filterAction()
{
if ($this->isAjax()) {
// 过滤请求参数
$condition = filter_input_array(INPUT_GET, array(
'query' => FILTER_DEFAULT,
'brand' => FILTER_VALIDATE_INT,
'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_DEFAULT,
'gender' => FILTER_DEFAULT,
'p_d' => FILTER_DEFAULT,), false);
if (isset($condition['sort'])) {
$condition['sort'] = rawurldecode($condition['sort']);
}
if (isset($condition['discount'])) {
$condition['p_d'] = rawurldecode($condition['discount']);
unset($condition['discount']);
}
if (isset($condition['gender'])) {
$condition['gender'] = rawurldecode($condition['gender']);
}
$data = array();
$listData = SearchData::searchByCondition($condition);
// 处理返回的数据
if (isset($listData['data']) && isset($listData['data']['filter'])) {
$data['filter'] = ListProcess::getFilterData($listData['data']['filter']);
}
$listData = array();
if (empty($data)) {
echo ' ';
} else {
$this->_view->display('filter', $data);
}
} else {
echo ' ';
}
}
/**
* 模糊搜索指定字符
*
* @return array 模糊搜索的结果
... ...