Toggle navigation
Toggle navigation
This project
Loading...
Sign in
fe
/
YOHOBUYWAP
·
Commits
Go to a project
GitLab
Go to group
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
hf
9 years ago
Commit
6e74040523b7a650c8cc5cdd01b9d5e560d980b1
1 parent
0bb4f296
code review by fei.hong: do merge develop code change Plugin
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
132 additions
and
39 deletions
library/Plugin/Helpers.php
library/Plugin/Helpers.php
View file @
6e74040
...
...
@@ -10,9 +10,9 @@ class Helpers
/**
* 构建网站的URL
*
*
* 备注:所有的URL构建都尽量使用该方法,便于以后维护.
*
*
* @param string $uri 如 "/passport/reg/index"
* @param array $param 参数项 array(key1 => value1, key2 => value2,),默认为array()
* @param string $module 模块名 如"index"表示默认, "guang"表示逛,"list"表示商品列表,"search"表示搜索
...
...
@@ -53,7 +53,7 @@ class Helpers
/**
* 根据尺寸获得图片url
*
*
* @param string $url 路径
* @param integer $width 图片宽度
* @param integer $height 图片高度
...
...
@@ -67,7 +67,7 @@ class Helpers
/**
* 获取过滤APP里附加参数后的URL链接
*
*
* @param string $url 路径
* @return string 去除掉如&openby:yohobuy={"action":"go.brand"}这样的APP附加参数
*/
...
...
@@ -84,7 +84,7 @@ class Helpers
/**
* 根据用户访问的COOKIE判断出性别
*
*
* @return string
*/
public
static
function
getGenderByCookie
()
...
...
@@ -102,7 +102,7 @@ class Helpers
/**
* 根据用户访问的COOKIE判断出频道
*
*
* @return int
*/
public
static
function
getChannelByCookie
()
...
...
@@ -124,19 +124,18 @@ class Helpers
/**
* 从用户加入购物车的COOKIE取出购物车凭证
*
*
* @return string
*/
public
static
function
getShoppingKeyByCookie
()
{
$cookie
=
isset
(
$_COOKIE
[
'_SPK'
])
?
$_COOKIE
[
'_SPK'
]
:
''
;
return
$cookie
;
}
/**
* 获取商品的ICON
*
*
* @param int $type
* @return array
*/
...
...
@@ -191,12 +190,12 @@ class Helpers
*/
public
static
function
transPrice
(
$price
)
{
return
number_format
(
$price
,
2
,
'.'
,
''
)
;
return
!
empty
(
$price
)
?
number_format
(
$price
,
2
,
'.'
,
''
)
:
0
;
}
/**
* 格式化商品信息
*
*
* @param array $productData 需要格式化的商品数据
* @param bool $showTags 控制是否显示标签
* @param bool $showNew 控制是否显示NEW图标
...
...
@@ -219,9 +218,19 @@ class Helpers
$productData
[
'market_price'
]
=
false
;
}
// 如果$productData['default_images']为空,就取$productData['goods_list']中第一个,为空就不处理
if
(
empty
(
$productData
[
'default_images'
]))
{
$productData
[
'default_images'
]
=
$productData
[
'goods_list'
][
0
][
'images_url'
];
// 判别默认的商品是否将默认的图片URL赋值到skn
$flag
=
false
;
// 如果设置了默认图片,就取默认的图片
foreach
(
$productData
[
'goods_list'
]
as
$oneGoods
)
{
// 此skc是默认的,则将图片赋值给skn
if
(
$oneGoods
[
'is_default'
]
===
'Y'
)
{
$productData
[
'default_images'
]
=
self
::
procProductImg
(
$oneGoods
);
$flag
=
true
;
}
}
// 如果还未赋值,则取第一个skc产品的默认图片
if
(
!
$flag
)
{
$productData
[
'default_images'
]
=
self
::
procProductImg
(
$productData
[
'goods_list'
][
0
]);
}
$result
=
array
();
...
...
@@ -237,8 +246,8 @@ class Helpers
}
$result
[
'is_soon_sold_out'
]
=
(
$productData
[
'is_soon_sold_out'
]
===
'Y'
);
$result
[
'url'
]
=
self
::
url
(
'/product/pro_'
.
$productData
[
'product_id'
]
.
'_'
.
$productData
[
'goods_list'
][
0
][
'goods_id'
]
.
'/'
.
$productData
[
'cn_alphabet'
]
.
'.html'
);
.
$productData
[
'goods_list'
][
0
][
'goods_id'
]
.
'/'
.
$productData
[
'cn_alphabet'
]
.
'.html'
);
// APP访问需要加附加的参数
// 备注:如果以后APP的接口太多,可以把这边参数提取出来,变成一个公共的方法来生成,便于以后管理维护
if
(
$isApp
)
{
...
...
@@ -260,7 +269,7 @@ class Helpers
}
// 打折与其它组合则隐藏打折
elseif
(
$result
[
'tags'
][
'is_discount'
]
&&
(
$result
[
'tags'
][
'is_new'
]
||
$result
[
'tags'
][
'is_limited'
]
||
$result
[
'tags'
][
'is_yohood'
]
||
$result
[
'tags'
][
'is_advance'
]))
{
(
$result
[
'tags'
][
'is_new'
]
||
$result
[
'tags'
][
'is_limited'
]
||
$result
[
'tags'
][
'is_yohood'
]
||
$result
[
'tags'
][
'is_advance'
]))
{
$result
[
'tags'
][
'is_discount'
]
=
false
;
}
// YOHOOD和新品组合显示YOHOOD
...
...
@@ -273,8 +282,30 @@ class Helpers
}
/**
* 根据性别来决定 默认图片获取字段 如果是 2、3
*
* 则优先从cover2 --》 cover1 -- 》 images_url
* 否则优先从cover1 --》 cover2 -- 》 images_url
*
* @param array $images
* @return string 商品图片
*/
public
static
function
procProductImg
(
$images
)
{
$imgUrl
=
isset
(
$images
[
'images_url'
])
?
$images
[
'images_url'
]
:
''
;
$cover1
=
isset
(
$images
[
'cover_1'
])
?
$images
[
'cover_1'
]
:
''
;
$cover2
=
isset
(
$images
[
'cover_2'
])
?
$images
[
'cover_2'
]
:
''
;
$gender
=
self
::
getGenderByCookie
();
if
(
$gender
===
'2,3'
)
{
return
!
empty
(
$cover2
)
?
$cover2
:
(
!
empty
(
$cover1
)
?
$cover1
:
$imgUrl
);
}
else
{
return
!
empty
(
$cover1
)
?
$cover1
:
(
!
empty
(
$cover2
)
?
$cover2
:
$imgUrl
);
}
}
/**
* 格式化资讯文章
*
*
* @param array $articleData 需要格式化的资讯数据
* @param bool $showTag 是否显示左上角标签
* @param mixed $isApp 是否显示分享,在APP客户端里嵌入需要传url链接
...
...
@@ -349,7 +380,7 @@ class Helpers
/**
* 格式化广告焦点图数据
*
*
* @param array $bannerData 需要格式化的广告图数据
* @param int $width 图片的宽度
* @param int $height 图片的高度
...
...
@@ -371,7 +402,7 @@ class Helpers
/**
* 生成公开的TOKEN凭证
*
*
* @param string $string 字符串
* @return string
*/
...
...
@@ -382,7 +413,7 @@ class Helpers
/**
* 验证TOKEN凭证
*
*
* @param string $string 字符串
* @param string $token 公开访问TOKEN
* @return bool
...
...
@@ -398,7 +429,7 @@ class Helpers
/**
* 验证手机是否合法
*
*
* @param int $mobile
* @return boolean
*/
...
...
@@ -412,7 +443,7 @@ class Helpers
/**
* 验证密码是否合法
*
*
* @param int $password
* @return boolean
*/
...
...
@@ -426,7 +457,7 @@ class Helpers
/**
* 验证邮箱是否合法
*
*
* @param string $email
* @return boolean
*/
...
...
@@ -439,19 +470,18 @@ class Helpers
}
/**
* 验证国际手机号是否合法
*
* 验证国际手机号是否合法
*
* @param string $areaMobile
* @param int $area
* @return boolean
*/
public
static
function
verifyAreaMobile
(
$areaMobile
,
$area
)
public
static
function
verifyAreaMobile
(
$areaMobile
)
{
if
(
empty
(
$areaMobile
))
{
return
false
;
}
if
(
!
strpos
(
$areaMobile
,
'-'
))
{
return
self
::
areaMobielVerify
(
$areaMobile
,
$area
);
return
self
::
areaMobielVerify
(
$areaMobile
);
}
else
{
$mobileData
=
explode
(
'-'
,
$areaMobile
);
if
(
count
(
$mobileData
)
!=
2
)
{
...
...
@@ -462,6 +492,26 @@ class Helpers
}
/**
* 根据url获取拼接之后的地址,用于用户清理缓存
* @param string $url url地址
* @param string $channel 频道,默认为woman
*
* @return string 处理之后的地址
*/
public
static
function
transUrl
(
$url
,
$channel
=
'woman'
)
{
$extra
=
''
;
if
(
!
empty
(
$url
)
&&
stripos
(
$url
,
'?'
)
===
false
)
{
$extra
=
'?channel='
.
$channel
;
}
if
(
!
empty
(
$url
)
&&
stripos
(
$url
,
'?'
)
!==
false
){
$extra
=
'&channel='
.
$channel
;
}
return
$url
.
$extra
;
}
/**
* 各国手机号规则
*/
private
static
function
areaMobielVerify
(
$mobile
,
$area
=
86
)
...
...
@@ -520,7 +570,7 @@ class Helpers
/**
* 格式化订单商品
*
*
* @param array $orderGoods 订单
* @param int $count 计订单件数
* @param bool $haveLink 控制是否需要商品链接
...
...
@@ -558,7 +608,7 @@ class Helpers
return
$arr
;
}
/**
/**
* 格式化购物车商品
*
* @param array $cartGoods 购物车商品列表
...
...
@@ -662,7 +712,7 @@ class Helpers
return
$arr
;
}
/**
* 订单状态,按订单支付类型和订单状态
* @var array
...
...
@@ -711,7 +761,7 @@ class Helpers
/**
* 获取会员的级别
*
*
* @param string $vipInfo
* @return int
*/
...
...
@@ -739,9 +789,9 @@ class Helpers
/**
* 同步用户的会话
*
*
* 转向老的PHP服务器上处理, 因购物车相关的操作会依赖SESSION
*
*
* @param int $uid 用户ID
* @param string $refer 访问来源
* @param string $callback 回调方法名
...
...
@@ -750,14 +800,14 @@ class Helpers
public
static
function
syncUserSession
(
$uid
,
$refer
=
''
,
$callback
=
'call'
)
{
return
'http://mapi.yohobuy.com/Passport/session/index?callback='
.
$callback
.
'&sign='
.
md5
(
md5
(
$uid
.
'Js8Yn0!EwPM45-ws'
))
.
'&uid='
.
$uid
.
'&go='
.
$refer
;
.
'&sign='
.
md5
(
md5
(
$uid
.
'Js8Yn0!EwPM45-ws'
))
.
'&uid='
.
$uid
.
'&go='
.
$refer
;
}
/**
* 退出清除用户的会话
*
*
* 转向老的PHP服务器上处理, 因购物车相关的操作会依赖SESSION
*
*
* @param int $uid 用户ID
* @param string $refer 访问来源
* @param string $callback 回调方法名
...
...
@@ -766,7 +816,50 @@ class Helpers
public
static
function
logoutSession
(
$token
,
$refer
=
''
,
$callback
=
'call'
)
{
return
'http://mapi.yohobuy.com/Passport/session/logout?callback='
.
$callback
.
'&sign='
.
md5
(
md5
(
'Js8Yn0!EwPM45-ws'
))
.
'&token='
.
$token
.
'&go='
.
$refer
;
.
'&sign='
.
md5
(
md5
(
'Js8Yn0!EwPM45-ws'
))
.
'&token='
.
$token
.
'&go='
.
$refer
;
}
/**
* 根据skc获取商品链接
* @param unknown $productSkc
* @return string
*/
public
static
function
getUrlBySkc
(
$product_id
,
$goods_id
,
$cn_alphabet
=
''
)
{
if
(
empty
(
$cn_alphabet
))
{
$cn_alphabet
=
'goods.html'
;
}
return
'http://item.yohobuy.com/product/pro_'
.
$product_id
.
'_'
.
$goods_id
.
'/'
.
$cn_alphabet
.
'.html'
;
}
/**
* 获取真实IP
*
* @return string
*/
public
static
function
getClientIp
()
{
$ip
=
'0.0.0.0'
;
if
(
isset
(
$_SERVER
[
'HTTP_CLIENT_IP'
])
&&
$_SERVER
[
'HTTP_CLIENT_IP'
]
!=
''
)
$ip
=
$_SERVER
[
'HTTP_CLIENT_IP'
];
elseif
(
isset
(
$_SERVER
[
'HTTP_X_FORWARDED_FOR'
])
&&
$_SERVER
[
'HTTP_X_FORWARDED_FOR'
]
!=
''
)
$ip
=
$_SERVER
[
'HTTP_X_FORWARDED_FOR'
];
elseif
(
isset
(
$_SERVER
[
'REMOTE_ADDR'
])
&&
$_SERVER
[
'REMOTE_ADDR'
]
!=
''
)
$ip
=
$_SERVER
[
'REMOTE_ADDR'
];
return
$ip
;
}
/**
* 组合国际手机号
* @param $area
* @param $mobile
* @return string
*/
public
static
function
makeMobile
(
$area
,
$mobile
)
{
if
(
empty
(
$area
)
||
$area
==
86
){
return
$mobile
;
}
return
$area
.
'-'
.
$mobile
;
}
}
...
...
Please
register
or
login
to post a comment