Toggle navigation
Toggle navigation
This project
Loading...
Sign in
fe
/
YOHOOD
·
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
Plain Diff
Browse Files
Authored by
2586703@qq.com
10 years ago
Commit
ee8fc799178b89147a7db7772d6ee8f747347b6d
2 parents
63f8d6d3
8d331039
Merge branch 'develop' of
http://git.dev.yoho.cn/web/yohood
into develop
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
183 additions
and
30 deletions
res/js/yohood.js
website/controller/News.class.php
website/controller/Show.class.php
website/facade/News.class.php
website/lib/utils/cache/Data.class.php
website/lib/wechat/JSSDK.class.php
website/service/News.class.php
website/sqlmap/news/sqlmap-news.xml
website/view/layout/default_layout_mobile.php
website/view/script/news/detailmobile.php
website/view/script/news/indexmobile.php
res/js/yohood.js
View file @
ee8fc79
...
...
@@ -64,8 +64,7 @@ define('yohood', function(require, exports) {
}
//设置商品滚动条
function
setGoodsSwiper
()
{
var
goodsSwiper
,
limitedPrev
,
var
limitedPrev
,
limitedNext
,
swiperLen
;
//限量商品滑动
...
...
website/controller/News.class.php
View file @
ee8fc79
...
...
@@ -10,7 +10,8 @@ class Controller_News extends Controller_Abstract
$requestTag
=
trim
(
$this
->
_request
->
tag
);
//标签
$limit
=
40
;
$tag
=
$requestTag
;
if
(
$this
->
_platform
==
'android'
||
$this
->
_platform
==
'iphone'
)
$exceptTags
=
array
(
'手机视频'
);
/*if($this->_platform == 'android' || $this->_platform == 'iphone')
{
$exceptTags = array('视频');
if($requestTag == '视频')
...
...
@@ -21,7 +22,7 @@ class Controller_News extends Controller_Abstract
else
{
$exceptTags = array('手机视频');
}
}
*/
$total
=
Facade_News
::
getTotal
(
$tag
,
$exceptTags
);
$page
=
new
Lib_Helper_Pagination
(
$total
,
$limit
);
if
(
$tag
)
...
...
@@ -67,7 +68,8 @@ class Controller_News extends Controller_Abstract
public
function
indexMobileAction
()
{
$requestTag
=
$tag
=
trim
(
$this
->
_request
->
tag
);
//标签
$exceptTags
=
array
(
'视频'
);
// $exceptTags = array('视频');
$exceptTags
=
array
(
'手机视频'
);
$limit
=
8
;
$total
=
Facade_News
::
getTotal
(
$tag
,
$exceptTags
);
$page
=
new
Lib_Helper_Pagination
(
$total
,
$limit
);
...
...
@@ -89,7 +91,7 @@ class Controller_News extends Controller_Abstract
$tags
[
$tagKey
]
=
$temp
[
$tagKey
];
}
}
$tags
[
'视频'
]
=
$temp
[
'手机视频'
];
//
$tags['视频'] = $temp['手机视频'];
$this
->
_view
[
'tags'
]
=
$tags
;
foreach
(
$this
->
_view
[
'tags'
]
as
$val
)
{
...
...
@@ -97,7 +99,7 @@ class Controller_News extends Controller_Abstract
}
$this
->
_view
[
'current_tag'
]
=
$requestTag
;
$this
->
_view
[
'isAjax'
]
=
$this
->
_request
->
isAjax
();
$this
->
_view
[
'
t
otal'
]
=
$total
;
$this
->
_view
[
'
pageT
otal'
]
=
$total
;
$this
->
_view
[
'limit'
]
=
$limit
;
$this
->
_view
[
'page'
]
=
$page
->
getCurrentPage
();
}
...
...
@@ -202,12 +204,17 @@ EOT;
}
if
(
$this
->
_platform
==
'android'
||
$this
->
_platform
==
'iphone'
)
{
$exceptTags
=
array
(
'视频'
);
$news
[]
=
Facade_News
::
getSameNewsById
(
$id
,
$exceptTags
);
$temp
=
Facade_News
::
getList
(
array
(),
0
,
5
,
$exceptTags
);
unset
(
$temp
[
$id
]);
$news
=
array_merge
(
$news
,
$temp
);
$news
=
array_slice
(
array_filter
(
$news
),
0
,
3
);
//$exceptTags = array('视频');
$exceptTags
=
array
(
'手机视频'
);
$temp
=
Facade_News
::
getSameNewsById
(
$id
,
$exceptTags
);
$temp2
=
Facade_News
::
getLatestNews
(
array
(),
0
,
5
,
$exceptTags
);
unset
(
$temp2
[
$id
]);
if
(
!
empty
(
$temp
))
{
$news
=
array
(
$temp
[
'id'
]
=>
$temp
);
}
$news
=
array_slice
(
array_filter
(
$news
+
$temp2
),
0
,
3
);
$this
->
_view
[
'wechat'
]
=
array
();
//Lib_Wechat_JSSDK::getSignPackage();
}
$info
[
'title'
]
=
strip_tags
(
$info
[
'title'
]);
$info
[
'pics'
]
=
array_filter
(
explode
(
'|'
,
$info
[
'pics'
]));
...
...
@@ -231,11 +238,14 @@ EOT;
$tag
=
'视频'
;
$exceptTags
=
array
(
'手机视频'
);
$recom
=
array
();
$recom
[]
=
Facade_News
::
getSameNewsById
(
$id
,
$exceptTags
);
$temp
=
Facade_News
::
getList
(
array
(),
0
,
5
,
$exceptTags
);
unset
(
$temp
[
$id
]);
$recom
=
array_merge
(
$recom
,
$temp
);
$recom
=
array_slice
(
array_filter
(
$recom
),
0
,
3
);
$temp
=
Facade_News
::
getSameNewsById
(
$id
,
$exceptTags
);
$temp2
=
Facade_News
::
getLatestNews
(
array
(),
0
,
5
,
$exceptTags
);
unset
(
$temp2
[
$id
]);
if
(
!
empty
(
$temp
))
{
$recom
=
array
(
$temp
[
'id'
]
=>
$temp
);
}
$recom
=
array_slice
(
array_filter
(
$recom
+
$temp2
),
0
,
3
);
$hotVideo
=
array_values
(
Facade_News
::
getListByDateHits
(
$tag
,
0
,
5
,
$exceptTags
));
$lastVideo
=
array_values
(
Facade_News
::
getLatestNews
(
$tag
,
0
,
5
,
$exceptTags
));
$list
[
'recom'
]
=
$recom
;
...
...
website/controller/Show.class.php
View file @
ee8fc79
...
...
@@ -72,7 +72,7 @@ class Controller_Show extends Controller_Abstract
'offset'
=>
$offset
,
'limit'
=>
$limit
,
);
$data
=
Util_Curl
::
get
(
'http://
www.yohoshow.com
/api/yohood/topic?'
.
http_build_query
(
$params
));
$data
=
Util_Curl
::
get
(
'http://
show.test.yoho.cn
/api/yohood/topic?'
.
http_build_query
(
$params
));
$data
=
json_decode
(
$data
,
true
);
if
(
!
empty
(
$data
[
'data'
]))
{
...
...
website/facade/News.class.php
View file @
ee8fc79
...
...
@@ -273,7 +273,7 @@ class Facade_News
$news
=
array
();
if
(
!
empty
(
$ids
))
{
$news
=
self
::
service
()
->
getNewsBy
OrderId
(
$ids
,
$exceptTags
);
$news
=
self
::
service
()
->
getNewsBy
Ids
(
$ids
,
$exceptTags
);
}
return
$news
;
}
...
...
website/lib/utils/cache/Data.class.php
View file @
ee8fc79
...
...
@@ -11,7 +11,7 @@ class Lib_Utils_Cache_Data
{
private
static
$_key
=
'yh_cache_data_'
;
private
static
$_cache
=
null
;
private
static
$_options
=
array
(
'domain'
=>
'
wwww
'
,
'class'
=>
'text'
);
private
static
$_options
=
array
(
'domain'
=>
'
yoho
'
,
'class'
=>
'text'
);
/**
* @return object 缓存操作对象
...
...
website/lib/wechat/JSSDK.class.php
0 → 100644
View file @
ee8fc79
<?php
class
Lib_Wechat_JSSDK
{
public
static
$appId
=
YOHO_WECHAT_APPID
;
public
static
$appSecret
=
YOHO_WECHAT_APPSECRET
;
public
static
function
getSignPackage
()
{
$jsapiTicket
=
self
::
getJsApiTicket
();
// 注意 URL 一定要动态获取,不能 hardcode.
/* $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
$url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; */
// 确保你获取用来签名的url是动态获取的,动态页面可参见实例代码中php的实现方式。如果是html的静态页面在前端通过ajax将url传到后台签名,前端需要用js获取当前页面除去'#'hash部分的链接(可用location.href.split('#')[0]获取),因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,将导致分享后的页面签名失败。
$url
=
$_REQUEST
[
'pageurl'
];
$timestamp
=
time
();
$nonceStr
=
self
::
createNonceStr
();
// 这里参数的顺序要按照 key 值 ASCII 码升序排序
$string
=
"jsapi_ticket=
$jsapiTicket
&noncestr=
$nonceStr
×tamp=
$timestamp
&url=
$url
"
;
$signature
=
sha1
(
$string
);
$signPackage
=
array
(
"appId"
=>
self
::
$appId
,
"nonceStr"
=>
$nonceStr
,
"timestamp"
=>
$timestamp
,
"url"
=>
$url
,
"signature"
=>
$signature
,
"rawString"
=>
$string
);
return
$signPackage
;
}
public
static
function
createNonceStr
(
$length
=
16
)
{
$chars
=
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
;
$str
=
""
;
for
(
$i
=
0
;
$i
<
$length
;
$i
++
)
{
$str
.=
substr
(
$chars
,
mt_rand
(
0
,
strlen
(
$chars
)
-
1
),
1
);
}
return
$str
;
}
public
static
function
getJsApiTicket
()
{
// jsapi_ticket 应该全局存储与更新,以下代码以写入到文件中做示例
$jsapi_ticket
=
Lib_Utils_Cache_Data
::
get
(
"WEICHAT_JSAPI_TICK_1"
);
if
(
empty
(
$jsapi_ticket
))
{
//$accessToken = $this->getAccessToken();
$accessToken
=
self
::
getAccessToken
();
// 如果是企业号用以下 URL 获取 ticket
// $url = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=$accessToken";
$url
=
"https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=
$accessToken
"
;
$res
=
json_decode
(
self
::
httpGet
(
$url
));
$ticket
=
$res
->
ticket
;
if
(
$ticket
)
{
Lib_Utils_Cache_Data
::
set
(
"WEICHAT_JSAPI_TICK_1"
,
$ticket
,
3600
);
}
}
else
{
$ticket
=
$jsapi_ticket
;
}
return
$ticket
;
}
public
static
function
getAccessToken
()
{
$http_url
=
'https://api.weixin.qq.com/cgi-bin/token?'
;
$params
=
array
(
'appid'
=>
self
::
$appId
,
'secret'
=>
self
::
$appSecret
,
'grant_type'
=>
'client_credential'
);
$access_token
=
Lib_Utils_Cache_Data
::
get
(
"WEICHAT_ACCESSTOKEN"
);
if
(
empty
(
$access_token
))
{
$result
=
json_decode
(
self
::
httpGet
(
$http_url
.
http_build_query
(
$params
)),
true
);
$access_token
=
$result
[
'access_token'
];
$expire
=
$result
[
'expires_in'
];
Lib_Utils_Cache_Data
::
set
(
"WEICHAT_ACCESSTOKEN"
,
$access_token
,
3600
);
}
if
(
$access_token
)
{
return
$access_token
;
}
else
{
return
''
;
}
}
public
static
function
httpGet
(
$url
)
{
$curl
=
curl_init
();
curl_setopt
(
$curl
,
CURLOPT_RETURNTRANSFER
,
true
);
curl_setopt
(
$curl
,
CURLOPT_TIMEOUT
,
500
);
curl_setopt
(
$curl
,
CURLOPT_SSL_VERIFYPEER
,
false
);
curl_setopt
(
$curl
,
CURLOPT_SSL_VERIFYHOST
,
false
);
curl_setopt
(
$curl
,
CURLOPT_URL
,
$url
);
$res
=
curl_exec
(
$curl
);
curl_close
(
$curl
);
return
$res
;
}
}
...
...
website/service/News.class.php
View file @
ee8fc79
...
...
@@ -256,7 +256,7 @@ class Service_News extends Lib_Service
* @param array $exceptTags
* @return int
*/
public
function
getNewsBy
OrderId
(
$ids
,
$exceptTags
)
public
function
getNewsBy
Ids
(
$ids
,
$exceptTags
)
{
$exceptWhere
=
"1"
;
if
(
is_numeric
(
$ids
))
...
...
@@ -269,7 +269,7 @@ class Service_News extends Lib_Service
$exceptTags
=
implode
(
"','"
,
$exceptTags
);
$exceptWhere
=
" `tag` NOT IN ('
$exceptTags
') "
;
}
return
self
::
service
(
self
::
ROUTER
)
->
tag
(
self
::
$_tag
)
->
fetchRow
(
'getNewsBy
OrderId'
,
array
(
'order_ids'
=>
$ids
),
return
self
::
service
(
self
::
ROUTER
)
->
tag
(
self
::
$_tag
)
->
fetchRow
(
'getNewsBy
Ids'
,
array
(
),
array
(
'where'
=>
$exceptWhere
,
'ids'
=>
$ids
));
}
...
...
@@ -284,7 +284,8 @@ class Service_News extends Lib_Service
*/
public
static
function
getLatestNews
(
$tag
,
$offset
,
$limit
,
$exceptTags
=
array
())
{
$exceptWhere
=
"1"
;
$exceptWhere
=
'1'
;
$where
=
'1'
;
if
(
is_array
(
$exceptTags
)
&&
!
empty
(
$exceptTags
))
{
$exceptTags
=
implode
(
"','"
,
$exceptTags
);
...
...
website/sqlmap/news/sqlmap-news.xml
View file @
ee8fc79
...
...
@@ -45,8 +45,8 @@
<select
id=
"getListByHits"
>
SELECT * FROM tbl_news WHERE `tag` = :tag AND #where# ORDER BY hits DESC LIMIT :offset, :limit
</select>
<select
id=
"getNewsByOrderId"
>
SELECT * FROM tbl_news WHERE #where# AND id IN (#ids#) ORDER BY FIND_IN_SET(id, :order_ids)
<select
id=
"getNewsByIds"
>
SELECT * FROM tbl_news WHERE #where# AND id IN (#ids#) ORDER BY create_time DESC
</select>
<select
id=
"getLatestNews"
>
SELECT * FROM `tbl_news` #where# order by create_time DESC LIMIT :offset, :limit
...
...
website/view/layout/default_layout_mobile.php
View file @
ee8fc79
...
...
@@ -45,7 +45,7 @@
<div
class=
"overlay"
></div>
</div>
<?php
$this
->
_js
(
'index.js'
,
array
(
SITE_JS
.
'/lib/seajs.js'
,
SITE_JS
.
'/lib/seajs.js'
));
?>
<script
type=
"text/javascript"
>
seajs
.
use
(
'mobile'
,
function
(
mobile
){
...
...
website/view/script/news/detailmobile.php
View file @
ee8fc79
...
...
@@ -70,7 +70,7 @@
<div
id=
"share"
class=
"share"
cover-url=
"
<?php
$thumb
=
empty
(
$this
->
view
->
info
[
'client_thumb'
])
?
$this
->
view
->
info
[
'thumb'
]
:
$this
->
view
->
info
[
'client_thumb'
];
echo
Lib_Images
::
getImageUrl
(
$thumb
,
'source'
,
'fragmentimg'
);
?>
"
data-link=
"
<?php
echo
SITE_MAIN
.
'/news/detail/id/'
.
$this
->
view
->
info
[
'id'
];
?>
"
>
data-link=
"
<?php
echo
SITE_MAIN
.
'/news/detail/id/'
.
$this
->
view
->
info
[
'id'
];
?>
"
wechatAppId=
""
wechatTimestamp=
""
wechatNonceStr=
""
wechatSignature=
""
>
<ul
class=
"clearfix"
>
<li
class=
"yohoo-share-button-sina"
><a
href=
"javascript:;"
></a></li>
<li
class=
"yohoo-share-button-qq"
><a
href=
"javascript:;"
></a></li>
...
...
@@ -79,9 +79,47 @@
</div>
<?php
$this
->
_endblock
();
?>
<?php
$this
->
_block
(
'js'
);
?>
<script
type=
"text/javascript"
charset=
"utf-8"
src=
"http://res.wx.qq.com/open/js/jweixin-1.0.0.js"
></script>
<script
type=
"text/javascript"
>
seajs
.
use
([
'zepto'
,
'mobile'
],
function
(
$
,
mobile
)
{
var
shareData
=
{
title
:
''
,
desc
:
''
,
imgUrl
:
''
,
link
:
''
,
};
// wx.config({
// debug: false,
// appId: '',
// timestamp: '',
// nonceStr: '',
// signature: '',
// jsApiList: ['checkJsApi','onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ',
// 'onMenuShareWeibo','hideMenuItems','showMenuItems','hideAllNonBaseMenuItem','showAllNonBaseMenuItem',
// 'translateVoice','startRecord','stopRecord','onRecordEnd','playVoice','pauseVoice','stopVoice',
// 'uploadVoice','downloadVoice','chooseImage','previewImage','uploadImage','downloadImage',
// 'getNetworkType','openLocation','getLocation','hideOptionMenu','showOptionMenu','closeWindow',
// 'scanQRCode','chooseWXPay','openProductSpecificView','addCard','chooseCard','openCard'
// ]
// });
// // 2.1 “分享给朋友”
// wx.onMenuShareAppMessage(shareData);
// // 2.2 “分享到朋友圈”
// wx.onMenuShareTimeline(shareData);
// // 2.3 “分享到QQ”
// wx.onMenuShareQQ(shareData);
// // 2.4 “分享到微博”
// wx.onMenuShareWeibo(shareData);
seajs
.
use
([
'jquery'
,
'mobile'
],
function
(
$
,
mobile
)
{
mobile
.
detail
();
var
shareUrl
=
$
(
".share"
).
attr
(
"data-link"
),
shareCover
=
$
(
".share"
).
attr
(
"cover-url"
),
detailTitle
=
$
(
'.detail-title'
).
find
(
'.title'
),
detailSubtitle
=
$
(
'.detail-title'
).
find
(
'.subtitle'
),
wechatAppId
=
$
(
".share"
).
attr
(
"wechatAppId"
),
wechatTimestamp
=
$
(
".share"
).
attr
(
"wechatTimestamp"
),
wechatNonceStr
=
$
(
".share"
).
attr
(
"wechatNonceStr"
),
wechatSignature
=
$
(
".share"
).
attr
(
"wechatSignature"
);
});
</script>
<?php
$this
->
_endblock
();
?>
...
...
website/view/script/news/indexmobile.php
View file @
ee8fc79
...
...
@@ -19,7 +19,7 @@
</div>
<div
class=
"news-main content-main current"
>
<div
class=
"news-content"
>
<div
class=
"main-layout clearfix"
total=
"
<?php
echo
$this
->
view
->
t
otal
;
?>
"
page=
"
<?php
echo
$this
->
view
->
page
;
?>
"
<div
class=
"main-layout clearfix"
total=
"
<?php
echo
$this
->
view
->
pageT
otal
;
?>
"
page=
"
<?php
echo
$this
->
view
->
page
;
?>
"
total_times=
"3"
current_tag=
"
<?php
echo
$this
->
view
->
current_tag
;
?>
"
limit=
"
<?php
echo
$this
->
view
->
limit
;
?>
"
>
<?php
$this
->
_widget
(
'news_listmobile'
,
array
(
'list'
=>
$this
->
view
->
list
));
?>
</div>
...
...
Please
register
or
login
to post a comment