Toggle navigation
Toggle navigation
This project
Loading...
Sign in
wangshusheng
/
YOHOBUYPC
·
Commits
Go to a project
GitLab
Go to dashboard
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
0
Merge Requests
0
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Email Patches
Plain Diff
Browse Files
Authored by
周少峰
9 years ago
Commit
3fe77a71c6dcf8403a88ac1c633d4131c4d5fa6f
1 parent
fd20113c
代码整理,条件处理到model公用
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
56 additions
and
118 deletions
library/Plugin/HelperSearch.php
yohobuy/www.yohobuy.com/application/models/Product/Search.php
yohobuy/www.yohobuy.com/application/modules/Product/controllers/List.php
yohobuy/www.yohobuy.com/application/modules/Product/controllers/Search.php
library/Plugin/HelperSearch.php
View file @
3fe77a7
...
...
@@ -107,15 +107,23 @@ class HelperSearch
//左侧分类分类
$result
[
'leftContent'
][][
'allSort'
]
=
isset
(
$data
[
'sort'
])
?
self
::
groupSort
(
$data
[
'sort'
][
'sort'
])
:
array
();
//一周新品上架
$result
[
'leftContent'
][][
'newSales'
]
=
isset
(
$data
[
'recent'
])
?
self
::
recentShelve
(
$data
[
'recent'
])
:
array
();
$result
[
'leftContent'
][][
'newSales'
]
=
isset
(
$data
[
'recent'
])
?
self
::
recentShelve
(
$data
[
'recent'
]
[
'recent'
]
)
:
array
();
//全部折扣
$result
[
'leftContent'
][][
'allDiscount'
]
=
isset
(
$data
[
'discount'
])
?
self
::
getDiscount
(
$data
[
'discount'
][
'discount'
])
:
array
();
//总记录数
$result
[
'totalCount'
]
=
$data
[
'product'
][
'total'
];
//品牌店铺信息
$result
[
'shopEntry'
]
=
isset
(
$data
[
'shop'
])
&&
!
empty
(
$data
[
'shop'
])
?
self
::
shop
(
$data
[
'shop'
],
$data
[
'sort'
][
'sort'
])
:
array
();
//分页
$result
[
'pager'
]
=
self
::
pager
(
$result
[
'totalCount'
],
$options
[
'viewNum'
]);
//选中条件
$result
[
'filters'
][
'checkedConditions'
][
'conditions'
]
=
self
::
getSelected
();
if
(
self
::
getSelected
())
{
$result
[
'filters'
][
'checkedConditions'
][
'conditions'
]
=
self
::
getSelected
();
}
//没有选中
else
{
$result
[
'filters'
][
'checkedConditions'
]
=
array
();
}
if
(
isset
(
$options
[
'controller'
])
&&
$options
[
'controller'
]
==
'Search'
)
{
self
::
setSearchNav
(
$data
[
'product'
][
'total'
]);
}
...
...
@@ -202,7 +210,7 @@ class HelperSearch
'href'
=>
self
::
buildUrl
(
array_merge
(
$params
,
array
(
'parameter_'
.
$val
[
'standard_id'
]
=>
$pval
[
'standard_id'
]
)))
,
'
select
ed'
=>
isset
(
self
::
$params
[
'parameter_'
.
$val
[
'standard_id'
]])
&&
self
::
$params
[
'parameter_'
.
$val
[
'standard_id'
]]
==
$pval
[
'standard_id'
]
?
true
:
false
'
check
ed'
=>
isset
(
self
::
$params
[
'parameter_'
.
$val
[
'standard_id'
]])
&&
self
::
$params
[
'parameter_'
.
$val
[
'standard_id'
]]
==
$pval
[
'standard_id'
]
?
true
:
false
);
}
if
(
!
empty
(
$sub
)
&&
count
(
$sub
)
>
1
)
{
...
...
@@ -245,8 +253,9 @@ class HelperSearch
$result
[]
=
array
(
'name'
=>
$val
,
'href'
=>
self
::
buildUrl
(
array_merge
(
$params
,
array
(
'gender'
=>
$key
'gender'
=>
$key
,
)))
,
'checked'
=>
isset
(
self
::
$params
[
'gender'
])
&&
self
::
$params
[
'gender'
]
==
$key
?
true
:
false
);
}
return
$result
;
...
...
@@ -394,7 +403,7 @@ class HelperSearch
'href'
=>
$url
,
'name'
=>
$v
[
'brand_name'
],
'key'
=>
strtolower
(
$v
[
'brand_name'
]),
'
active
'
=>
in_array
(
$v
[
'id'
],
$brandIds
)
?
true
:
false
'
checked
'
=>
in_array
(
$v
[
'id'
],
$brandIds
)
?
true
:
false
);
if
(
is_numeric
(
$v
[
'brand_alif'
]))
{
$this_brand
[
'index'
]
=
'0-9'
;
...
...
@@ -1065,13 +1074,16 @@ class HelperSearch
/**
* 组织品牌店铺信息
* @param
$shop
* @param
$shopSort
* @return array
*/
public static function shop(
$shop
)
public static function shop(
$shop
,
$shopSort
)
{
$url
= Helpers::url('','',
$shop['brand_domain']
);
$shopEntry
= array();
$sort
= array();
foreach (
$shop
['sort']
as
$msort
) {
foreach (
$shop
Sort
as
$msort
) {
if (!isset(
$msort['sub']
) || empty(
$msort['sub']
)) {
continue;
}
...
...
@@ -1219,9 +1231,17 @@ class HelperSearch
// {
// return Yohobuy::httpBuildQuery(self::getUrl('review'),
$param
);
// }
/**
* 获取品牌店铺接口地址
* @param
$param
* @return string
*/
public static function getShopUrl(
$param
)
{
return Yohobuy::httpBuildQuery(self::getUrl('shop'),
$param
);
}
/**
* 获取搜索的服务地址
*
...
...
yohobuy/www.yohobuy.com/application/models/Product/Search.php
View file @
3fe77a7
...
...
@@ -24,12 +24,12 @@ class SearchModel
* @param $option
* @return mixed
*/
public
static
function
S
earchCondition
(
$param
,
$option
)
public
static
function
s
earchCondition
(
$param
,
$option
)
{
/* 过滤请求参数 */
$condition
=
filter_input_array
(
INPUT_GET
,
array
(
'query'
=>
FILTER_SANITIZE_STRING
,
'brand'
=>
FILTER_
VALIDATE_INT
,
'brand'
=>
FILTER_
SANITIZE_STRING
,
'sort'
=>
FILTER_VALIDATE_INT
,
'msort'
=>
FILTER_VALIDATE_INT
,
'misort'
=>
FILTER_VALIDATE_INT
,
...
...
@@ -51,6 +51,10 @@ class SearchModel
if
(
isset
(
$condition
[
'query'
])
&&
!
empty
(
$condition
[
'query'
]))
{
$condition
[
'query'
]
=
rawurldecode
(
$condition
[
'query'
]);
}
//品牌
if
(
isset
(
$condition
[
'brand'
])
&&
!
empty
(
$condition
[
'brand'
]))
{
$condition
[
'brand'
]
=
rawurldecode
(
$condition
[
'brand'
]);
}
//性别
if
(
isset
(
$condition
[
'gender'
])
&&
!
empty
(
$condition
[
'gender'
]))
{
$condition
[
'gender'
]
=
rawurldecode
(
$condition
[
'gender'
]);
...
...
@@ -128,7 +132,7 @@ class SearchModel
* @param array $customOptions
* @return array
*/
public
static
function
get
Search
Data
(
$customCondition
=
array
(),
$customOptions
=
array
())
public
static
function
get
List
Data
(
$customCondition
=
array
(),
$customOptions
=
array
())
{
$urlList
=
array
();
$searchCondition
=
self
::
searchCondition
(
$customCondition
,
$customOptions
);
...
...
@@ -144,14 +148,6 @@ class SearchModel
//$urlList['reviewUrl'] = HelperSearch::getReviewUrl($searchCondition['condition']);
$result
=
Yohobuy
::
getMulti
(
$urlList
,
array
(),
true
);
// print_r($result['product']);
// print_r($result['sort']);
// print_r($result['discount']);
// print_r($result['recent']);
// exit;
// 组织模板数据
$data
=
HelperSearch
::
getList
(
$result
,
$searchCondition
[
'options'
]);
return
$data
;
...
...
@@ -159,30 +155,27 @@ class SearchModel
/**
* 搜索页面获取搜索数据
* @param $condition
* @param $options
* @param $customCondition
* @param $customOptions
* @return array
*/
public
static
function
searchData
(
$c
ondition
,
$o
ptions
)
public
static
function
searchData
(
$c
ustomCondition
,
$customO
ptions
)
{
$data
=
self
::
getSearchData
(
$condition
,
$options
);
//获取品牌店铺信息
if
(
isset
(
$condition
[
'query'
]))
{
$param
[
'keyword'
]
=
$condition
[
'query'
];
$result
=
SearchData
::
getShop
(
$param
);
if
(
isset
(
$result
[
'code'
])
&&
$result
[
'code'
]
===
200
&&
isset
(
$result
[
'data'
])
&&
!
empty
(
$result
[
'data'
]))
{
//调用品牌分类
$class
[
'brand'
]
=
$result
[
'data'
][
'id'
];
$brandSort
=
SearchData
::
getClassesData
(
$class
);
$shop
=
$result
[
'data'
];
if
(
isset
(
$brandSort
[
'data'
][
'sort'
])
&&
!
empty
(
$brandSort
[
'data'
][
'sort'
]))
$shop
[
'sort'
]
=
$brandSort
[
'data'
][
'sort'
];
$shopEntry
=
HelperSearch
::
shop
(
$shop
);
}
}
$data
[
'shopEntry'
]
=
isset
(
$shopEntry
)
?
$shopEntry
:
array
();
$urlList
=
array
();
$searchCondition
=
self
::
searchCondition
(
$customCondition
,
$customOptions
);
// 组合搜索商品url
$urlList
[
'product'
]
=
HelperSearch
::
getProductUrl
(
$searchCondition
[
'condition'
]);
// 组合搜索分类url
$urlList
[
'sort'
]
=
HelperSearch
::
getClassesUrl
(
$searchCondition
[
'condition'
]);
// 组合搜索店铺url
$param
[
'keyword'
]
=
$searchCondition
[
'condition'
][
'query'
];
$urlList
[
'shop'
]
=
HelperSearch
::
getShopUrl
(
$param
);
//用户浏览记录
//$urlList['reviewUrl'] = HelperSearch::getReviewUrl($searchCondition['condition']);
$result
=
Yohobuy
::
getMulti
(
$urlList
,
array
(),
true
);
// 组织模板数据
$data
=
HelperSearch
::
getList
(
$result
,
$searchCondition
[
'options'
]);
return
$data
;
}
/**
* 根据product_sn查询产品图片信息
...
...
yohobuy/www.yohobuy.com/application/modules/Product/controllers/List.php
View file @
3fe77a7
...
...
@@ -17,87 +17,12 @@ class ListController extends WebAction
*/
public
function
saleAction
()
{
/* 过滤请求参数 */
$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
);
//字符转码
if
(
!
empty
(
$condition
))
{
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
);
}
//返回搜索条件
$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
;
$list
=
SearchModel
::
getSearchData
(
$params
,
$options
);
$list
=
SearchModel
::
getListData
();
$data
=
array
(
//初始化js
'productListPage'
=>
true
,
'list'
=>
$list
);
$cate
=
array
(
'boys'
,
'girls'
,
'kids'
,
'lifestyle'
);
$this
->
setWebNavHeader
(
$cate
[
$gender
-
1
]);
$this
->
_view
->
display
(
'list'
,
$data
);
}
...
...
yohobuy/www.yohobuy.com/application/modules/Product/controllers/Search.php
View file @
3fe77a7
...
...
@@ -7,12 +7,12 @@ class SearchController extends WebAction
{
$options
[
'controller'
]
=
$this
->
_request
->
controller
;
$searchData
=
SearchModel
::
searchData
(
array
(),
$options
);
$this
->
setWebNavHeader
();
$data
=
array
(
//初始化js
'searchListPage'
=>
true
,
'search'
=>
$searchData
);
$this
->
setWebNavHeader
();
$this
->
_view
->
display
(
'search'
,
$data
);
}
}
\ No newline at end of file
...
...
Please
register
or
login
to post a comment