Toggle navigation
Toggle navigation
This project
Loading...
Sign in
fe
/
YOHOBUYPC
·
Commits
Go to a project
GitLab
Go to group
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
0
Merge Requests
2
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Plain Diff
Browse Files
Authored by
weiqingting
9 years ago
Commit
2cebc90ddd22e43e32bb911b8fceaf60c014b667
2 parents
6735330b
d93df2c6
Merge branch 'develop' of
http://git.dev.yoho.cn/web/yohobuy
into develop
Hide whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
761 additions
and
368 deletions
library/LibModels/Web/Product/SearchData.php
library/Plugin/HelperSearch.php
static/sass/me/_home.scss
template/m.yohobuy.com/actions/index/home/index.phtml
template/www.yohobuy.com/actions/passport/back/reset-pwd.phtml
template/www.yohobuy.com/actions/passport/back/verification.phtml
template/www.yohobuy.com/actions/passport/login/index.phtml
template/www.yohobuy.com/actions/product/index/hotrank.phtml
template/www.yohobuy.com/actions/product/index1/hotrank.phtml
template/www.yohobuy.com/actions/product/search/search.phtml
template/www.yohobuy.com/partials/layout/page-header.phtml
template/www.yohobuy.com/partials/passport/register.phtml
web-static/js/common.js
web-static/js/header.js
web-static/js/passport/login.js
web-static/js/passport/reg.js
web-static/sass/passport/_login.scss
web-static/sass/product/_index.scss
yohobuy/www.yohobuy.com/application/Bootstrap.php
yohobuy/www.yohobuy.com/application/models/Passport/Passport.php
yohobuy/www.yohobuy.com/application/models/Product/Search.php
yohobuy/www.yohobuy.com/application/modules/Passport/controllers/Back.php
yohobuy/www.yohobuy.com/application/modules/Passport/controllers/Login.php
yohobuy/www.yohobuy.com/application/modules/Product/controllers/List.php
yohobuy/www.yohobuy.com/application/modules/Product/controllers/Search.php
library/LibModels/Web/Product/SearchData.php
View file @
2cebc90
...
...
@@ -4,6 +4,7 @@ namespace LibModels\Web\Product;
use
Api\Yohobuy
;
class
SearchData
extends
\LibModels\Wap\Product\SearchData
{
public
static
$shops_url
=
'http://101.200.31.165/yohosearch/shops.json'
;
/**
* 获取搜索的服务地址
*
...
...
@@ -129,6 +130,16 @@ class SearchData extends \LibModels\Wap\Product\SearchData
}
/**
* 搜索品牌店铺信息
* @param array $params 参数
* @return array
*/
public
static
function
getShop
(
array
$params
)
{
return
Yohobuy
::
get
(
self
::
$shops_url
,
$params
);
}
/**
* 获取最近浏览记录
* @param int $limit
* @return json
...
...
library/Plugin/HelperSearch.php
View file @
2cebc90
...
...
@@ -13,8 +13,7 @@ class HelperSearch
*/
public
static
$params
=
array
();
private
static
$from
=
''
;
public
static
$options
=
array
();
//当前页
public
static
$page
=
1
;
...
...
@@ -29,19 +28,13 @@ class HelperSearch
*/
public
static
$listnav
=
array
();
private
static
function
setFrom
(
$from
=
''
)
{
if
(
$from
)
{
self
::
$from
=
$from
;
}
}
//设置导航
private
static
function
setListNav
(
$option
=
array
()
)
private
static
function
setListNav
()
{
$options
=
self
::
$options
;
$cookieChannel
=
isset
(
$_COOKIE
[
'_Channel'
])
?
$_COOKIE
[
'_Channel'
]
:
'boys'
;
if
(
isset
(
$option
[
'brandName'
])
&&
!
empty
(
$option
[
'brandName'
]))
{
$initNav
=
$option
[
'brandName'
];
if
(
isset
(
$options
[
'brandName'
])
&&
!
empty
(
$options
[
'brandName'
]))
{
$initNav
=
$options
[
'brandName'
];
}
else
{
$initNav
=
'列表'
;
}
...
...
@@ -64,6 +57,7 @@ class HelperSearch
{
$result
=
array
();
self
::
$params
=
$_GET
;
self
::
$options
=
$options
;
unset
(
self
::
$params
[
'/'
]);
unset
(
self
::
$params
[
'page'
]);
unset
(
self
::
$params
[
'/sale'
]);
...
...
@@ -80,10 +74,8 @@ class HelperSearch
$result
[
'filters'
][
'checkedConditions'
][
'clearUrl'
]
=
self
::
current
();
//频道
$result
[
'filters'
][
'channel'
]
=
self
::
gender
(
$filter
);
//分类
$result
[
'filters'
][
'sort'
]
=
array
();
//品牌
$result
[
'filters'
][
'brand'
]
=
self
::
brand
(
$filter
,
$options
);
$result
[
'filters'
][
'brand'
]
=
self
::
brand
(
$filter
);
//价格
$result
[
'filters'
][
'price'
]
=
self
::
price
(
$filter
);
$result
[
'filters'
][
'customPrice'
]
=
self
::
customPrice
(
$filter
);
...
...
@@ -109,8 +101,10 @@ class HelperSearch
$result
[
'opts'
][
'pageCount'
]
=
$data
[
'data'
][
'page_total'
];
$result
[
'opts'
][
'nextHref'
]
=
(
$next
=
self
::
next
(
$data
[
'data'
][
'page_total'
],
$data
[
'data'
][
'filter'
]))
?
$next
[
'href'
]
:
''
;
$result
[
'hasNextPage'
]
=
self
::
next
(
$data
[
'data'
][
'page_total'
]);
//分类
$result
[
'leftContent'
][][
'allSort'
]
=
isset
(
$filter
[
'group_sort'
])
?
self
::
groupSort
(
$filter
[
'group_sort'
],
$options
)
:
array
();
//分类条件
$result
[
'filters'
][
'sort'
]
=
isset
(
$filter
[
'group_sort'
])
?
self
::
searchSort
(
$filter
[
'group_sort'
])
:
array
();
//左侧分类分类
$result
[
'leftContent'
][][
'allSort'
]
=
isset
(
$filter
[
'group_sort'
])
?
self
::
groupSort
(
$filter
[
'group_sort'
])
:
array
();
//一周新品上架
$result
[
'leftContent'
][][
'newSales'
]
=
isset
(
$filter
[
'recent'
])
?
self
::
recentShelve
(
$filter
[
'recent'
])
:
array
();
//全部折扣
...
...
@@ -121,6 +115,9 @@ class HelperSearch
$result
[
'pager'
]
=
self
::
pager
(
$result
[
'totalCount'
],
$options
[
'viewNum'
]);
//选中条件
$result
[
'filters'
][
'checkedConditions'
][
'conditions'
]
=
self
::
getSelected
();
if
(
isset
(
$options
[
'controller'
])
&&
$options
[
'controller'
]
==
'Search'
)
{
self
::
setSearchNav
(
$data
[
'data'
][
'total'
]);
}
$result
[
'pathNav'
]
=
self
::
$listnav
;
return
$result
;
}
...
...
@@ -193,6 +190,9 @@ class HelperSearch
'name'
=>
$pval
[
'standard_name'
],
'href'
=>
self
::
buildUrl
(
$tmpParams
)
);
if
(
self
::
checkSearch
(
'parameter_'
.
$val
[
'standard_id'
]))
{
return
array
();
}
}
$sub
[]
=
array
(
'name'
=>
$pval
[
'standard_name'
],
...
...
@@ -232,6 +232,10 @@ class HelperSearch
'href'
=>
self
::
buildUrl
(
$params
)
);
}
if
(
self
::
checkSearch
(
'gender'
))
{
return
array
();
}
$result
=
array
();
foreach
(
$filter
[
'gender'
]
as
$key
=>
$val
)
{
$result
[]
=
array
(
...
...
@@ -247,14 +251,18 @@ class HelperSearch
/**
* 组织搜索列表页面的左侧分类
* @param array $sort
* @param array $option
* @return array
*/
public
static
function
groupSort
(
$sort
,
$option
=
array
()
)
public
static
function
groupSort
(
$sort
)
{
$options
=
self
::
$options
;
if
(
isset
(
$options
[
'controller'
])
&&
$options
[
'controller'
]
!=
'Search'
)
{
return
array
();
}
//设置导航
self
::
setListNav
(
$option
);
self
::
setListNav
(
$option
s
);
$params
=
self
::
$params
;
$result
=
array
(
'all'
=>
array
(
...
...
@@ -294,16 +302,48 @@ class HelperSearch
}
}
$result
[
'list'
]
=
$sortList
;
return
$result
;
}
public
static
function
searchSort
(
$sort
)
{
$result
=
array
();
$options
=
self
::
$options
;
if
(
!
isset
(
$options
[
'controller'
])
||
$options
[
'controller'
]
!=
'Search'
)
{
return
$result
;
}
$params
=
self
::
$params
;
foreach
(
$sort
as
$key
=>
$val
)
{
$result
[
$key
][
'id'
]
=
$val
[
'sort_id'
];
$result
[
$key
][
'name'
]
=
$val
[
'sort_name'
];
if
(
isset
(
$val
[
'sub'
])
&&
!
empty
(
$val
[
'sub'
]))
{
foreach
(
$val
[
'sub'
]
as
$k
=>
$v
)
{
$result
[
$key
][
'sub'
][
$k
][
'href'
]
=
self
::
buildUrl
(
array
(
'msort'
=>
$val
[
'sort_id'
],
'misort'
=>
$v
[
'sort_id'
]));
$result
[
$key
][
'sub'
][
$k
][
'name'
]
=
$v
[
'sort_name'
];
if
(
isset
(
$params
[
'misort'
])
&&
$params
[
'misort'
]
==
$v
[
'sort_id'
])
{
unset
(
$params
[
'misort'
]);
self
::
$selected
[
'sort'
]
=
array
(
'name'
=>
$v
[
'sort_name'
],
'href'
=>
self
::
buildUrl
()
);
}
}
}
}
if
(
self
::
checkSearch
(
'msrot'
)
||
self
::
checkSearch
(
'misort'
))
{
return
array
();
}
return
$result
;
}
/**
* 品牌,可以多选
* @param array $filter
* @param array $options
* @return array
*/
public
static
function
brand
(
$filter
,
$options
=
array
())
{
public
static
function
brand
(
$filter
)
{
$options
=
self
::
$options
;
//品牌列表返回空
if
(
isset
(
$options
[
'brandName'
]))
{
return
array
();
...
...
@@ -311,11 +351,15 @@ class HelperSearch
$result
=
array
(
'default'
=>
array
()
,
'brandIndex'
=>
array
(
'0~9'
,
'A~G'
,
'H~N'
,
'O~T'
,
'U~Z'
)
,
array
(
'index'
=>
'all'
,
'name'
=>
'全部'
),
array
(
'index'
=>
'0-9'
,
'name'
=>
'0 ~ 9'
)
),
'brandsShow'
=>
array
()
);
$params
=
self
::
$params
;
...
...
@@ -341,12 +385,18 @@ class HelperSearch
)));
}
$this_brand
=
array
(
'brand_id'
=>
$v
[
'id'
],
'name'
=>
$v
[
'brand_name'
],
'alif'
=>
$v
[
'brand_alif'
],
'id'
=>
$v
[
'id'
],
'href'
=>
$url
,
'name'
=>
$v
[
'brand_name'
],
'key'
=>
$v
[
'brand_name'
],
'active'
=>
in_array
(
$v
[
'id'
],
$brandIds
)
?
true
:
false
);
if
(
is_numeric
(
$v
[
'brand_alif'
]))
{
$this_brand
[
'index'
]
=
'0-9'
;
}
else
{
$this_brand
[
'index'
]
=
strtolower
(
$v
[
'brand_alif'
]);
}
//默认品牌
if
(
count
(
$result
[
'default'
])
<
10
)
{
$result
[
'default'
][]
=
$this_brand
;
...
...
@@ -367,9 +417,16 @@ class HelperSearch
'href'
=>
self
::
buildUrl
(
$params
)
);
}
//品牌列表排序
ksort
(
$brandList
);
//品牌列表排序, 添加品牌索引
$index_key
=
array
();
foreach
(
$brandList
as
$key
=>
$val
)
{
if
(
$key
&&
!
in_array
(
$key
,
$index_key
))
{
$index
[
'index'
]
=
strtolower
((
$key
));
$index
[
'name'
]
=
$key
;
$result
[
'brandIndex'
][]
=
$index
;
$index_key
[]
=
$index
;
}
if
(
is_array
(
$val
))
{
foreach
(
$val
as
$v
)
{
$result
[
'brandsShow'
][]
=
$v
;
...
...
@@ -378,6 +435,10 @@ class HelperSearch
}
unset
(
$brandList
);
}
//搜索页已选中,返回空
if
(
self
::
checkSearch
(
'brand'
))
{
return
array
();
}
return
$result
;
}
/**
...
...
@@ -402,6 +463,7 @@ class HelperSearch
'href'
=>
self
::
buildUrl
(
$params
)
);
}
$result
[]
=
array
(
'name'
=>
$v
[
'size_name'
],
'href'
=>
self
::
buildUrl
(
array_merge
(
$params
,
array
(
...
...
@@ -409,6 +471,9 @@ class HelperSearch
)))
,
);
}
if
(
self
::
checkSearch
(
'size'
))
{
return
array
();
}
}
return
$result
;
}
...
...
@@ -443,6 +508,9 @@ class HelperSearch
))) ,
);
}
if (self::checkSearch('color')) {
return array();
}
return
$result
;
}
...
...
@@ -474,6 +542,9 @@ class HelperSearch
);
}
}
if (self::checkSearch('price')) {
return array();
}
//返回价格条件
foreach (
$filter['price']
as
$key
=>
$val
) {
$val
= trim(
$val
,'¥');
...
...
@@ -556,6 +627,10 @@ class HelperSearch
'href' =>
$url
,
);
}
//搜索页已选中,返回空
if (self::checkSearch('style')) {
return array();
}
$data[0]
= array(
'attr' => 'style',
'name' => '风格',
...
...
@@ -942,7 +1017,13 @@ class HelperSearch
}
return
$result
;
}
//分页
/**
* 分页
* @param
$total
* @param
$viewNum
* @return mixed
*/
public static function pager(
$total
,
$viewNum
){
$Paging
= new Paging('Yoho');
return
$Paging->setTotal
(
$total
)->setSize(
$viewNum
)->view(0);
...
...
@@ -968,4 +1049,67 @@ class HelperSearch
return
$result
;
}
}
/**
* 组织品牌店铺信息
*/
public static function shop(
$shop
)
{
$url
= Helpers::url('','',
$shop['brand_domain']
);
$shopEntry
= array();
$sort
= array();
foreach (
$shop['sort']
as
$msort
) {
if (!isset(
$msort['sub']
) || empty(
$msort['sub']
)) {
continue;
}
foreach (
$msort['sub']
as
$mkey
=>
$misort
) {
if (count(
$sort
) >= 10) {
break 2;
}
$sortInfo['href']
=
$url
.'/?msort=' .
$msort['sort_id']
. '&misort=' .
$misort['sort_id']
;
$sortInfo['name']
=
$misort['sort_name']
;
$sort
[] =
$sortInfo
;
}
}
$shopEntry['home']
=
$url
;
$shopEntry['logo']
= Images::getSourceUrl(
$shop['brand_ico']
,'brandLogo');
$shopEntry['shopName']
=
$shop['brand_name']
;
$shopEntry['sort']
=
$sort
;
return
$shopEntry
;
}
public static function checkSearch(
$param
)
{
if (isset(self::
$params[$param]
) && isset(self::
$options['controller']
) && self::
$options['controller']
== 'Search') {
return true;
}
}
/**
* 设置搜索页导航
* @param
$total
*/
public static function setSearchNav(
$total
)
{
self::
$listnav[0]
= array(
'href' => '/',
'name' => '首页'
);
$param
= self::
$params
;
$options
= self::
$options
;
if (isset(
$options['controller']
) &&
$options['controller']
== 'Search' && isset(
$param['query']
)) {
self::
$listnav[1]
= array(
'href' => '',
'name' => "
‘
".
$param['query']
."
’
共
".
$total
."
个结果
"
);
}else{
self::
$listnav[1]
= array(
'href' => '',
'name' => '所有商品'
);
}
}
}
...
...
static/sass/me/_home.scss
View file @
2cebc90
...
...
@@ -206,7 +206,16 @@
padding
:
0
pxToRem
(
30px
);
font-size
:
16px
;
line-height
:
pxToRem
(
88px
);
.opinion
{
width
:
1
.3rem
;
height
:
1
.3rem
;
overflow
:
hidden
;
display
:
inline-block
;
background-image
:url
(
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDY3IDc5LjE1Nzc0NywgMjAxNS8wMy8zMC0yMzo0MDo0MiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTkyQTQ3NkNCOEQ4MTFFNUIzNTY5MTI2NjU5ODYzQkQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTkyQTQ3NkJCOEQ4MTFFNUIzNTY5MTI2NjU5ODYzQkQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDMkMzNzRFRkFFMEYxMUU1OEM0Q0U0Q0M3NkZCNzIyMCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDMkMzNzRGMEFFMEYxMUU1OEM0Q0U0Q0M3NkZCNzIyMCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhkYSdAAAAS0SURBVHja7FpZSFRhFL6TrUZJC0K2WFlmL0Y7thcjkWZlQfVQ0QJWD+09tEMb9BAkPlVQCYVESJtlhhbRJkVqiCHtqylRD5Ut0GLfyTPxe/zvvePM3JlJPPD537n33HPOd8+//7rq6uqM5iCtjGYizYZIa/rjcrn8MuJ2u/ugGAuMBgYD/YBoIEpR+wi8A54DlcAd4FZRUdErf3x7moaLLnwhguBjUSwGZgOJfsRSDpwGskHqZdCIgMBwFDuA6QGumr+BC8AuECpxjAgI9EaRyRlwWihDa0HodUCJgEQGiv1AJwu1x8B1oISvqe5/Ar4D7YHOALWlgQBldQJfm8lnYCPIHPabCAhEojgILDSxQ8EeAU7C4SMf2lk8ivnAMiapk+PACtj/6hMROIniOjtO8/4zYDdwAg5++luP4It6zwXAdqC/RuUmtUn4+tgkIjDcEcVVYJR4j4LeC+yD0e+BbhjwS1VwE7DVMzQocheYAr9fvCICYxEozgMpwtAbYC4MFTvd0hFDEopTQC/xKB+YgRh+SSK67nOzhsQDICkYJEjYTxL7VSWF42skDTKCLzGMUxih6DwFxsD4u2BPOxAPzQ5uA3HKbcrGKMRTapWRTEGC6mNqKEhwZshvKsfhkQiOUz9pBHtK23jxfA2MPQzlZJD9rxG3x3O82tnvaqFMk7qjYTK5PcrxGGbx/m0jycnJPXD9VjYsfI1L4TJNRwamca+lSkxhYWG1mpE0zYBXEGZLjgKOS5U0WbVk2ziHbITVGpjjOSfbiiQi1xM3wnQhKONKbLBChMRqBkC7FeFhnsLQuJMhV3qB0rGJK1ZmJEoovLf5MjnAVKALlzkO6ljFFWW3+fDbxuBYm9+B1PEqLg+RWnG/q43BRza/A6ljFVetJFItFOJtDC4Bavi6hn87pWMVV7UkUi4URtt0hbd5ik3bPr34tyM6NnGVy16Lps1zFIWZwE4bMjQLfREMHRGXKsUyI3lCYSi6xhHhNIBwPEPF7bwGRHjjoFQobQmzwVDGU6pueKjdb5ZQTMdXcIdJNiiOdHE7y2wan6Pp/rJho3uISZD/bE03naMlgjT9QLFevNATyIWxdiEiQX5zOQ5V1nO82owQmYsa9hOZTGSQSUQyiYmylnCchikRllVAhbhHG9aFMB4TJBKDuPpMF48qOD7DlgjY1vK2S5V4NAa4DyezHCZB9ss01amKV621tttBwuAAFFcM/Z4sLTm3wWhZAAnQGLFHs6dGQpvhw+HviXzg7SY2TR/OAGaDYz6vJ/Jl4/My+DYceIYJAY+Q7SHwUekTEaXnOACstHBEX+yyoRwrwOl7k65UPVagNUhnL3mT7UlyCe7LQc8kFIe8mBl75JvR+Hykg581cCmIHPOLCJOhSeYio377v28IhpYPQIKabatNbKuZ6k+ANsvieCvmLH9xf4TepyMMb7Zluxn1J2fe91pNHLjcRsPj6WiLVyjgf8fT9d+n6CvstMX1PGADNWwbt5PxzjWfq1YTyXnO2ck4eft7zm52hCben8LTpVQTlXuwM9JxIgH8IAko1nG7bK8ucUEk5r8hIrpt6v6Xc++3GkSyGxFpDtLy30EtRBySPwIMACKUEyE6TctsAAAAAElFTkSuQmCC"
)
;
background-size
:
100%
100%
;
position
:
relative
;
top
:
.36rem
;
}
&
.highlight
{
background
:
#eee
;
}
...
...
template/m.yohobuy.com/actions/index/home/index.phtml
View file @
2cebc90
...
...
@@ -101,7 +101,7 @@
<span
class=
"iconfont num"
>
604
;</span>
</a>
<a
class=
"list-item"
href=
"/home/suggest"
>
<span
class=
"
iconfont icon"
>
63
d;
</span>
<span
class=
"
opinion"
>
</span>
意见反馈
<span
class=
"iconfont num"
>
604
;</span>
</a>
...
...
template/www.yohobuy.com/actions/passport/back/reset-pwd.phtml
View file @
2cebc90
...
...
@@ -30,7 +30,7 @@
</span>
</li>
<li
class=
"input-container-li clearfix"
>
<input
type=
"hidden"
name=
"code"
value=
"
159bI6arxsuaPBxG2iV9OE9BrgDnAPiTecUqYh2iUC3ntt6S0eOtxXpVu+jWIlveXx9NRuwS9zdrXzcUyOd+d3ikzYBAo0k
"
>
<input
type=
"hidden"
name=
"code"
value=
"
{{code}}
"
>
<input
id=
"reset-pwd-btn"
class=
"btn reset-pwd-btn"
type=
"submit"
value=
"提交"
disabled=
""
>
</li>
</ul>
...
...
template/www.yohobuy.com/actions/passport/back/verification.phtml
View file @
2cebc90
{
{>
layout/simple-header
}
}
<div
class=
"verification-page back-page passport-page yoho-page clearfix"
>
{
{#
verification
}
}
{
{>
passport/cover
}
}
<div
class=
"content"
>
<form
id=
"verification-form"
class=
"verification-form"
method=
"POST"
action=
"/passport/back/backmobile"
>
<ul>
<li
class=
"head-title"
>验证身份</li>
<li
class=
"po-re"
>
<label
class=
"pn-label"
>手机号码</label>
<span
class=
"country-code"
>+
{
{area
}
}</span>
<span
class=
"phone-num"
>
{
{phoneNum
}
}</span>
</li>
<li
class=
"po-re"
>
<input
id=
"captcha"
class=
"input va captcha"
type=
"text"
name=
"captcha"
>
<input
id=
"send-captcha"
class=
"btn send-captcha"
type=
"button"
value=
"发送验证码"
disabled=
""
>
<div
id=
"captcha-tip"
class=
"captcha-tips"
><i
class=
"iconfont"
>
61
f;</i>验证码已发送至您的手机,请查收</div>
<span
id=
"err-tip"
class=
"err-tip hide"
>
<i></i>
<em>请输入验证码</em>
</span>
</li>
<li>
<input
name=
"area"
id=
"area"
type=
"hidden"
value=
"{{area}}"
>
<input
name=
"mobile"
id=
"mobile"
type=
"hidden"
value=
"{{phoneNum}}"
>
<input
name=
"captchaPic"
id=
"captchaPic"
type=
"hidden"
value=
"g7ce"
>
<input
name=
"refer"
id=
"refer"
type=
"hidden"
value=
""
>
<input
id=
"next-step"
class=
"btn next-step disable"
type=
"submit"
value=
"下一步"
disabled=
""
>
</li>
</ul>
</form>
</div>
{
{/
verification
}
}
</div>
{
{>
layout/simple-header
}
}
<div
class=
"verification-page back-page passport-page yoho-page clearfix"
>
{
{#
verification
}
}
{
{>
passport/cover
}
}
<div
class=
"content"
>
<form
id=
"verification-form"
class=
"verification-form"
method=
"POST"
action=
"/passport/back/backmobile"
>
<ul>
<li
class=
"head-title"
>验证身份</li>
<li
class=
"po-re"
>
<label
class=
"pn-label"
>手机号码</label>
<span
class=
"country-code"
>+
{
{area
}
}</span>
<span
class=
"phone-num"
>
{
{phoneNum
}
}</span>
</li>
<li
class=
"po-re"
>
<input
id=
"captcha"
class=
"input va captcha"
type=
"text"
name=
"captcha"
>
<input
id=
"send-captcha"
class=
"btn send-captcha"
type=
"button"
value=
"发送验证码"
disabled=
""
>
<div
id=
"captcha-tip"
class=
"captcha-tips"
><i
class=
"iconfont"
>
61
f;</i>验证码已发送至您的手机,请查收</div>
<span
id=
"err-tip"
class=
"err-tip hide"
>
<i></i>
<em>请输入验证码</em>
</span>
</li>
<li>
<input
name=
"area"
id=
"area"
type=
"hidden"
value=
"{{area}}"
>
<input
name=
"mobile"
id=
"mobile"
type=
"hidden"
value=
"{{phoneNum}}"
>
<input
name=
"captchaPic"
id=
"captchaPic"
type=
"hidden"
value=
"{{captcha}}"
>
<input
name=
"refer"
id=
"refer"
type=
"hidden"
value=
""
>
<input
id=
"next-step"
class=
"btn next-step disable"
type=
"submit"
value=
"下一步"
disabled=
""
>
</li>
</ul>
</form>
</div>
{
{/
verification
}
}
</div>
{
{>
layout/footer
}
}
\ No newline at end of file
...
...
template/www.yohobuy.com/actions/passport/login/index.phtml
View file @
2cebc90
...
...
@@ -36,7 +36,7 @@
<span
id=
"login-btn"
class=
"login-btn btn"
>登录</span>
</li>
<li
class=
"other-opts"
>
<span
class=
"remeber-me"
>
<span
class=
"reme
m
ber-me"
>
<i
class=
"iconfont"
>
613
;</i>
记住登录状态
</span>
...
...
template/www.yohobuy.com/actions/product/index/hotrank.phtml
View file @
2cebc90
...
...
@@ -30,7 +30,7 @@
{
{!
热门品牌
}
}
{
{#
hotBrands
}
}
{
{>
index/floor-header
}
}
<div
class=
"hot-brands logo-brand clearfix"
></div>
<div
class=
"hot-brands logo-brand clearfix"
data-url=
"{{brandUrl}}"
></div>
{
{/
hotBrands
}
}
{
{!
一周热卖
}
}
...
...
template/www.yohobuy.com/actions/product/index1/hotrank.phtml
View file @
2cebc90
...
...
@@ -30,7 +30,7 @@
{
{!
热门品牌
}
}
{
{#
hotBrands
}
}
{
{>
index/floor-header
}
}
<div
class=
"hot-brands logo-brand clearfix"
></div>
<div
class=
"hot-brands logo-brand clearfix"
data-url=
"{{brandUrl}}"
></div>
{
{/
hotBrands
}
}
{
{!
一周热卖
}
}
...
...
template/www.yohobuy.com/actions/product/search/search.phtml
View file @
2cebc90
{
{>
layout/header
}
}
<div
class=
"product-search-page product-page yoho-page center-content"
>
{
{#
search
}
}
{
{>
layout/path-nav
}
}
{
{>
layout/path-nav
}
}
{
{>
product/standard-content
}
}
{
{>
product/shop-entry
}
}
{
{>
product/latest-walk
}
}
{
{>
product/standard-content
}
}
{
{>
product/latest-walk
}
}
{
{/
search
}
}
</div>
{
{>
layout/footer
}
}
\ No newline at end of file
{
{>
layout/footer
}
}
...
...
template/www.yohobuy.com/partials/layout/page-header.phtml
View file @
2cebc90
...
...
@@ -84,7 +84,7 @@
{
{#
subnav
}
}
<li
class=
"sub-nav-item"
>
<a
href=
"{{link}}"
>
{
{name
}
}
{
{#is_new
}
}<span
class=
"newlogo"
></span>
{
{/is_new
}
}</a>
{
{#
thirdnav
}
}
{
{#
if
thirdnav
}
}
<div
class=
"third-nav-wrapper"
>
<div
class=
"third-nav"
>
<div
class=
"categorywrapper"
id=
"category{{../index_main}}{{index_sub}}"
>
...
...
@@ -110,7 +110,7 @@
</div>
</div>
</div>
{
{/
thirdnav
}
}
{
{/
if
}
}
</li>
{
{/
subnav
}
}
</ul>
...
...
template/www.yohobuy.com/partials/passport/register.phtml
View file @
2cebc90
...
...
@@ -4,7 +4,7 @@
<li class="clearfix">
<select id="region" class="region" name="region">
{{#each region}}
<option {{#if selected}}selected="selected"{{/if}} value="{{
id
}}">{{name}}</option>
<option {{#if selected}}selected="selected"{{/if}} value="{{
areaCode
}}">{{name}}</option>
{{/each}}
</select>
</li>
...
...
web-static/js/common.js
View file @
2cebc90
...
...
@@ -7,7 +7,7 @@ var $ = require('yoho.jquery');
require
(
'./footer'
);
require
(
'./simple-header'
);
require
(
'./header'
);
function
cookie
(
name
)
{
var
cookies
=
document
.
cookie
,
...
...
@@ -108,7 +108,7 @@ function getShoppingKey() {
a
.
async
=
1
;
a
.
src
=
j
;
m
.
parentNode
.
insertBefore
(
a
,
m
);
})(
window
,
document
,
'script'
,
'http://cdn.yoho.cn/yas-jssdk/1.0.1
3.6.3
/yas.js'
,
'_yas'
);
})(
window
,
document
,
'script'
,
'http://cdn.yoho.cn/yas-jssdk/1.0.1
4
/yas.js'
,
'_yas'
);
(
function
()
{
var
uid
=
getUid
();
...
...
@@ -118,7 +118,7 @@ function getShoppingKey() {
window
.
_ozuid
=
uid
;
//暴露ozuid
if
(
window
.
_yas
)
{
window
.
_yas
(
1
*
new
Date
(),
'1.0.1
3.6.3
'
,
'yohobuy_web'
,
uid
,
''
,
''
);
window
.
_yas
(
1
*
new
Date
(),
'1.0.1
4
'
,
'yohobuy_web'
,
uid
,
''
,
''
);
}
}());
...
...
@@ -130,4 +130,6 @@ window.getUser = getUser;
window
.
getUid
=
getUid
;
window
.
getShoppingKey
=
getShoppingKey
;
\ No newline at end of file
window
.
getShoppingKey
=
getShoppingKey
;
require
(
'./header'
);
...
...
web-static/js/header.js
View file @
2cebc90
...
...
@@ -6,11 +6,238 @@
var
$
=
require
(
'yoho.jquery'
);
var
handlebars
=
require
(
'yoho.handlebars'
);
var
json2
=
require
(
'json2'
);
var
noticeSuccess
=
false
;
var
vipInfoCombine
=
null
;
var
loginInfoCombine
=
null
;
var
apiDomain
=
'http://api.open.yohobuy.com'
;
var
cartTpl
=
''
;
var
vipInfoCombine
=
null
;
//用户信息编译模板
var
loginInfoCombine
=
null
;
//登录信息编译模板
var
apiDomain
=
'http://api.open.yohobuy.com'
;
//获取数据的地址
var
cartTpl
=
''
;
//购物车模板
/**
* 搜寻的时候过滤非法字符(+-/:等非法字符单独出现)
* @type {RegExp}
*/
var
reg
=
/^
[\^\!\+\-\(\)\:\[\]\\\{\}\~\*\?\|\&\;\/\s]{0,}
$/g
;
var
keyword
=
''
;
var
link
=
''
;
var
dataLayer
=
[];
var
requestFrame
=
null
;
var
logoanimationstart
=
0
;
var
$logotrans
=
$
(
'.icon-logo'
);
var
isen
=
true
;
var
loopdurationtime
=
500
;
var
globaltimeout
;
var
onetimeoout
;
/**
* banner和地址的映射
* @type {Object}
*/
var
bannerMap
=
{
listboys
:
'4f78b0f418fc42314d8b6e791cfb7fa8'
,
listgirls
:
'00c1f025a51b6b597dc37925951ea27d'
,
listkids
:
'b02df11184727701ade1b6de9737d08c'
,
listlifestyle
:
'fd35c52dced0c880976ba858346d1fc5'
,
searchboys
:
'9fb8986ea700cc27a8057361c3924394'
,
searchgirls
:
'e3e207a1443ca60c8037fe52a5560c18'
,
searchkids
:
'620fc77f479da8feaeb06f2324e5d0bb'
,
searchlifestyle
:
'a3c93301c6ffaf3ed0f36a4a451be36d'
,
uniquebrandboys
:
'2ebb0810c0d1a67e5229149c9c3aba7d'
,
uniquebrandgirls
:
'99e23385f4ba4b65f406b7e2968ac821'
,
uniquebrandkids
:
'a74ebc9b17840c91b9ea46568111fe6b'
,
uniquebrandlifestyle
:
'0e8c81ead53f56302baa4d0ad967f527'
,
brandsboys
:
'77b352db07129c76a9d532acad149f9f'
,
brandsgirls
:
'bf047f16e52ebc38be5ce9c7623831e6'
,
brandskids
:
'e3ae1ce9b5e13c6d271ef3eccb831652'
,
brandslifestyle
:
'e4ac8029c30f65d7f1af030980d140fe'
,
newboys
:
'869d3c5f3b450fb52101d00a61ce87cb'
,
newgirls
:
'd953b6dfdac02483d1dcce8d96055954'
,
newkids
:
'0874cb6d75df8e0e78f2d475e53ecc08'
,
newlifestyle
:
'43e8fc8e178115c262bbce2bd0012db7'
,
saleboys
:
'c846e3165c994769b4201d8c32f3ae9b'
,
salegirls
:
'52b1d389edcbc62d65de71b80c4d6ad0'
,
salekids
:
'ad8b1703c761ba00973868ab5199cc27'
,
salelifestyle
:
'7acc64905c70ac91846f43fb2cec4bbd'
,
homeboys
:
'b0856a771ef1b59ab1234c74688fa42d'
,
homegirls
:
'2bd61fa12e4933211518f70fe5ce3c48'
,
homekids
:
'895c59e8c64b40399c9533509507320c'
,
homelifestyle
:
'2e037d4e25d2767352ca3e0a4627f7bd'
,
indexboys
:
'0c911d3000f52e8ca7cffb74f5864c29'
,
indexgirls
:
'b645b8980c423ab30485e0a9d08c2ef7'
,
indexkids
:
'17f6d5d5d454d2c507bc5fcbc90f7756'
,
indexlifestyle
:
'735cd393e841762af8793c346abbbc36'
};
var
cookieMap
=
{};
function
getSource
(
column
,
postition
,
event
)
{
try
{
dataLayer
.
push
({
louceng
:
column
,
weizhi
:
postition
,
event
:
event
});
}
catch
(
e
)
{}
}
function
submitSearch
()
{
var
$keywordinput
=
$
(
'#query_key'
).
val
();
var
column
=
'Search'
;
var
postition
=
'Head Search'
;
var
event
=
'Search'
;
var
$formatkeyword
,
$formatkeywordinput
;
$formatkeyword
=
$
.
trim
(
keyword
.
toLowerCase
());
$formatkeywordinput
=
$
.
trim
(
$keywordinput
.
toLowerCase
());
getSource
(
column
,
postition
,
event
);
if
(
link
!==
''
&&
keyword
!==
''
&&
$formatkeyword
===
$formatkeywordinput
)
{
location
.
href
=
link
.
replace
(
'\''
,
''
);
}
else
{
if
(
reg
.
test
(
$keywordinput
))
{
location
.
href
=
'http://search.yohobuy.com/error?query='
+
$keywordinput
+
'&result=error'
;
}
else
{
$
(
'#searchForm'
).
submit
();
return
false
;
}
}
}
/**
* 定义购物车扩展
*/
function
actionGoodsCart
()
{
var
defaults
=
{
cookie
:
'_g'
,
cartNum
:
''
};
var
params
=
''
;
var
cartInfo
=
''
;
var
queryNum
=
0
;
var
listIndex
=
0
;
var
tmpList
=
0
;
var
totalNum
=
0
;
var
text
=
''
;
$
.
fn
.
miniCart
=
function
(
options
)
{
params
=
$
.
extend
(
defaults
,
options
);
if
(
typeof
window
.
cookie
(
params
.
cookie
)
===
'undefined'
)
{
cartInfo
=
null
;
}
else
{
cartInfo
=
json2
.
parse
(
window
.
cookie
(
params
.
cookie
));
}
if
(
cartInfo
!=
null
)
{
totalNum
=
parseInt
(
cartInfo
.
_nac
)
+
parseInt
(
cartInfo
.
_ac
);
if
(
totalNum
===
0
)
{
$
(
'#icart-num'
).
attr
(
'class'
,
'icart-num icart-none'
);
}
else
{
$
(
'#icart-num'
).
attr
(
'class'
,
'icart-num'
);
}
$
(
params
.
cartNum
).
html
(
totalNum
);
}
};
$
.
fn
.
search
=
function
(
searchDomain
)
{
function
getKeywords
(
obj
)
{
var
key
=
$
.
trim
(
$
(
obj
).
val
());
key
=
key
.
replace
(
new
RegExp
(
'\''
,
'gm'
),
''
);
//去掉特殊字符
if
(
key
===
''
)
{
$
(
'.search-list'
).
hide
();
return
false
;
}
key
=
encodeURI
(
key
);
$
.
get
(
searchDomain
+
'?callback=?&query='
+
key
,
function
(
htmlData
)
{
$
(
'.search-list'
).
html
(
htmlData
.
data
);
queryNum
=
$
(
'.search-list'
).
children
(
'li'
).
length
;
listIndex
=
-
1
;
if
(
queryNum
>
0
)
{
$
(
'.search-list'
).
show
();
}
else
{
$
(
'.search-list'
).
hide
();
}
$
(
'.search-list'
).
find
(
'a'
).
hover
(
function
()
{
$
(
this
).
css
(
'background-color'
,
'#eee'
);
},
function
()
{
$
(
this
).
css
(
'background-color'
,
'#fff'
);
});
},
'jsonp'
);
}
function
getText
(
obj
)
{
$
(
'.search-list li:eq('
+
tmpList
+
')'
).
children
(
'a'
).
css
(
'background-color'
,
'#fff'
);
$
(
'.search-list li:eq('
+
listIndex
+
')'
).
children
(
'a'
).
css
(
'background-color'
,
'#eee'
);
text
=
$
(
'.search-list li:eq('
+
listIndex
+
')'
).
children
(
'a'
).
attr
(
'title'
);
$
(
'#query_key'
).
val
(
text
);
}
return
this
.
each
(
function
()
{
$
(
this
).
keyup
(
function
(
event
)
{
if
(
event
.
which
===
38
)
{
if
(
queryNum
===
0
)
{
return
false
;
}
if
(
listIndex
===
-
1
)
{
listIndex
=
0
;
}
tmpList
=
listIndex
;
listIndex
=
(
listIndex
-
1
+
queryNum
)
%
queryNum
;
getText
(
this
);
}
else
if
(
event
.
which
===
40
)
{
if
(
queryNum
===
0
)
{
return
false
;
}
tmpList
=
listIndex
;
listIndex
=
(
listIndex
+
1
)
%
queryNum
;
getText
(
this
);
}
else
if
(
event
.
which
===
13
)
{
submitSearch
();
}
else
{
getKeywords
(
this
);
}
});
});
};
$
.
extend
({
getData
:
function
(
domain
,
options
,
onSuccess
)
{
var
defaults
=
{
page
:
1
,
method
:
''
,
v
:
1
,
return_type
:
'jsonp'
,
open_key
:
'12345'
,
tmp
:
Math
.
random
()
};
var
params
=
''
;
if
(
typeof
(
domain
)
===
undefined
||
domain
===
''
)
{
console
.
log
(
'请设置请求的api地址'
);
return
false
;
}
params
=
$
.
extend
(
defaults
,
options
);
params
.
page
=
params
.
page
||
1
;
if
(
params
.
method
===
''
)
{
console
.
log
(
'请设置请求的URL'
);
return
false
;
}
try
{
$
.
getJSON
(
domain
+
'/?callback=?'
,
params
,
function
(
_data
)
{
if
(
onSuccess
!==
''
)
{
if
(
typeof
onSuccess
(
_data
.
data
)
!==
'undefined'
)
{
json2
.
parse
(
onSuccess
(
_data
.
data
));
}
return
false
;
}
});
}
catch
(
e
)
{
console
.
log
(
e
.
message
);
}
},
getShoppingKey
:
function
()
{
var
shoppingInfo
=
window
.
cookie
(
'_g'
);
var
shoppingData
=
json2
.
parse
(
shoppingInfo
);
if
(
typeof
shoppingInfo
===
'undefined'
||
shoppingInfo
===
null
)
{
return
''
;
}
return
shoppingData
.
_k
;
}
});
}
/**
* 判断为1的helper
* @param {[type]} v1 [description]
...
...
@@ -56,8 +283,7 @@ handlebars.registerHelper('equalzero', function(v1, options) {
return
options
.
inverse
(
this
);
}
});
require
(
'../plugin/yohocookie'
);
require
(
'../plugin/yohocart'
);
/**
* 获取头部banner的回调函数
* @param {[type]} data [description]
...
...
@@ -75,42 +301,9 @@ function JsonPCallBack(data) {
}
}
/**
* 获取头部服务器维护的回调
* @param {[type]} data [description]
*/
function
NoticeCallBack
(
data
)
{
if
(
+
data
.
code
===
200
)
{
noticeSuccess
=
true
;
}
}
window
.
JsonPCallBack
=
JsonPCallBack
;
window
.
NoticeCallBack
=
NoticeCallBack
;
/**
* 检测是否获得公告
* @return {[type]} [description]
*/
function
checkNotice
()
{
var
noticeinner
;
if
(
!
noticeSuccess
)
{
noticeinner
=
'<div class="noticewrapper">'
+
'<div class="noticecontainer">'
+
'<h1 class="noticetitle">关于系统升级的公告</h1>'
+
'<div class="noticecontent">'
+
'<p class="tips">尊敬的顾客:</p>'
+
'<p class="detail">您好!为了向您提供更优质的服务,目前系统正在升级,请耐心等待。</p>'
+
'<p class="detail">'
+
'系统升级期间,部分地区用户体验会有暂时中断,如遇紧急事宜,欢迎垂询客服热线:400-889-9646 09:00-22:30(周一至周日)。稍后系统将恢复正常'
+
'</p>'
+
'<p class="detail">使用,欢迎您继续光顾YOHO!BUY有货!带来不便之处深表歉意,请您谅解!</p>'
+
'</div>'
+
'</div>'
+
'</div>'
;
$
(
'.header-topwrapper'
).
append
(
noticeinner
);
}
}
/**
* 获得banner数据
* @param {[string]} code [banner对应的编码]
...
...
@@ -119,23 +312,11 @@ function checkNotice() {
function
getBannerData
(
code
)
{
var
script
=
document
.
createElement
(
'script'
);
script
.
src
=
'http://
new.yohobuy.com/resource
/getbanner?content_code='
+
script
.
src
=
'http://
www.yohobuy.com/common
/getbanner?content_code='
+
code
+
'&client_type=web&callback=JsonPCallBack'
;
document
.
getElementsByTagName
(
'head'
)[
0
].
appendChild
(
script
);
}
/**
* 获取公告的jsonp请求
* @param {[type]} code [description]
* @return {[type]} [description]
*/
function
getNoticeData
(
code
)
{
var
script
=
document
.
createElement
(
'script'
);
script
.
src
=
'http://new.yohobuy.com/resource/getbanner?content_code='
+
code
+
'&client_type=web&callback=NoticeCallBack'
;
document
.
getElementsByTagName
(
'head'
)[
0
].
appendChild
(
script
);
window
.
setTimeout
(
checkNotice
,
5000
);
//5s后检测是否成功
}
/**
* 显示和隐藏
* @param {[type]} sourceClass [description]
...
...
@@ -221,7 +402,7 @@ function isSupportCss3Animation() {
* @param {Array} ) { var thisFunc, prefixList [description]
* @return {[type]} [description]
*/
function
requestFrame
Closer
()
{
function
requestFrame
Act
()
{
var
prefixList
=
[
'webkit'
,
'moz'
,
'ms'
];
var
func1
=
prefixList
[
0
]
+
'RequestAnimationFrame'
;
var
func2
=
prefixList
[
1
]
+
'RequestAnimationFrame'
;
...
...
@@ -229,7 +410,7 @@ function requestFrameCloser() {
if
(
window
[
func1
])
{
return
function
(
callback
)
{
window
[
func1
]
(
callback
);
requestAnimationFrame
(
callback
);
};
}
if
(
window
[
func2
])
{
...
...
@@ -248,69 +429,61 @@ function requestFrameCloser() {
}
window
.
requestFrame
=
requestFrameCloser
();
window
.
start
=
0
;
window
.
$logotrans
=
$
(
'.icon-logo'
);
window
.
isen
=
true
;
/**
* css3动画
* @return {[type]} [description]
*/
function
tsAnimate
()
{
window
.
start
+=
10
;
window
.
$logotrans
.
css
({
transform
:
'rotateX('
+
window
.
start
+
'deg)'
,
'-webkit-transform'
:
'rotateX('
+
window
.
start
+
'deg)'
,
'-moz-transform'
:
'rotateX('
+
window
.
start
+
'deg)'
logoanimationstart
+=
10
;
$logotrans
.
css
({
transform
:
'rotateX('
+
logoanimationstart
+
'deg)'
,
'-webkit-transform'
:
'rotateX('
+
logoanimationstart
+
'deg)'
,
'-moz-transform'
:
'rotateX('
+
logoanimationstart
+
'deg)'
});
if
(
window
.
start
/
90
%
2
===
1
)
{
if
(
window
.
isen
)
{
window
.
$logotrans
.
css
(
'background-image'
,
'url(http://static.yohobuy.com/newheader/img/logo1.png)'
);
window
.
isen
=
false
;
if
(
logoanimationstart
/
90
%
2
===
1
)
{
if
(
isen
)
{
$logotrans
.
css
(
'background-image'
,
'url(http://static.yohobuy.com/newheader/img/logo1.png)'
);
isen
=
false
;
}
else
{
window
.
$logotrans
.
css
(
'background-image'
,
'url(http://static.yohobuy.com/newheader/img/logo_e.png)'
);
window
.
isen
=
true
;
$logotrans
.
css
(
'background-image'
,
'url(http://static.yohobuy.com/newheader/img/logo_e.png)'
);
isen
=
true
;
}
}
if
(
window
.
start
/
90
%
2
===
0
&&
window
.
start
%
360
!==
0
)
{
if
(
logoanimationstart
/
90
%
2
===
0
&&
logoanimation
start
%
360
!==
0
)
{
window
.
setTimeout
(
tsAnimate
,
3000
);
}
else
{
if
(
window
.
start
%
360
===
0
)
{
if
(
logoanimation
start
%
360
===
0
)
{
window
.
setTimeout
(
tsAnimate
,
1
*
60
*
1000
);
}
else
{
window
.
requestFrame
(
function
()
{
requestFrame
(
function
()
{
tsAnimate
();
});
}
}
}
window
.
loopdurationtime
=
500
;
window
.
globaltimeout
;
window
.
onetimeoout
;
/**
* 淡出
* @return {[type]} [description]
*/
function
fadeAnimate
()
{
if
(
window
.
globaltimeout
)
{
window
.
clearTimeout
(
window
.
globaltimeout
);
if
(
globaltimeout
)
{
window
.
clearTimeout
(
globaltimeout
);
}
window
.
$logotrans
.
fadeOut
(
window
.
loopdurationtime
,
function
()
{
window
.
isen
=
false
;
window
.
$logotrans
.
css
(
'background-image'
,
'url(http://static.yohobuy.com/newheader/img/logo.png)'
);
window
.
$logotrans
.
fadeIn
(
window
.
loopdurationtime
,
function
()
{
window
.
onetimeoout
=
window
.
setTimeout
(
function
()
{
window
.
$logotrans
.
fadeOut
(
window
.
loopdurationtime
,
function
()
{
window
.
clearTimeout
(
window
.
onetimeoout
);
window
.
isen
=
true
;
window
.
$logotrans
.
css
(
'background-image'
,
$logotrans
.
fadeOut
(
loopdurationtime
,
function
()
{
isen
=
false
;
$logotrans
.
css
(
'background-image'
,
'url(http://static.yohobuy.com/newheader/img/logo.png)'
);
$logotrans
.
fadeIn
(
loopdurationtime
,
function
()
{
onetimeoout
=
window
.
setTimeout
(
function
()
{
$logotrans
.
fadeOut
(
loopdurationtime
,
function
()
{
window
.
clearTimeout
(
onetimeoout
);
isen
=
true
;
$logotrans
.
css
(
'background-image'
,
'url(http://static.yohobuy.com/newheader/img/logo_e.png)'
);
window
.
$logotrans
.
fadeIn
(
window
.
loopdurationtime
,
function
()
{
window
.
globaltimeout
=
window
.
setTimeout
(
fadeAnimate
,
1
*
60
*
1000
);
$logotrans
.
fadeIn
(
loopdurationtime
,
function
()
{
globaltimeout
=
window
.
setTimeout
(
fadeAnimate
,
1
*
60
*
1000
);
});
});
},
3000
);
...
...
@@ -323,6 +496,7 @@ function fadeAnimate() {
*/
function
actionTopLogoAnimate
()
{
if
(
isSupportCss3Animation
())
{
requestFrame
=
requestFrameAct
();
window
.
setTimeout
(
tsAnimate
,
3000
);
}
else
{
window
.
setTimeout
(
fadeAnimate
,
3000
);
...
...
@@ -355,134 +529,56 @@ function actionAddKeyWords() {
});
}
}
window
.
dataLayer
=
[];
function
getSource
(
column
,
postition
,
event
)
{
try
{
window
.
dataLayer
.
push
({
louceng
:
column
,
weizhi
:
postition
,
event
:
event
});
}
catch
(
e
)
{}
}
/**
* 搜寻的时候过滤非法字符(+-/:等非法字符单独出现)
* @type {RegExp}
*/
window
.
reg
=
/^
[\^\!\+\-\(\)\:\[\]\\\{\}\~\*\?\|\&\;\/\s]{0,}
$/g
;
window
.
keyword
=
''
;
window
.
link
=
''
;
window
.
submitSearch
=
function
()
{
var
$keywordinput
=
$
(
'#query_key'
).
val
();
var
column
=
'Search'
;
var
postition
=
'Head Search'
;
var
event
=
'Search'
;
var
$formatkeyword
,
$formatkeywordinput
;
$formatkeyword
=
$
.
trim
(
window
.
keyword
.
toLowerCase
());
$formatkeywordinput
=
$
.
trim
(
$keywordinput
.
toLowerCase
());
getSource
(
column
,
postition
,
event
);
if
(
window
.
link
!==
''
&&
window
.
keyword
!==
''
&&
$formatkeyword
===
$formatkeywordinput
)
{
location
.
href
=
window
.
link
.
replace
(
'\''
,
''
);
}
else
{
if
(
window
.
reg
.
test
(
$keywordinput
))
{
location
.
href
=
'http://search.yohobuy.com/error?query='
+
$keywordinput
+
'&result=error'
;
}
else
{
$
(
'#searchForm'
).
submit
();
return
false
;
}
}
};
/**
* banner和地址的映射
* @type {Object}
*/
window
.
bannerMap
=
{
listboys
:
'4f78b0f418fc42314d8b6e791cfb7fa8'
,
listgirls
:
'00c1f025a51b6b597dc37925951ea27d'
,
listkids
:
'b02df11184727701ade1b6de9737d08c'
,
listlifestyle
:
'fd35c52dced0c880976ba858346d1fc5'
,
searchboys
:
'9fb8986ea700cc27a8057361c3924394'
,
searchgirls
:
'e3e207a1443ca60c8037fe52a5560c18'
,
searchkids
:
'620fc77f479da8feaeb06f2324e5d0bb'
,
searchlifestyle
:
'a3c93301c6ffaf3ed0f36a4a451be36d'
,
uniquebrandboys
:
'2ebb0810c0d1a67e5229149c9c3aba7d'
,
uniquebrandgirls
:
'99e23385f4ba4b65f406b7e2968ac821'
,
uniquebrandkids
:
'a74ebc9b17840c91b9ea46568111fe6b'
,
uniquebrandlifestyle
:
'0e8c81ead53f56302baa4d0ad967f527'
,
brandsboys
:
'77b352db07129c76a9d532acad149f9f'
,
brandsgirls
:
'bf047f16e52ebc38be5ce9c7623831e6'
,
brandskids
:
'e3ae1ce9b5e13c6d271ef3eccb831652'
,
brandslifestyle
:
'e4ac8029c30f65d7f1af030980d140fe'
,
newboys
:
'869d3c5f3b450fb52101d00a61ce87cb'
,
newgirls
:
'd953b6dfdac02483d1dcce8d96055954'
,
newkids
:
'0874cb6d75df8e0e78f2d475e53ecc08'
,
newlifestyle
:
'43e8fc8e178115c262bbce2bd0012db7'
,
saleboys
:
'c846e3165c994769b4201d8c32f3ae9b'
,
salegirls
:
'52b1d389edcbc62d65de71b80c4d6ad0'
,
salekids
:
'ad8b1703c761ba00973868ab5199cc27'
,
salelifestyle
:
'7acc64905c70ac91846f43fb2cec4bbd'
,
homeboys
:
'b0856a771ef1b59ab1234c74688fa42d'
,
homegirls
:
'2bd61fa12e4933211518f70fe5ce3c48'
,
homekids
:
'895c59e8c64b40399c9533509507320c'
,
homelifestyle
:
'2e037d4e25d2767352ca3e0a4627f7bd'
,
indexboys
:
'0c911d3000f52e8ca7cffb74f5864c29'
,
indexgirls
:
'b645b8980c423ab30485e0a9d08c2ef7'
,
indexkids
:
'17f6d5d5d454d2c507bc5fcbc90f7756'
,
indexlifestyle
:
'735cd393e841762af8793c346abbbc36'
};
/**
* cookie 初始化
* @return {[type]} [description]
*/
function
actionInitCookie
()
{
var
$cookieGender
=
$
.
cookie
(
'_Gender'
);
var
$cookieGender
=
window
.
cookie
(
'_Gender'
);
var
$target
=
$
(
'.cure'
);
if
(
typeof
$cookieGender
!==
'undefined'
&&
$cookieGender
!==
''
)
{
$
.
setc
ookie
(
'_Gender'
,
1
,
{
window
.
setC
ookie
(
'_Gender'
,
1
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
});
}
if
(
$target
.
find
(
'.name-cn a'
).
text
()
===
'男生'
)
{
$
.
setc
ookie
(
'_Gender'
,
'1,3'
,
{
window
.
setC
ookie
(
'_Gender'
,
'1,3'
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
});
$
.
setc
ookie
(
'_Channel'
,
'boys'
,
{
window
.
setC
ookie
(
'_Channel'
,
'boys'
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
});
}
if
(
$target
.
find
(
'.name-cn a'
).
text
()
===
'女生'
)
{
$
.
setc
ookie
(
'_Gender'
,
'2,3'
,
{
window
.
setC
ookie
(
'_Gender'
,
'2,3'
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
});
$
.
setc
ookie
(
'_Channel'
,
'girls'
,
{
window
.
setC
ookie
(
'_Channel'
,
'girls'
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
});
}
if
(
$target
.
find
(
'.name-cn a'
).
text
()
===
'创意生活'
)
{
$
.
setc
ookie
(
'_Channel'
,
'lifestyle'
,
{
window
.
setC
ookie
(
'_Channel'
,
'lifestyle'
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
});
}
if
(
$target
.
find
(
'.name-cn a'
).
text
()
===
'潮童'
)
{
$
.
setc
ookie
(
'_Channel'
,
'kids'
,
{
window
.
setC
ookie
(
'_Channel'
,
'kids'
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
...
...
@@ -494,8 +590,6 @@ function actionInitCookie() {
* cookie集合
* @type {Object}
*/
window
.
cookieMap
=
{};
function
actionExeCookieMap
()
{
var
cookies
=
document
.
cookie
;
var
cookiearr
=
cookies
.
split
(
';'
);
...
...
@@ -505,8 +599,10 @@ function actionExeCookieMap() {
for
(
i
=
0
;
i
<
cookiearr
.
length
;
i
++
)
{
temparr
=
cookiearr
[
i
].
split
(
'='
);
key
=
temparr
[
0
].
replace
(
/
\s
/g
,
''
);
window
.
cookieMap
[
key
]
=
temparr
[
1
];
if
(
typeof
temparr
[
0
]
!==
'undefined'
)
{
key
=
temparr
[
0
].
replace
(
/
\s
/g
,
''
);
cookieMap
[
key
]
=
temparr
[
1
];
}
}
}
/**
...
...
@@ -517,47 +613,47 @@ function actionFirstMenuClick() {
var
$cookieGender
;
$
(
'.first-nav-item'
).
click
(
function
()
{
$cookieGender
=
$
.
cookie
(
'_Gender'
);
$cookieGender
=
window
.
cookie
(
'_Gender'
);
if
(
typeof
$cookieGender
!==
'undefined'
&&
$cookieGender
!==
''
)
{
$
.
setc
ookie
(
'_Gender'
,
1
,
{
window
.
setC
ookie
(
'_Gender'
,
1
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
});
}
if
(
$
(
this
).
find
(
'.name-cn a'
).
text
()
===
'男生'
)
{
$
.
setc
ookie
(
'_Gender'
,
'1,3'
,
{
window
.
setC
ookie
(
'_Gender'
,
'1,3'
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
});
$
.
setc
ookie
(
'_Channel'
,
'boys'
,
{
window
.
setC
ookie
(
'_Channel'
,
'boys'
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
});
}
if
(
$
(
this
).
find
(
'.name-cn a'
).
text
()
===
'女生'
)
{
$
.
setc
ookie
(
'_Gender'
,
'2,3'
,
{
window
.
setC
ookie
(
'_Gender'
,
'2,3'
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
});
$
.
setc
ookie
(
'_Channel'
,
'girls'
,
{
window
.
setC
ookie
(
'_Channel'
,
'girls'
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
});
}
if
(
$
(
this
).
find
(
'.name-cn a'
).
text
()
===
'创意生活'
)
{
$
.
setc
ookie
(
'_Channel'
,
'lifestyle'
,
{
window
.
setC
ookie
(
'_Channel'
,
'lifestyle'
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
});
}
if
(
$
(
this
).
find
(
'.name-cn a'
).
text
()
===
'潮童'
)
{
$
.
setc
ookie
(
'_Channel'
,
'kids'
,
{
window
.
setC
ookie
(
'_Channel'
,
'kids'
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
,
expires
:
7
...
...
@@ -566,7 +662,7 @@ function actionFirstMenuClick() {
});
$
(
'#backToOld'
).
click
(
function
()
{
$
.
setc
ookie
(
'_New'
,
1
,
{
window
.
setC
ookie
(
'_New'
,
1
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
});
...
...
@@ -597,10 +693,10 @@ function loadCartData() {
method
:
'open.Shoppingcart.getCartData'
,
shopping_key
:
$
.
getShoppingKey
()
},
function
(
jsonData
)
{
if
(
window
.
cartTpl
===
''
)
{
window
.
cartTpl
=
handlebars
.
compile
(
$
(
'#mini-cart-tpl'
).
html
());
if
(
cartTpl
===
''
)
{
cartTpl
=
handlebars
.
compile
(
$
(
'#mini-cart-tpl'
).
html
());
}
$
(
'#miniCartBox'
).
children
(
'.gobuy-wrapper'
).
html
(
window
.
cartTpl
({
$
(
'#miniCartBox'
).
children
(
'.gobuy-wrapper'
).
html
(
cartTpl
({
carData
:
jsonData
}));
if
(
parseInt
(
$
(
'.ic-infomation'
).
html
())
===
0
)
{
...
...
@@ -608,11 +704,11 @@ function loadCartData() {
'<h3 class="information">您的购物车暂无商品</h3></div>'
);
}
if
(
$
(
'#miniCartBox .goods-list li'
).
length
<
1
)
{
shoppingInfo
=
$
.
cookie
(
'_g'
);
shoppingInfo
=
window
.
cookie
(
'_g'
);
shoppingData
=
json2
.
parse
(
shoppingInfo
);
if
(
shoppingData
!==
null
)
{
strK
=
'{"_k":"'
+
shoppingData
.
_k
+
'","_nac":0'
+
',"_ac":0,"_r":0}'
;
$
.
setc
ookie
(
'_g'
,
strK
,
{
window
.
setC
ookie
(
'_g'
,
strK
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
});
...
...
@@ -636,11 +732,11 @@ function delCartGoods(id, isreduce) {
id
:
id
,
isreduce
:
isreduce
},
function
(
jsonData
)
{
var
shoppingInfo
=
$
.
cookie
(
'_g'
);
var
shoppingInfo
=
window
.
cookie
(
'_g'
);
var
shoppingData
=
json2
.
parse
(
shoppingInfo
);
var
strK
=
'{"_k":"'
+
shoppingData
.
_k
+
'","_nac":'
+
jsonData
.
total_goods_num
+
',"_ac":0,"_r":0}'
;
$
.
setc
ookie
(
'_g'
,
strK
,
{
window
.
setC
ookie
(
'_g'
,
strK
,
{
path
:
'/'
,
domain
:
'.yohobuy.com'
});
...
...
@@ -752,43 +848,42 @@ function actionGetBannerAndNotice() {
var
firstarea
;
if
(
url
.
indexOf
(
'search'
)
!==
-
1
)
{
code
=
window
.
bannerMap
[
'search'
+
window
.
cookieMap
.
_Channel
];
code
=
bannerMap
[
'search'
+
cookieMap
.
_Channel
];
}
if
(
url
.
indexOf
(
'list'
)
!==
-
1
)
{
code
=
window
.
bannerMap
[
'list'
+
window
.
cookieMap
.
_Channel
];
code
=
bannerMap
[
'list'
+
cookieMap
.
_Channel
];
}
if
(
url
.
indexOf
(
'brands'
)
!==
-
1
)
{
code
=
window
.
bannerMap
[
'brands'
+
window
.
cookieMap
.
_Channel
];
code
=
bannerMap
[
'brands'
+
cookieMap
.
_Channel
];
}
if
(
url
.
indexOf
(
'new'
)
!==
-
1
)
{
code
=
window
.
bannerMap
[
'new'
+
window
.
cookieMap
.
_Channel
];
code
=
bannerMap
[
'new'
+
cookieMap
.
_Channel
];
}
if
(
url
.
indexOf
(
'sale'
)
!==
-
1
)
{
code
=
window
.
bannerMap
[
'sale'
+
window
.
cookieMap
.
_Channel
];
code
=
bannerMap
[
'sale'
+
cookieMap
.
_Channel
];
}
if
(
url
.
indexOf
(
'home'
)
!==
-
1
)
{
code
=
window
.
bannerMap
[
'home'
+
window
.
cookieMap
.
_Channel
];
code
=
bannerMap
[
'home'
+
cookieMap
.
_Channel
];
}
if
(
url
.
indexOf
(
'kids'
)
!==
-
1
)
{
code
=
window
.
bannerMap
[
INDEXKIDS
];
code
=
bannerMap
[
INDEXKIDS
];
}
if
(
url
.
indexOf
(
'woman'
)
!==
-
1
)
{
code
=
window
.
bannerMap
[
INDEXWOMAN
];
code
=
bannerMap
[
INDEXWOMAN
];
}
if
(
url
.
indexOf
(
'lifestyle'
)
!==
-
1
)
{
code
=
window
.
bannerMap
[
INDEXLIFESTYLE
];
code
=
bannerMap
[
INDEXLIFESTYLE
];
}
if
(
url
.
indexOf
(
'www.yohobuy.com'
)
!==
-
1
&&
window
.
location
.
pathname
===
'/'
)
{
code
=
window
.
bannerMap
[
INDEXBOYS
];
code
=
bannerMap
[
INDEXBOYS
];
}
firstarea
=
host
.
split
(
'.'
)[
0
];
if
(
firstarea
!==
'list'
&&
firstarea
!==
'search'
&&
firstarea
!==
'www'
&&
firstarea
!==
'new'
&&
firstarea
!==
'item'
&&
firstarea
!==
'guang'
)
{
code
=
window
.
bannerMap
[
UNIQUEBRAND
+
window
.
cookieMap
.
_Channel
];
code
=
bannerMap
[
UNIQUEBRAND
+
cookieMap
.
_Channel
];
}
getBannerData
(
code
);
//获得banner信息
getNoticeData
(
code
);
//获得公告信息
}
...
...
@@ -879,12 +974,12 @@ function actionLoginState(_data) {
'[<a href="http://www.yohobuy.com/reg.html" onclick="" class="list-a login-out">免费注册</a>]'
+
'{{/equalone}}'
;
var
$boxObj
=
$
(
'#loginBox'
);
var
info
=
$
.
cookie
(
'_UID'
)
||
''
;
var
name
=
_data
.
data
.
profile_name
||
''
;
var
info
=
window
.
cookie
(
'_UID'
);
var
name
=
_data
.
data
.
profile_name
;
var
_length
=
0
;
var
t
=
0
;
var
char
=
''
;
var
user
=
info
.
split
(
'::'
)
||
''
;
var
user
=
info
.
split
(
'::'
);
var
userName
=
user
[
0
]
||
' '
;
var
_logout
=
''
;
var
islogin
=
'1'
;
...
...
@@ -999,8 +1094,10 @@ function actionLoginInfo() {
};
$
.
getData
(
apiDomain
,
param
,
function
(
_data
)
{
actionLoginState
(
_data
);
// 更改登录状态
actionVipInfo
(
_data
);
//获得vip;
if
(
_data
.
result
!==
-
1
)
{
actionLoginState
(
_data
);
// 更改登录状态
actionVipInfo
(
_data
);
//获得vip;
}
});
}
/**
...
...
@@ -1011,6 +1108,7 @@ function init() {
actionExeTemplate
();
//处理模板
actionInitCookie
();
//初始化cookie
actionExeCookieMap
();
//格式化cookie
actionGoodsCart
();
//初始化购物车插件
actionYoHoGroup
();
// yoho集团鼠标效果
actionTopTagToggle
();
// yoho上部分开关
actionTopLogoAnimate
();
//yoho logo动画
...
...
web-static/js/passport/login.js
View file @
2cebc90
...
...
@@ -25,6 +25,8 @@ var $emailAutoComplete = $('#email-autocomplete');
var
mailPhoneRegx
=
require
(
'./mail-phone-regx'
);
var
$remember
=
$
(
'.remember-me'
);
//checkbox status unicode
var
checkbox
=
{
checked
:
''
,
...
...
@@ -232,7 +234,7 @@ $emailAutoComplete.on('click', 'li', function() {
});
//记住登录状态
$
(
'.remeber-me'
)
.
on
(
'click'
,
function
()
{
$
remember
.
on
(
'click'
,
function
()
{
var
$this
=
$
(
this
);
$this
.
toggleClass
(
'checked'
);
...
...
@@ -266,15 +268,19 @@ $('#login-btn').on('click', function() {
data
:
{
areaCode
:
$countryCodeHide
.
val
().
replace
(
'+'
,
''
),
account
:
$
.
trim
(
$account
.
val
()),
password
:
$
.
trim
(
$password
.
val
())
password
:
$
.
trim
(
$password
.
val
()),
isRemember
:
$remember
.
hasClass
(
'checked'
)
?
true
:
false
},
success
:
function
(
data
)
{
if
(
data
.
code
===
400
)
{
if
(
data
.
code
===
200
)
{
if
(
data
.
data
)
{
//防止data.data为undefined时下行语句执行出错而导致脚本不能走到complete去处理authing
location
.
href
=
data
.
data
.
href
;
}
}
else
{
$passwordTip
.
removeClass
(
'hide'
).
children
(
'em'
).
text
(
data
.
message
);
$password
.
addClass
(
'error'
);
return
;
}
else
{
location
.
href
=
data
.
data
.
href
;
}
},
complete
:
function
()
{
...
...
web-static/js/passport/reg.js
View file @
2cebc90
...
...
@@ -136,9 +136,10 @@ function picCaptchaAjaxFn(page, callback) {
type
:
'POST'
,
url
:
url
,
data
:
{
code
:
$ca
.
val
(),
mobile
:
$pn
.
val
(),
area
:
$region
.
text
().
split
(
'+'
)[
1
]
code
:
$ca
.
val
()
//mobile: $pn.val(),
//area: $region.text().split('+')[1]
}
}).
then
(
function
(
data
)
{
switch
(
data
.
code
)
{
...
...
@@ -530,7 +531,7 @@ exports.init = function(page) {
data
:
{
area
:
$region
.
text
().
split
(
'+'
)[
1
],
mobile
:
$pn
.
val
(),
captcha
:
$ca
.
val
(),
verifyCode
:
$ca
.
val
(),
code
:
$mc
.
val
(),
password
:
$pwd
.
val
()
}
...
...
web-static/sass/passport/_login.scss
View file @
2cebc90
...
...
@@ -60,7 +60,7 @@ $third: sprite-map("passport/third/*.png");
}
}
.remeber-me
{
.reme
m
ber-me
{
cursor
:
pointer
;
}
...
...
web-static/sass/product/_index.scss
View file @
2cebc90
@import
"search"
,
"list"
,
"new-sale"
,
"filter-box"
,
"sort-pager"
,
"good"
,
"latest-walk"
,
"left-content"
,
"no-result"
;
@import
"search"
,
"list"
,
"new-sale"
,
"filter-box"
,
"sort-pager"
,
"good"
,
"latest-walk"
,
"left-content"
,
"no-result"
,
"hot-rank"
;
.product-page
{
...
...
yohobuy/www.yohobuy.com/application/Bootstrap.php
View file @
2cebc90
...
...
@@ -90,6 +90,10 @@ class Bootstrap extends Bootstrap_Abstract
case
'list'
:
// 商品列表
$module
=
'Product'
;
break
;
case
'sale'
://
促销
$module
=
'Product'
;
$controller
=
'sale'
;
default
:
// 其它(识别为品牌)
$module
=
'Product'
;
$action
=
'Brand'
;
...
...
yohobuy/www.yohobuy.com/application/models/Passport/Passport.php
View file @
2cebc90
...
...
@@ -24,6 +24,7 @@ class PassportModel
const
BACK_LFFT_BANNER_CODE
=
'3bbaf502c447a2ddad60879042e286d8'
;
//找回密码左边的banner
const
SIGNIN_LEFT_BANNER_CODE
=
'db350894e01e90eac55cd3a13ad77331'
;
//登录页左边的banner
const
AUTOUSERINFO_LEFT_BANNER_CODE
=
'c62d5da06d843b6ed78d8d27e87fa143'
;
//完善信息页左边的banner
const
BACK_FIND_SECRET_KEY
=
'_+@#$%^'
;
//简单头部
public
static
function
getSimpleHeader
(
$isLogin
,
$username
=
''
)
...
...
@@ -75,6 +76,11 @@ class PassportModel
$ret
[
'img'
]
=
Images
::
getImageUrl
(
$val
[
'src'
],
252
,
190
);
$ret
[
'url'
]
=
$val
[
'url'
];
}
else
{
$ret
[
'img'
]
=
'http://img12.static.yhbimg.com/yhb-img01/2015/12/01/07/020a0b6e7ff908d0c2bc4045b4fef42b9f.png?imageView/2/w/252/h/190'
;
$ret
[
'url'
]
=
''
;
}
return
$ret
;
}
...
...
yohobuy/www.yohobuy.com/application/models/Product/Search.php
View file @
2cebc90
...
...
@@ -49,12 +49,7 @@ class SearchModel
//用户浏览记录
$result
[
'data'
][
'filter'
][
'review'
]
=
SearchData
::
getRecentReview
();
// 组织模板数据
$list
=
HelperSearch
::
getList
(
$result
,
$options
);
$data
=
array
(
//初始化js
'productListPage'
=>
true
,
'list'
=>
$list
);
$data
=
HelperSearch
::
getList
(
$result
,
$options
);
}
return
$data
;
}
...
...
@@ -67,31 +62,21 @@ class SearchModel
*/
public
static
function
searchData
(
$condition
,
$options
){
$data
=
self
::
getSearchData
(
$condition
,
$options
);
//过滤频道
if
(
isset
(
$condition
[
'gender'
]))
{
unset
(
$data
[
'list'
][
'filters'
][
'channel'
]);
}
//过滤品牌
if
(
isset
(
$condition
[
'brand'
]))
{
unset
(
$data
[
'list'
][
'filters'
][
'brand'
]);
}
//过滤价格
if
(
isset
(
$condition
[
'price'
]))
{
unset
(
$data
[
'list'
][
'filters'
][
'price'
]);
unset
(
$data
[
'list'
][
'filters'
][
'customPrice'
]);
}
//过滤颜色
if
(
isset
(
$condition
[
'color'
]))
{
unset
(
$data
[
'list'
][
'filters'
][
'color'
]);
}
//过滤风格
if
(
isset
(
$condition
[
'style'
]))
{
unset
(
$data
[
'list'
][
'filters'
][
'seniorChose'
]);
}
//过滤尺码
if
(
isset
(
$condition
[
'size'
]))
{
unset
(
$data
[
'list'
][
'filters'
][
'size'
]);
//获取品牌店铺信息
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
();
return
$data
;
}
...
...
yohobuy/www.yohobuy.com/application/modules/Passport/controllers/Back.php
View file @
2cebc90
...
...
@@ -56,6 +56,7 @@ class BackController extends WebAction
$data
=
BackData
::
sendCodeToMobile
(
$mobile
);
$this
->
setSession
(
'phoneNum'
,
$phoneNum
);
$this
->
setSession
(
'area'
,
$area
);
$this
->
setSession
(
'captcha'
,
$captcha
);
if
(
$data
[
'code'
]
==
200
)
{
$this
->
redirect
(
'verification'
);
}
...
...
@@ -66,7 +67,7 @@ class BackController extends WebAction
}
/**
* 发送邮件
* 发送邮件
页面
*/
public
function
sendemailAction
()
{
$phoneNum
=
$this
->
getSession
(
'phoneNum'
);
...
...
@@ -96,14 +97,14 @@ class BackController extends WebAction
'sendEmail'
=>
array
(
'coverHref'
=>
$banner
[
'url'
],
'coverImg'
=>
$banner
[
'img'
],
'countrys'
=>
array
()
'countrys'
=>
array
()
,
)
);
$this
->
_view
->
display
(
'send-email'
,
$data
);
}
/**
* 重置密码
* 重置密码
页面
*/
public
function
backcodeAction
()
{
$code
=
$this
->
get
(
'code'
);
...
...
@@ -118,14 +119,15 @@ class BackController extends WebAction
'resetPwd'
=>
array
(
'coverHref'
=>
$banner
[
'url'
],
'coverImg'
=>
$banner
[
'img'
],
'countrys'
=>
array
()
'countrys'
=>
array
(),
'code'
=>
$code
,
)
);
$this
->
_view
->
display
(
'reset-pwd'
,
$data
);
}
/**
* 更新密码
* 更新密码
接口
*
*/
public
function
updateAction
()
...
...
@@ -134,10 +136,22 @@ class BackController extends WebAction
$password
=
$this
->
post
(
'pwd'
);
$info
=
$this
->
checkCode
(
$code
);
if
(
Helpers
::
verifyPassword
(
$password
)
&&
!
empty
(
$info
))
{
$uid
=
$info
[
'uid'
];
//修改密码
if
(
isset
(
$info
[
'mobile'
]))
{
//手机号修改密码
$mobile
=
$info
[
'mobile'
];
$token
=
$info
[
'token'
];
$area
=
$info
[
'area'
];
$data
=
BackData
::
modifyPasswordByMobile
(
$mobile
,
$token
,
$password
,
$area
);
if
(
$data
[
'code'
])
{
$this
->
redirect
(
'resetSuccess'
);
}
}
else
if
(
isset
(
$info
[
'uid'
]))
{
//其他方式修改密码
$uid
=
$info
[
'uid'
];
$this
->
redirect
(
'resetSuccess'
);
}
}
//跳转错误页面
$this
->
redirect
(
'/error/index'
);
}
/**
...
...
@@ -157,14 +171,15 @@ class BackController extends WebAction
}
/**
* 手机验证
* 手机验证
页面
*/
public
function
verificationAction
()
{
$phoneNum
=
$this
->
getSession
(
'phoneNum'
);
$area
=
$this
->
getSession
(
'area'
);
// if(empty($phoneNum)) {
// $this->redirect('index');
// }
$captcha
=
$this
->
getSession
(
'captcha'
);
if
(
empty
(
$phoneNum
))
{
$this
->
redirect
(
'index'
);
}
$banner
=
PassportModel
::
getLeftBanner
(
PassportModel
::
BACK_LFFT_BANNER_CODE
);
$data
=
array
(
'simpleHeader'
=>
PassportModel
::
getSimpleHeader
(
false
),
...
...
@@ -174,6 +189,7 @@ class BackController extends WebAction
'coverImg'
=>
$banner
[
'img'
],
'phoneNum'
=>
$phoneNum
,
'area'
=>
$area
,
'captcha'
=>
$captcha
,
'countrys'
=>
array
()
)
);
...
...
@@ -181,6 +197,32 @@ class BackController extends WebAction
}
/**
* 手机找回密码验证
*/
public
function
backmobileAction
()
{
$mobile
=
$this
->
post
(
'mobile'
);
//phoneNum
$area
=
$this
->
post
(
'area'
);
//$captcha = $this->post('captcha');
$code
=
$this
->
post
(
'captcha'
);
//code
if
(
$this
->
getSession
(
'phoneNum'
)
==
$mobile
&&
$this
->
getSession
(
'area'
)
==
$area
)
{
$result
=
BackData
::
validateMobileCode
(
$mobile
,
$code
,
$area
);
if
(
$result
[
'code'
]
==
200
)
{
$str
=
json_encode
(
array
(
'mobile'
=>
$mobile
,
'area'
=>
$area
,
'token'
=>
$result
[
'data'
][
'token'
],
'create_time'
=>
time
()
));
$code
=
AuthCode
::
encode
(
$str
,
PassportModel
::
BACK_FIND_SECRET_KEY
);
$url
=
'/passport/back/backcode?code='
.
base64_encode
(
$code
);
$this
->
redirect
(
SITE_MAIN
.
$url
);
}
}
}
/**
* 检查code
*
* @param string $code
...
...
@@ -188,9 +230,8 @@ class BackController extends WebAction
*/
private
function
checkCode
(
$code
)
{
$key
=
'_+@#$%^'
;
$code
=
base64_decode
(
$code
);
$info
=
json_decode
(
AuthCode
::
decode
(
$code
,
$key
),
true
);
$info
=
json_decode
(
AuthCode
::
decode
(
$code
,
PassportModel
::
BACK_FIND_SECRET_KEY
),
true
);
if
(
$info
[
'create_time'
]
<
1
||
(
time
()
-
$info
[
'create_time'
])
>
86400
)
{
return
array
();
}
...
...
yohobuy/www.yohobuy.com/application/modules/Passport/controllers/Login.php
View file @
2cebc90
<?php
use
Action\
Abstract
Action
;
use
Action\
Web
Action
;
use
LibModels\Web\Passport\RegData
;
use
LibModels\Web\Passport\LoginData
;
use
Passport\PassportModel
as
PassportModel
;
use
Plugin\Helpers
;
class
LoginController
extends
AbstractAction
class
LoginController
extends
WebAction
{
/**
...
...
@@ -23,7 +22,7 @@ class LoginController extends AbstractAction
$this
->
setCookie
(
'_TOKEN'
,
''
);
//登录后跳转页面
$refer
=
empty
(
$_SERVER
[
"HTTP_REFERER"
])
?
''
:
$_SERVER
[
"HTTP_REFERER"
];
$refer
=
empty
(
$_SERVER
[
"HTTP_REFERER"
])
?
''
:
$_SERVER
[
"HTTP_REFERER"
];
if
(
!
empty
(
$refer
))
{
$this
->
setCookie
(
'refer'
,
$refer
);
}
...
...
@@ -40,13 +39,21 @@ class LoginController extends AbstractAction
$simpleHeader
=
PassportModel
::
getSimpleHeader
(
$isLogin
,
$username
);
//获取登陆页左侧资源
$cover
=
PassportModel
::
getLeftBanner
(
PassportModel
::
SIGNIN_LEFT_BANNER_CODE
);
//是否记住密码
$isRemember
=
$this
->
getCookie
(
'isRemember'
,
FALSE
);
$account
=
''
;
$password
=
''
;
if
(
$isRemember
)
{
$account
=
$this
->
decrypt
(
$this
->
getCookie
(
'account'
,
''
));
$password
=
$this
->
decrypt
(
$this
->
getCookie
(
'userInfo'
,
''
));
}
//整合
$data
=
array
(
'loginPage'
=>
true
,
'simpleHeader'
=>
$simpleHeader
,
'passport'
=>
array
(
'coverHref'
=>
$cover
[
'url'
],
'coverImg'
=>
!
empty
(
$cover
[
'img'
])
?
$cover
[
'img'
]
:
'http://img12.static.yhbimg.com/yhb-img01/2015/12/01/07/020a0b6e7ff908d0c2bc4045b4fef42b9f.png?imageView/2/w/252/h/190'
,
'coverImg'
=>
!
empty
(
$cover
[
'img'
])
?
$cover
[
'img'
]
:
'http://img12.static.yhbimg.com/yhb-img01/2015/12/01/07/020a0b6e7ff908d0c2bc4045b4fef42b9f.png?imageView/2/w/252/h/190'
,
'countryCode'
=>
'+86'
,
'countryName'
=>
'中国'
,
'countryList'
=>
RegData
::
getAreasData
(),
...
...
@@ -58,6 +65,9 @@ class LoginController extends AbstractAction
'alipayLogin'
=>
Helpers
::
url
(
'/passport/autosign/alipay'
),
'doubanLogin'
=>
Helpers
::
url
(
'/passport/autosign/douban'
),
'renrenLogin'
=>
Helpers
::
url
(
'/passport/autosign/renren'
),
'isRemember'
=>
$isRemember
,
'password'
=>
$password
,
'account'
=>
$account
),
);
...
...
@@ -84,15 +94,17 @@ class LoginController extends AbstractAction
/* 判断参数是否传递 */
$area
=
trim
(
$this
->
post
(
'areaCode'
,
'86'
));
$
profile
=
trim
(
$this
->
post
(
'account'
));
$
account
=
trim
(
$this
->
post
(
'account'
));
$password
=
trim
(
$this
->
post
(
'password'
));
if
(
!
is_numeric
(
$area
)
||
empty
(
$profile
)
||
empty
(
$password
))
{
$isRemember
=
trim
(
$this
->
post
(
'isRemember'
));
$isRemember
=
false
;
if
(
!
is_numeric
(
$area
)
||
empty
(
$account
)
||
empty
(
$password
))
{
break
;
}
/* 判断参数是否有效 */
$verifyEmail
=
Helpers
::
verifyEmail
(
$profile
);
$verifyMobile
=
(
$area
===
'86'
)
?
Helpers
::
verifyMobile
(
$profile
)
:
Helpers
::
verifyAreaMobile
(
$profile
,
$area
);
$verifyEmail
=
Helpers
::
verifyEmail
(
$account
);
$verifyMobile
=
(
$area
===
'86'
)
?
Helpers
::
verifyMobile
(
$account
)
:
Helpers
::
verifyAreaMobile
(
$account
,
$area
);
if
(
!
$verifyEmail
&&
!
$verifyMobile
)
{
break
;
}
...
...
@@ -106,10 +118,21 @@ class LoginController extends AbstractAction
/* 调用登录接口进行登录 */
// 获取未登录时的唯一识别码
$shoppingKey
=
Helpers
::
getShoppingKeyByCookie
();
$data
=
LoginData
::
signin
(
$area
,
$
profile
,
$password
,
$shoppingKey
);
$data
=
LoginData
::
signin
(
$area
,
$
account
,
$password
,
$shoppingKey
);
if
(
!
isset
(
$data
[
'code'
])
||
$data
[
'code'
]
!=
200
||
!
isset
(
$data
[
'data'
][
'uid'
]))
{
break
;
}
//登录成功记录账户信息
if
(
$isRemember
)
{
$this
->
setCookie
(
'account'
,
$this
->
encrypt
(
$account
),
time
()
+
3600
*
24
*
7
,
'/'
);
$this
->
setCookie
(
'userInfo'
,
$this
->
encrypt
(
$password
),
time
()
+
3600
*
24
*
7
,
'/'
);
$this
->
setCookie
(
'isRemember'
,
$isRemember
,
time
()
+
3600
*
24
*
7
);
}
else
{
$this
->
setCookie
(
'account'
,
''
,
-
1
,
'/'
);
$this
->
setCookie
(
'userInfo'
,
''
,
-
1
,
'/'
);
$this
->
setCookie
(
'isRemember'
,
''
,
-
1
,
'/'
);
}
$refer
=
$this
->
getCookie
(
'refer'
);
if
(
empty
(
$refer
))
{
...
...
@@ -152,4 +175,60 @@ class LoginController extends AbstractAction
$this
->
go
(
$refer
);
}
/*
* 加密算法
*/
private
function
encrypt
(
$data
,
$key
=
'yohobuy'
)
{
$key
=
md5
(
$key
);
$x
=
0
;
$str
=
''
;
$char
=
''
;
$len
=
strlen
(
$data
);
$l
=
strlen
(
$key
);
for
(
$i
=
0
;
$i
<
$len
;
$i
++
)
{
if
(
$x
==
$l
)
{
$x
=
0
;
}
$char
.=
$key
{
$x
};
$x
++
;
}
for
(
$i
=
0
;
$i
<
$len
;
$i
++
)
{
$str
.=
chr
(
ord
(
$data
{
$i
})
+
(
ord
(
$char
{
$i
}))
%
256
);
}
return
base64_encode
(
$str
);
}
/*
* 解密算法
*/
private
function
decrypt
(
$data
,
$key
=
'yohobuy'
)
{
$key
=
md5
(
$key
);
$x
=
0
;
$str
=
''
;
$char
=
''
;
$data
=
base64_decode
(
$data
);
$len
=
strlen
(
$data
);
$l
=
strlen
(
$key
);
for
(
$i
=
0
;
$i
<
$len
;
$i
++
)
{
if
(
$x
==
$l
)
{
$x
=
0
;
}
$char
.=
substr
(
$key
,
$x
,
1
);
$x
++
;
}
for
(
$i
=
0
;
$i
<
$len
;
$i
++
)
{
if
(
ord
(
substr
(
$data
,
$i
,
1
))
<
ord
(
substr
(
$char
,
$i
,
1
)))
{
$str
.=
chr
((
ord
(
substr
(
$data
,
$i
,
1
))
+
256
)
-
ord
(
substr
(
$char
,
$i
,
1
)));
}
else
{
$str
.=
chr
(
ord
(
substr
(
$data
,
$i
,
1
))
-
ord
(
substr
(
$char
,
$i
,
1
)));
}
}
return
$str
;
}
}
...
...
yohobuy/www.yohobuy.com/application/modules/Product/controllers/List.php
View file @
2cebc90
...
...
@@ -90,7 +90,12 @@ class ListController extends WebAction
$params
=
array_filter
(
$params
);
//每页记录数减1,下一页占位
$params
[
'viewNum'
]
=
$params
[
'viewNum'
]
-
1
;
$data
=
SearchModel
::
getSearchData
(
$params
,
$options
);
$list
=
SearchModel
::
getSearchData
(
$params
,
$options
);
$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 @
2cebc90
...
...
@@ -30,8 +30,6 @@ class SearchController extends WebAction
foreach
(
$condition
as
$key
=>
$val
){
$condition
[
$key
]
=
rawurldecode
(
$val
);
}
//关键词
$condition
[
'query'
]
=
'鞋'
;
//性別(频道)
$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
;
...
...
@@ -57,7 +55,7 @@ class SearchController extends WebAction
$minImgSize
=
array
(
60
,
80
);
}
//自定义搜索价格
if
(
isset
(
$condition
[
'price'
])
||
!
empty
(
$condition
[
'price'
]))
{
if
(
isset
(
$condition
[
'price'
])
&&
!
empty
(
$condition
[
'price'
]))
{
$price
=
explode
(
','
,
$condition
[
'price'
]);
if
(
!
$price
[
0
])
{
$price
[
0
]
=
0
;
...
...
@@ -90,13 +88,15 @@ class SearchController extends WebAction
$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
);
$data
[
'search'
]
=
$searchData
[
'list'
];
$this
->
_view
->
display
(
'search'
,
$data
);
}
}
\ No newline at end of file
...
...
Please
register
or
login
to post a comment