Authored by runner

Merge branch 'release/4.8' of http://git.yoho.cn/fe/YOHOBUYWAP into release/4.8

... ... @@ -372,7 +372,14 @@ class Helpers
if ($isApp) {
$result['collect'] = array();
$result['collect']['isCollected'] = isset($articleData['isFavor']) && $articleData['isFavor'] === 'Y';
$result['collect']['url'] = !empty($uid) ? 'javascript:;' : strtr($articleData['url'], array('"islogin":"N"' => '"islogin":"Y"'));
// $originUrl = 'http:' . Helpers::url('/author/index',null,'guang') . $_SERVER["QUERY_STRING"]; // 跳转回的链接 https
$originUrl = Helpers::url('/author/index',null,'guang') . $_SERVER["QUERY_STRING"]; // 跳转回的链接
$collectUrl = 'javascript:;'; // 根据用户是否登录做处理的链接
if (empty($uid)) {
$playUrlEncode = strtr($originUrl, array('/' => '\\/'));
$collectUrl = $originUrl . '?openby:yohobuy={"action":"go.weblogin","params":{"jumpurl":{"url":"' . $playUrlEncode . '","param":{"from":"app"}},"requesturl":{"url":"","param":{}},"priority":"N"}}';
}
$result['collect']['url'] = $collectUrl;
} // 点赞
else {
$result['like'] = array();
... ...
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
... ... @@ -160,26 +160,16 @@ function initInfosEvt($container) {
type: 'POST',
url: '/guang/opt/collectArticle',
data: {
id: getUrlParam('id'),
id: $info.data('id'),
opt: opt,
yh_channel: yhChannel,
uid: getUrlParam('uid')
},
success: function(data) {
if (data.code && data.code === 200) {
if (data.data.jump) {
if ($('#intimacy-link').length <= 0) {
$('body').append('<a href=\'' + data.data.jumpUrl +
'\' style="display:none;" id="intimacy-link">' +
'<span class="intimacy-link"></span></a>');
}
$('.intimacy-link').click();
} else {
//切换收藏状态
$btn.toggleClass('collected');
}
//切换收藏状态
$btn.toggleClass('collected');
}
},
error: function() {
... ...
... ... @@ -9,7 +9,9 @@
<span class="like-count">{{count}}</span>
{{/ like}}
{{# collect}}
<a href={{url}}>
<i class="iconfont collect-btn{{#isCollected}} collected{{/isCollected}}">&#xe605;</i>
</a>
{{/ collect}}
{{# share}}
<a href="{{.}}" class="iconfont share-btn">&#xe600;</a>
... ...
... ... @@ -52,51 +52,35 @@ class OptController extends AbstractAction
*/
public function collectArticleAction()
{
$result = array('code' => 200, 'message' => '成功!', 'data' => '');
$jumpUrl = '';
$isNoLogin = false;
$result = array('code' => 400, 'message' => '您未登录,无法收藏或者取消收藏。请先登录!', 'data' => '');
do {
/* 判断是不是AJAX请求 */
if (!$this->isAjax()) {
$result = array('code' => 400, 'message' => '不是Ajax请求!', 'data' => '');
break;
}
/* 判断参数是否有效 */
$id = $this->post('id');
if (!is_numeric($id)) {
$result = array('code' => 400, 'message' => '没有ID!', 'data' => '');
break;
}
/* 判断用户是否登录 */
$uid = $this->get('uid');
$isNoLogin = empty($uid) || !is_numeric($uid);
/* 如果有 yh_channel 是 app */
if ($yhChannel = $this->post('yh_channel')) {
/* 如果没有登录,拼接 App 登录规则 */
if ($isNoLogin) {
$playUrl = Helpers::url('/author/index', '', 'guang');
$playUrlEncode = strtr($playUrl, array('/' => '\\/'));
$jumpUrl = $playUrl . '?openby:yohobuy={"action":"go.weblogin","params":{"jumpurl":{"url":"' . $playUrlEncode . '","param":{"from":"app","id":"' . $id . '",""yh_channel":"' . $yhChannel . '",""uid":"' . $uid . '"}},"requesturl":{"url":"","param":{}},"priority":"N"}}&uid=' . $uid;
$result = array('code' => 200, 'message' => '未登录', 'data' => array('jumpUrl' => $jumpUrl, 'jump' => true));
break;
} else {
/* 执行点赞或取消操作 */
$opt = $this->post('opt', 'ok');
$data = OptData::collectArticle($uid, $id, $opt);
if (!$data) {
$result = array('code' => 400, 'message' => '操作失败', 'data' => '');
break;
}
}
} else { /* 非 app 不需要点赞*/
$result = array('code' => 400, 'message' => '不是App!', 'data' => '');
$uid = $this->post('uid');
if (empty($uid) || !is_numeric($uid)) {
break;
}
/* 执行点赞或取消操作 */
$opt = $this->post('opt', 'ok');
$data = OptData::collectArticle($uid, $id, $opt);
if (!$data) {
$result = array('code' => 400, 'message' => '操作失败', 'data' => '');
break;
}
$result = array('code' => 200, 'message' => '成功', 'data' => '');
} while (false);
$this->echoJson($result);
... ...