Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
yii2_fecshop
提交
e0ee292a
Y
yii2_fecshop
项目概览
OpenDocCN
/
yii2_fecshop
通知
18
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Y
yii2_fecshop
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e0ee292a
编写于
8月 16, 2017
作者:
T
Terry
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
appserver 分类部分的产品属性过滤的api
上级
4be187c1
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
54 addition
and
34 deletion
+54
-34
app/appserver/modules/Catalog/controllers/CategoryController.php
...server/modules/Catalog/controllers/CategoryController.php
+54
-34
未找到文件。
app/appserver/modules/Catalog/controllers/CategoryController.php
浏览文件 @
e0ee292a
...
...
@@ -264,8 +264,10 @@ class CategoryController extends AppserverController
$current_fileter_unselect
=
$this
->
_category
[
'filter_product_attr_unselected'
];
$current_fileter_select_arr
=
$this
->
getFilterArr
(
$current_fileter_select
);
$current_fileter_unselect_arr
=
$this
->
getFilterArr
(
$current_fileter_unselect
);
//var_dump($current_fileter_select_arr);
$filter_attrs
=
array_merge
(
$filter_default
,
$current_fileter_select_arr
);
$filter_attrs
=
array_diff
(
$filter_attrs
,
$current_fileter_unselect_arr
);
$filter_attrs
=
array_unique
(
$filter_attrs
);
$this
->
_filter_attr
=
$filter_attrs
;
}
...
...
@@ -276,36 +278,29 @@ class CategoryController extends AppserverController
*/
protected
function
getRefineByInfo
()
{
$get_arr
=
Yii
::
$app
->
request
->
get
();
//var_dump($get_arr);
if
(
is_array
(
$get_arr
)
&&
!
empty
(
$get_arr
))
{
$refineInfo
=
[];
$filter_attrs
=
$this
->
getFilterAttr
();
$filter_attrs
[]
=
'price'
;
$currentUrl
=
Yii
::
$service
->
url
->
getCurrentUrl
();
foreach
(
$get_arr
as
$k
=>
$v
)
{
$attr
=
Yii
::
$service
->
url
->
category
->
urlStrConvertAttrVal
(
$k
);
//echo $attr;
if
(
in_array
(
$attr
,
$filter_attrs
))
{
if
(
$attr
==
'price'
)
{
$refine_attr_str
=
$this
->
getFormatFilterPrice
(
$v
);
//$refine_attr_str = Yii::$service->url->category->urlStrConvertAttrVal($v);
}
else
{
$refine_attr_str
=
Yii
::
$service
->
url
->
category
->
urlStrConvertAttrVal
(
$v
);
}
$removeUrlParamStr
=
$k
.
'='
.
$v
;
$refine_attr_url
=
Yii
::
$service
->
url
->
removeUrlParamVal
(
$currentUrl
,
$removeUrlParamStr
);
$refineInfo
[]
=
[
'name'
=>
$refine_attr_str
,
'url'
=>
$refine_attr_url
,
];
}
$refineInfo
=
[];
$chosenAttrs
=
Yii
::
$app
->
request
->
get
(
'filterAttrs'
);
$chosenAttrArr
=
json_decode
(
$chosenAttrs
,
true
);
if
(
!
empty
(
$chosenAttrArr
)){
foreach
(
$chosenAttrArr
as
$attr
=>
$val
)
{
$refineInfo
[]
=
[
'attr'
=>
$attr
,
'val'
=>
$val
,
];
}
}
$currenctPriceFilter
=
Yii
::
$app
->
request
->
get
(
$this
->
_filterPrice
);
if
(
$currenctPriceFilter
){
$refineInfo
[]
=
[
'attr'
=>
$this
->
_filterPrice
,
'val'
=>
$currenctPriceFilter
,
];
}
if
(
!
empty
(
$refineInfo
))
{
$arr
[]
=
[
'
name'
=>
'clear a
ll'
,
'
url'
=>
Yii
::
$service
->
url
->
getCurrentUrlNoParam
()
,
'
attr'
=>
'clearA
ll'
,
'
val'
=>
'clear all'
,
];
$refineInfo
=
array_merge
(
$arr
,
$refineInfo
);
}
...
...
@@ -319,9 +314,29 @@ class CategoryController extends AppserverController
{
$filter_info
=
[];
$filter_attrs
=
$this
->
getFilterAttr
();
$chosenAttrs
=
Yii
::
$app
->
request
->
get
(
'filterAttrs'
);
$chosenAttrArr
=
json_decode
(
$chosenAttrs
,
true
);
foreach
(
$filter_attrs
as
$attr
)
{
if
(
$attr
!=
'price'
)
{
$filter_info
[
$attr
]
=
Yii
::
$service
->
product
->
getFrontCategoryFilter
(
$attr
,
$this
->
_where
);
$label
=
preg_replace_callback
(
'/([-_]+([a-z]{1}))/i'
,
function
(
$matches
){
return
' '
.
strtoupper
(
$matches
[
2
]);
},
$attr
);
$items
=
Yii
::
$service
->
product
->
getFrontCategoryFilter
(
$attr
,
$this
->
_where
);
if
(
is_array
(
$items
)
&&
!
empty
(
$items
)){
foreach
(
$items
as
$k
=>
$one
){
if
(
isset
(
$chosenAttrArr
[
$attr
])
&&
$chosenAttrArr
[
$attr
]
==
$one
[
'_id'
]){
$items
[
$k
][
'selected'
]
=
true
;
}
else
{
$items
[
$k
][
'selected'
]
=
false
;
}
}
}
$filter_info
[
$attr
]
=
[
'label'
=>
$label
,
'items'
=>
$items
,
];
}
}
...
...
@@ -545,13 +560,18 @@ class CategoryController extends AppserverController
*/
protected
function
initWhere
()
{
$filterAttr
=
$this
->
getFilterAttr
();
foreach
(
$filterAttr
as
$attr
)
{
$attrUrlStr
=
Yii
::
$service
->
url
->
category
->
attrValConvertUrlStr
(
$attr
);
$val
=
Yii
::
$app
->
request
->
get
(
$attrUrlStr
);
if
(
$val
)
{
$val
=
Yii
::
$service
->
url
->
category
->
urlStrConvertAttrVal
(
$val
);
$where
[
$attr
]
=
$val
;
$chosenAttrs
=
Yii
::
$app
->
request
->
get
(
'filterAttrs'
);
$chosenAttrArr
=
json_decode
(
$chosenAttrs
,
true
);
//var_dump($chosenAttrArr);
if
(
is_array
(
$chosenAttrArr
)
&&
!
empty
(
$chosenAttrArr
)){
$filterAttr
=
$this
->
getFilterAttr
();
//var_dump($filterAttr);
foreach
(
$filterAttr
as
$attr
)
{
if
(
isset
(
$chosenAttrArr
[
$attr
])
&&
$chosenAttrArr
[
$attr
]){
$where
[
$attr
]
=
$chosenAttrArr
[
$attr
];
}
}
}
$filter_price
=
Yii
::
$app
->
request
->
get
(
$this
->
_filterPrice
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录