Merge branch 'develop' of http://git.dev.yoho.cn/web/yohobuy into develop
Showing
30 changed files
with
544 additions
and
511 deletions
@@ -39,7 +39,7 @@ class BrandData | @@ -39,7 +39,7 @@ class BrandData | ||
39 | $param['client_secret'] = Sign::getSign($param); | 39 | $param['client_secret'] = Sign::getSign($param); |
40 | 40 | ||
41 | $cache = empty($uid) ? 3600 : false; | 41 | $cache = empty($uid) ? 3600 : false; |
42 | - | 42 | + |
43 | return Yohobuy::get(Yohobuy::API_URL, $param, $cache); // 有缓存1小时 | 43 | return Yohobuy::get(Yohobuy::API_URL, $param, $cache); // 有缓存1小时 |
44 | } | 44 | } |
45 | 45 | ||
@@ -55,7 +55,7 @@ class BrandData | @@ -55,7 +55,7 @@ class BrandData | ||
55 | $param['brand_id'] = $brandId; | 55 | $param['brand_id'] = $brandId; |
56 | $param['method'] = 'app.brand.banner'; | 56 | $param['method'] = 'app.brand.banner'; |
57 | $param['client_secret'] = Sign::getSign($param); | 57 | $param['client_secret'] = Sign::getSign($param); |
58 | - | 58 | + |
59 | return Yohobuy::get(Yohobuy::API_URL, $param, 3600); // 有缓存1小时 | 59 | return Yohobuy::get(Yohobuy::API_URL, $param, 3600); // 有缓存1小时 |
60 | } | 60 | } |
61 | 61 | ||
@@ -66,10 +66,10 @@ class BrandData | @@ -66,10 +66,10 @@ class BrandData | ||
66 | * @return array | 66 | * @return array |
67 | */ | 67 | */ |
68 | public static function getBrandLogo($brandId) | 68 | public static function getBrandLogo($brandId) |
69 | - { | ||
70 | - return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_BRAND_LOGO, 'getBrandByids', array($brandId )); | 69 | + { |
70 | + return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_BRAND_LOGO, 'getBrandByids', array($brandId)); | ||
71 | } | 71 | } |
72 | - | 72 | + |
73 | /** | 73 | /** |
74 | * 通过域名获取品牌LOGO信息 | 74 | * 通过域名获取品牌LOGO信息 |
75 | * | 75 | * |
@@ -78,9 +78,9 @@ class BrandData | @@ -78,9 +78,9 @@ class BrandData | ||
78 | */ | 78 | */ |
79 | public static function getBrandLogoByDomain($domain) | 79 | public static function getBrandLogoByDomain($domain) |
80 | { | 80 | { |
81 | - return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_BRAND_LOGO, 'getBrandByDomain', array($domain )); | 81 | + return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_BRAND_LOGO, 'getBrandByDomain', array($domain)); |
82 | } | 82 | } |
83 | - | 83 | + |
84 | /** | 84 | /** |
85 | * 通过品牌id获取品牌Folder | 85 | * 通过品牌id获取品牌Folder |
86 | * | 86 | * |
@@ -88,19 +88,49 @@ class BrandData | @@ -88,19 +88,49 @@ class BrandData | ||
88 | * @param int $status 状态 | 88 | * @param int $status 状态 |
89 | * @return array | 89 | * @return array |
90 | */ | 90 | */ |
91 | - public static function getFolderByBrand($brand_id,$status = 1) | 91 | + public static function getFolderByBrand($brand_id, $status = 1) |
92 | { | 92 | { |
93 | - return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_BRAND_FOLDER, 'getFolderByBrand', array($brand_id,$status )); | 93 | + return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_BRAND_FOLDER, 'getFolderByBrand', array($brand_id, $status)); |
94 | } | 94 | } |
95 | - | 95 | + |
96 | /** | 96 | /** |
97 | * 根据节点和运行模式选择静态内容 | 97 | * 根据节点和运行模式选择静态内容 |
98 | * @param $node 20141219-100447 | 98 | * @param $node 20141219-100447 |
99 | * @param string $mode | 99 | * @param string $mode |
100 | * @return mixed | 100 | * @return mixed |
101 | */ | 101 | */ |
102 | - public static function getByNodeContent($node, $mode='release') | 102 | + public static function getByNodeContent($node, $mode = 'release') |
103 | { | 103 | { |
104 | return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_BRAND_NODECONTENT, 'getByNodeContent', array($node, $mode)); | 104 | return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_BRAND_NODECONTENT, 'getByNodeContent', array($node, $mode)); |
105 | } | 105 | } |
106 | + | ||
107 | + /* | ||
108 | + * 品牌一览资源位banner | ||
109 | + * @param string $contentCode 获取广告资源需要的位置码 | ||
110 | + * @param int $channel 频道标识 1:男,2:女,3:潮童,4:创意生活 | ||
111 | + * @return array( | ||
112 | + * "brandTop": "顶部的轮翻广告及热门品牌数据", | ||
113 | + * "brandList": "按字母'A-Z'分组的品牌列表数据" | ||
114 | + * ) | ||
115 | + */ | ||
116 | + | ||
117 | + public static function getTopBanner($contentCode,$channel) | ||
118 | + { | ||
119 | + /* 顶部的轮翻广告及热门品牌数据 */ | ||
120 | + $param = Yohobuy::param(); | ||
121 | + $param['content_code'] = $contentCode; | ||
122 | + $param['client_secret'] = Sign::getSign($param); | ||
123 | + $urlList['brandTop'] = Yohobuy::httpBuildQuery(Yohobuy::SERVICE_URL . self::URI_BRAND_TOPPOS, $param); | ||
124 | + | ||
125 | + /* 按字母"A-Z"分组的品牌列表数据 */ | ||
126 | + $param = Yohobuy::param(); | ||
127 | + $param['method'] = 'app.brand.brandlist'; | ||
128 | + $param['yh_channel'] = $channel; | ||
129 | + $param['client_secret'] = Sign::getSign($param); | ||
130 | + $urlList['brandList'] = Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param); | ||
131 | + | ||
132 | + return Yohobuy::getMulti($urlList, array(), 3600); // 有缓存1小时 | ||
133 | + } | ||
134 | + | ||
135 | + | ||
106 | } | 136 | } |
@@ -1316,15 +1316,13 @@ class HelperSearch | @@ -1316,15 +1316,13 @@ class HelperSearch | ||
1316 | */ | 1316 | */ |
1317 | public static function getBannerFormat($banner, $brand) | 1317 | public static function getBannerFormat($banner, $brand) |
1318 | { | 1318 | { |
1319 | - | ||
1320 | // 根据品牌Id获取品牌banner图 | 1319 | // 根据品牌Id获取品牌banner图 |
1321 | if (isset($banner['banner'])) { | 1320 | if (isset($banner['banner'])) { |
1322 | $bannerImg = Helpers::getImageUrl($banner['banner'], '', 150); | 1321 | $bannerImg = Helpers::getImageUrl($banner['banner'], '', 150); |
1323 | } | 1322 | } |
1324 | 1323 | ||
1325 | $is_favorite = false; | 1324 | $is_favorite = false; |
1326 | - $shopName = false; | ||
1327 | - if(isset($brand)){ | 1325 | + if(isset($brand['is_favorite'])){ |
1328 | // 获取是否收藏 | 1326 | // 获取是否收藏 |
1329 | if ($brand['is_favorite'] == 'Y') { | 1327 | if ($brand['is_favorite'] == 'Y') { |
1330 | $is_favorite = true; | 1328 | $is_favorite = true; |
@@ -31,7 +31,11 @@ var _hmt = _hmt || []; | @@ -31,7 +31,11 @@ var _hmt = _hmt || []; | ||
31 | s.parentNode.insertBefore(hm, s); | 31 | s.parentNode.insertBefore(hm, s); |
32 | })(); | 32 | })(); |
33 | } | 33 | } |
34 | - window.addEventListener('load', async_load, false); | 34 | + if (window.addEventListener) { |
35 | + window.addEventListener('load', async_load, false); | ||
36 | + } else if (window.attachEvent) { | ||
37 | + window.attachEvent('onload', async_load); | ||
38 | + } | ||
35 | })(); | 39 | })(); |
36 | </script> | 40 | </script> |
37 | <script> | 41 | <script> |
@@ -48,4 +52,4 @@ var _hmt = _hmt || []; | @@ -48,4 +52,4 @@ var _hmt = _hmt || []; | ||
48 | var h = d.getElementsByTagName("script")[0];h.parentNode.insertBefore(c, h); | 52 | var h = d.getElementsByTagName("script")[0];h.parentNode.insertBefore(c, h); |
49 | }(document); | 53 | }(document); |
50 | </script> | 54 | </script> |
51 | -<script src="http://static.yohobuy.com/js/v3/o_code.js?v=20150420" async="async"></script> | ||
55 | +<script src="http://static.yohobuy.com/js/v3/o_code.js?v=20150420" async="async"></script> |
@@ -108,20 +108,20 @@ function getShoppingKey() { | @@ -108,20 +108,20 @@ function getShoppingKey() { | ||
108 | } | 108 | } |
109 | 109 | ||
110 | //YAS统计代码 | 110 | //YAS统计代码 |
111 | -(function(w, d, s, j, f) { | ||
112 | - var a = d.createElement(s); | ||
113 | - var m = d.getElementsByTagName(s)[0]; | ||
114 | - | ||
115 | - w.YohoAcquisitionObject = f; | ||
116 | - | ||
117 | - w[f] = function() { | ||
118 | - w[f].p = arguments; | ||
119 | - }; | ||
120 | - | ||
121 | - a.async = 1; | ||
122 | - a.src = j; | ||
123 | - m.parentNode.insertBefore(a, m); | ||
124 | -})(window, document, 'script', 'http://cdn.yoho.cn/yas-jssdk/1.0.14/yas.js', '_yas'); | 111 | +//(function(w, d, s, j, f) { |
112 | +// var a = d.createElement(s); | ||
113 | +// var m = d.getElementsByTagName(s)[0]; | ||
114 | +// | ||
115 | +// w.YohoAcquisitionObject = f; | ||
116 | +// | ||
117 | +// w[f] = function() { | ||
118 | +// w[f].p = arguments; | ||
119 | +// }; | ||
120 | +// | ||
121 | +// a.async = 1; | ||
122 | +// a.src = j; | ||
123 | +// m.parentNode.insertBefore(a, m); | ||
124 | +//})(window, document, 'script', 'http://cdn.yoho.cn/yas-jssdk/1.0.14/yas.js', '_yas'); | ||
125 | 125 | ||
126 | (function() { | 126 | (function() { |
127 | var uid = getUid(); | 127 | var uid = getUid(); |
@@ -2274,7 +2274,7 @@ $('.logo-brand').logoBrand({ | @@ -2274,7 +2274,7 @@ $('.logo-brand').logoBrand({ | ||
2274 | $.ajax({ | 2274 | $.ajax({ |
2275 | type: 'GET', | 2275 | type: 'GET', |
2276 | dataType: 'json', | 2276 | dataType: 'json', |
2277 | - url: '/hotrank/getdata', | 2277 | + url: '/product/index/getdata', |
2278 | data: param, | 2278 | data: param, |
2279 | success: function(res) { | 2279 | success: function(res) { |
2280 | var data; | 2280 | var data; |
This diff could not be displayed because it is too large.
web-static/dist/yohobuy/0.0.1/index.css.map
0 → 100644
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.

960 Bytes

1.21 KB

5.17 KB

3.54 KB

4.42 KB

1.06 KB

5.23 KB

4.94 KB
1 | +<!-- Respond.js: min/max-width media query polyfill. Remote proxy (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs --> | ||
2 | +<!DOCTYPE html> | ||
3 | +<html> | ||
4 | +<head> | ||
5 | + <meta charset="utf-8" /> | ||
6 | + <title>Respond JS Proxy</title> | ||
7 | +</head> | ||
8 | +<body> | ||
9 | + <script> | ||
10 | + (function () { | ||
11 | + var domain, css, query, getQueryString, ajax, xmlHttp; | ||
12 | + | ||
13 | + /* | ||
14 | + http://stackoverflow.com/questions/4963673/get-url-array-variables-in-javascript-jquery/4963817#4963817 | ||
15 | + */ | ||
16 | + getQueryString = function() { | ||
17 | + var ret = {}, parts, i, p; | ||
18 | + | ||
19 | + parts = (document.location.toString().split("?")[1]).split("&"); | ||
20 | + | ||
21 | + for (i = 0; i < parts.length; i++) { | ||
22 | + | ||
23 | + p = parts[i].split("="); | ||
24 | + // so strings will be correctly parsed: | ||
25 | + p[1] = decodeURIComponent(p[1].replace(/\+/g, " ")); | ||
26 | + | ||
27 | + if (p[0].search(/\[\]/) >= 0) { // then it"s an array | ||
28 | + p[0] = p[0].replace("[]", ""); | ||
29 | + | ||
30 | + if (typeof ret[p[0]] != "object") { | ||
31 | + ret[p[0]] = []; | ||
32 | + } | ||
33 | + ret[p[0]].push(p[1]); | ||
34 | + } else { | ||
35 | + ret[p[0]] = p[1]; | ||
36 | + } | ||
37 | + } | ||
38 | + return ret; | ||
39 | + }; | ||
40 | + | ||
41 | + ajax = function( url, callback ) { | ||
42 | + var req = xmlHttp(); | ||
43 | + if (!req){ | ||
44 | + return; | ||
45 | + } | ||
46 | + req.open( "GET", url, true ); | ||
47 | + req.onreadystatechange = function () { | ||
48 | + if ( req.readyState != 4 || req.status != 200 && req.status != 304 ){ | ||
49 | + return; | ||
50 | + } | ||
51 | + callback( req.responseText ); | ||
52 | + }; | ||
53 | + if ( req.readyState == 4 ){ | ||
54 | + return; | ||
55 | + } | ||
56 | + req.send(); | ||
57 | + }; | ||
58 | + | ||
59 | + //define ajax obj | ||
60 | + xmlHttp = (function() { | ||
61 | + var xmlhttpmethod = false, | ||
62 | + attempts = [ | ||
63 | + function(){ return new XMLHttpRequest(); }, | ||
64 | + function(){ return new ActiveXObject("Microsoft.XMLHTTP"); }, | ||
65 | + function(){ return new ActiveXObject("MSXML2.XMLHTTP.3.0"); } | ||
66 | + ], | ||
67 | + al = attempts.length; | ||
68 | + | ||
69 | + while( al-- ){ | ||
70 | + try { | ||
71 | + xmlhttpmethod = attempts[ al ](); | ||
72 | + } | ||
73 | + catch(e) { | ||
74 | + continue; | ||
75 | + } | ||
76 | + break; | ||
77 | + } | ||
78 | + return function(){ | ||
79 | + return xmlhttpmethod; | ||
80 | + }; | ||
81 | + })(); | ||
82 | + | ||
83 | + query = getQueryString(); | ||
84 | + css = query["css"]; | ||
85 | + domain = query["url"]; | ||
86 | + | ||
87 | + if (css && domain) { | ||
88 | + ajax(css, function (response) { | ||
89 | + window.name = response; | ||
90 | + window.location.href = domain; | ||
91 | + }); | ||
92 | + } | ||
93 | + }()); | ||
94 | + </script> | ||
95 | +</body> | ||
96 | +</html> |
1 | +/*! Respond.js v1.4.2: min/max-width media query polyfill * Copyright 2013 Scott Jehl | ||
2 | + * Licensed under https://github.com/scottjehl/Respond/blob/master/LICENSE-MIT | ||
3 | + * */ | ||
4 | + | ||
5 | +!function(a){"use strict";a.matchMedia=a.matchMedia||function(a){var b,c=a.documentElement,d=c.firstElementChild||c.firstChild,e=a.createElement("body"),f=a.createElement("div");return f.id="mq-test-1",f.style.cssText="position:absolute;top:-100em",e.style.background="none",e.appendChild(f),function(a){return f.innerHTML='­<style media="'+a+'"> #mq-test-1 { width: 42px; }</style>',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){"use strict";function b(){u(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}(),f=function(a,b){var c=e();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))};if(c.ajax=f,c.queue=d,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\([\s]*min\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/,maxw:/\([\s]*max\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/},c.mediaQueriesSupported=a.matchMedia&&null!==a.matchMedia("only all")&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var g,h,i,j=a.document,k=j.documentElement,l=[],m=[],n=[],o={},p=30,q=j.getElementsByTagName("head")[0]||k,r=j.getElementsByTagName("base")[0],s=q.getElementsByTagName("link"),t=function(){var a,b=j.createElement("div"),c=j.body,d=k.style.fontSize,e=c&&c.style.fontSize,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=f=j.createElement("body"),c.style.background="none"),k.style.fontSize="100%",c.style.fontSize="100%",c.appendChild(b),f&&k.insertBefore(c,k.firstChild),a=b.offsetWidth,f?k.removeChild(c):c.removeChild(b),k.style.fontSize=d,e&&(c.style.fontSize=e),a=i=parseFloat(a)},u=function(b){var c="clientWidth",d=k[c],e="CSS1Compat"===j.compatMode&&d||j.body[c]||d,f={},o=s[s.length-1],r=(new Date).getTime();if(b&&g&&p>r-g)return a.clearTimeout(h),h=a.setTimeout(u,p),void 0;g=r;for(var v in l)if(l.hasOwnProperty(v)){var w=l[v],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?i||t():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?i||t():1)),w.hasquery&&(z&&A||!(z||e>=x)||!(A||y>=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(m[w.rules]))}for(var C in n)n.hasOwnProperty(C)&&n[C]&&n[C].parentNode===q&&q.removeChild(n[C]);n.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=j.createElement("style"),F=f[D].join("\n");E.type="text/css",E.media=D,q.insertBefore(E,o.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(j.createTextNode(F)),n.push(E)}},v=function(a,b,d){var e=a.replace(c.regex.keyframes,"").match(c.regex.media),f=e&&e.length||0;b=b.substring(0,b.lastIndexOf("/"));var g=function(a){return a.replace(c.regex.urls,"$1"+b+"$2$3")},h=!f&&d;b.length&&(b+="/"),h&&(f=1);for(var i=0;f>i;i++){var j,k,n,o;h?(j=d,m.push(g(a))):(j=e[i].match(c.regex.findStyles)&&RegExp.$1,m.push(RegExp.$2&&g(RegExp.$2))),n=j.split(","),o=n.length;for(var p=0;o>p;p++)k=n[p],l.push({media:k.split("(")[0].match(c.regex.only)&&RegExp.$2||"all",rules:m.length-1,hasquery:k.indexOf("(")>-1,minw:k.match(c.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:k.match(c.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}u()},w=function(){if(d.length){var b=d.shift();f(b.href,function(c){v(c,b.href,b.media),o[b.href]=!0,a.setTimeout(function(){w()},0)})}},x=function(){for(var b=0;b<s.length;b++){var c=s[b],e=c.href,f=c.media,g=c.rel&&"stylesheet"===c.rel.toLowerCase();e&&g&&!o[e]&&(c.styleSheet&&c.styleSheet.rawCssText?(v(c.styleSheet.rawCssText,e,f),o[e]=!0):(!/^([a-zA-Z:]*\/\/)/.test(e)&&!r||e.replace(RegExp.$1,"").split("/")[0]===a.location.host)&&("//"===e.substring(0,2)&&(e=a.location.protocol+e),d.push({href:e,media:f})))}w()};x(),c.update=x,c.getEmValue=t,a.addEventListener?a.addEventListener("resize",b,!1):a.attachEvent&&a.attachEvent("onresize",b)}}(this); |

35 Bytes
1 | +/*! Respond.js: min/max-width media query polyfill. Remote proxy (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs */ | ||
2 | +(function(win, doc, undefined){ | ||
3 | + var docElem = doc.documentElement, | ||
4 | + proxyURL = doc.getElementById("respond-proxy").href, | ||
5 | + redirectURL = (doc.getElementById("respond-redirect") || location).href, | ||
6 | + baseElem = doc.getElementsByTagName("base")[0], | ||
7 | + urls = [], | ||
8 | + refNode; | ||
9 | + | ||
10 | + function encode(url){ | ||
11 | + return win.encodeURIComponent(url); | ||
12 | + } | ||
13 | + | ||
14 | + function fakejax( url, callback ){ | ||
15 | + | ||
16 | + var iframe, | ||
17 | + AXO; | ||
18 | + | ||
19 | + // All hail Google http://j.mp/iKMI19 | ||
20 | + // Behold, an iframe proxy without annoying clicky noises. | ||
21 | + if ( "ActiveXObject" in win ) { | ||
22 | + AXO = new ActiveXObject( "htmlfile" ); | ||
23 | + AXO.open(); | ||
24 | + AXO.write( '<iframe id="x"></iframe>' ); | ||
25 | + AXO.close(); | ||
26 | + iframe = AXO.getElementById( "x" ); | ||
27 | + } else { | ||
28 | + iframe = doc.createElement( "iframe" ); | ||
29 | + iframe.style.cssText = "position:absolute;top:-99em"; | ||
30 | + docElem.insertBefore(iframe, docElem.firstElementChild || docElem.firstChild ); | ||
31 | + } | ||
32 | + | ||
33 | + iframe.src = checkBaseURL(proxyURL) + "?url=" + encode(redirectURL) + "&css=" + encode(checkBaseURL(url)); | ||
34 | + | ||
35 | + function checkFrameName() { | ||
36 | + var cssText; | ||
37 | + | ||
38 | + try { | ||
39 | + cssText = iframe.contentWindow.name; | ||
40 | + } | ||
41 | + catch (e) { } | ||
42 | + | ||
43 | + if (cssText) { | ||
44 | + // We've got what we need. Stop the iframe from loading further content. | ||
45 | + iframe.src = "about:blank"; | ||
46 | + iframe.parentNode.removeChild(iframe); | ||
47 | + iframe = null; | ||
48 | + | ||
49 | + | ||
50 | + // Per http://j.mp/kn9EPh, not taking any chances. Flushing the ActiveXObject | ||
51 | + if (AXO) { | ||
52 | + AXO = null; | ||
53 | + | ||
54 | + if (win.CollectGarbage) { | ||
55 | + win.CollectGarbage(); | ||
56 | + } | ||
57 | + } | ||
58 | + | ||
59 | + callback(cssText); | ||
60 | + } | ||
61 | + else{ | ||
62 | + win.setTimeout(checkFrameName, 100); | ||
63 | + } | ||
64 | + } | ||
65 | + | ||
66 | + win.setTimeout(checkFrameName, 500); | ||
67 | + } | ||
68 | + | ||
69 | + // http://stackoverflow.com/a/472729 | ||
70 | + function checkBaseURL(href) { | ||
71 | + var el = document.createElement('div'), | ||
72 | + escapedURL = href.split('&').join('&'). | ||
73 | + split('<').join('<'). | ||
74 | + split('"').join('"'); | ||
75 | + | ||
76 | + el.innerHTML = '<a href="' + escapedURL + '">x</a>'; | ||
77 | + return el.firstChild.href; | ||
78 | + } | ||
79 | + | ||
80 | + function checkRedirectURL() { | ||
81 | + // IE6 & IE7 don't build out absolute urls in <link /> attributes. | ||
82 | + // So respond.proxy.gif remains relative instead of http://example.com/respond.proxy.gif. | ||
83 | + // This trickery resolves that issue. | ||
84 | + if (~ !redirectURL.indexOf(location.host)) { | ||
85 | + | ||
86 | + var fakeLink = doc.createElement("div"); | ||
87 | + | ||
88 | + fakeLink.innerHTML = '<a href="' + redirectURL + '"></a>'; | ||
89 | + docElem.insertBefore(fakeLink, docElem.firstElementChild || docElem.firstChild ); | ||
90 | + | ||
91 | + // Grab the parsed URL from that dummy object | ||
92 | + redirectURL = fakeLink.firstChild.href; | ||
93 | + | ||
94 | + // Clean up | ||
95 | + fakeLink.parentNode.removeChild(fakeLink); | ||
96 | + fakeLink = null; | ||
97 | + } | ||
98 | + } | ||
99 | + | ||
100 | + function buildUrls(){ | ||
101 | + var links = doc.getElementsByTagName( "link" ); | ||
102 | + | ||
103 | + for( var i = 0, linkl = links.length; i < linkl; i++ ){ | ||
104 | + | ||
105 | + var thislink = links[i], | ||
106 | + href = links[i].href, | ||
107 | + extreg = (/^([a-zA-Z:]*\/\/(www\.)?)/).test( href ), | ||
108 | + ext = (baseElem && !extreg) || extreg; | ||
109 | + | ||
110 | + //make sure it's an external stylesheet | ||
111 | + if( thislink.rel.indexOf( "stylesheet" ) >= 0 && ext ){ | ||
112 | + (function( link ){ | ||
113 | + fakejax( href, function( css ){ | ||
114 | + link.styleSheet.rawCssText = css; | ||
115 | + respond.update(); | ||
116 | + } ); | ||
117 | + })( thislink ); | ||
118 | + } | ||
119 | + } | ||
120 | + | ||
121 | + | ||
122 | + } | ||
123 | + | ||
124 | + if( !respond.mediaQueriesSupported ){ | ||
125 | + checkRedirectURL(); | ||
126 | + buildUrls(); | ||
127 | + } | ||
128 | + | ||
129 | +})( window, document ); |
@@ -71,7 +71,7 @@ class Bootstrap extends Bootstrap_Abstract | @@ -71,7 +71,7 @@ class Bootstrap extends Bootstrap_Abstract | ||
71 | $controller = 'Index'; | 71 | $controller = 'Index'; |
72 | $action = 'Index'; | 72 | $action = 'Index'; |
73 | // 二级域名 | 73 | // 二级域名 |
74 | - if (2 === $level) { | 74 | + if (3 === $level) { |
75 | $subDomain = strval($hostParts[0]); | 75 | $subDomain = strval($hostParts[0]); |
76 | switch (strtolower($subDomain)) { | 76 | switch (strtolower($subDomain)) { |
77 | case 'www': // 主站 | 77 | case 'www': // 主站 |
1 | <?php | 1 | <?php |
2 | -use Action\AbstractAction; | 2 | + |
3 | +use Action\WebAction; | ||
4 | +use Product\BrandsModel; | ||
3 | 5 | ||
4 | /** | 6 | /** |
5 | * 品牌首页 | 7 | * 品牌首页 |
6 | */ | 8 | */ |
7 | -class BrandsController extends AbstractAction | 9 | +class BrandsController extends WebAction |
8 | { | 10 | { |
9 | 11 | ||
10 | public function brandsAction() | 12 | public function brandsAction() |
11 | { | 13 | { |
12 | - $headerdata = array( | ||
13 | - 'gobytype' => 'gobuyboys', | ||
14 | - 'searchcate' => 'searchcateboys', | ||
15 | - 'navbars' => array( | ||
16 | - array( | ||
17 | - 'name_cn' => '男生', | ||
18 | - 'name_en' => 'BOYS', | ||
19 | - 'link' => '', | ||
20 | - 'classname' => 'boys', | ||
21 | - 'index_main' => 0, | ||
22 | - 'subnav' => array( | ||
23 | - array( | ||
24 | - 'name' => '男首1', | ||
25 | - 'link' => '', | ||
26 | - 'index_sub' => 0, | ||
27 | - 'thirdnav' => array( | ||
28 | - array( | ||
29 | - 'title' => '上装', | ||
30 | - 'branditems' => array( | ||
31 | - array( | ||
32 | - 'brandname' => '背心', | ||
33 | - 'link' => '' | ||
34 | - ), | ||
35 | - array( | ||
36 | - 'brandname' => 'T恤', | ||
37 | - 'link' => '' | ||
38 | - ) | ||
39 | - ) | ||
40 | - ) | ||
41 | - | ||
42 | - ) | ||
43 | - ), | ||
44 | - array( | ||
45 | - 'name' => '男首2', | ||
46 | - 'link' => '', | ||
47 | - 'index_sub' => 1, | ||
48 | - 'thirdnav' => array( | ||
49 | - array( | ||
50 | - 'title' => '上装', | ||
51 | - 'branditems' => array( | ||
52 | - array( | ||
53 | - 'brandname' => '背心', | ||
54 | - 'link' => '' | ||
55 | - ), | ||
56 | - array( | ||
57 | - 'brandname' => 'T恤', | ||
58 | - 'link' => '' | ||
59 | - ) | ||
60 | - ) | ||
61 | - ) | ||
62 | - ) | ||
63 | - ), | ||
64 | - array( | ||
65 | - 'name' => '男首3', | ||
66 | - 'link' => '', | ||
67 | - 'index_sub' => 2, | ||
68 | - 'thirdnav' => array( | ||
69 | - array( | ||
70 | - 'title' => '上装', | ||
71 | - 'branditems' => array( | ||
72 | - array( | ||
73 | - 'brandname' => '背心', | ||
74 | - 'link' => '' | ||
75 | - ), | ||
76 | - array( | ||
77 | - 'brandname' => 'T恤', | ||
78 | - 'link' => '' | ||
79 | - ) | ||
80 | - ) | ||
81 | - ) | ||
82 | - ) | ||
83 | - ) | ||
84 | - ) | ||
85 | - ), | ||
86 | - array( | ||
87 | - 'name_cn' => '女生', | ||
88 | - 'name_en' => 'GIRLS', | ||
89 | - 'link' => 'http=>//www.baidu.com', | ||
90 | - 'classname' => '', | ||
91 | - 'index_main' => 0, | ||
92 | - 'subnav' => array( | ||
93 | - array( | ||
94 | - 'name' => '女生1', | ||
95 | - 'link' => '', | ||
96 | - 'index_sub' => 0, | ||
97 | - 'thirdnav' => array( | ||
98 | - array( | ||
99 | - 'title' => '上装', | ||
100 | - 'branditems' => array( | ||
101 | - array( | ||
102 | - 'brandname' => '背心', | ||
103 | - 'link' => '' | ||
104 | - ), | ||
105 | - array( | ||
106 | - 'brandname' => 'T恤', | ||
107 | - 'link' => '' | ||
108 | - ) | ||
109 | - ) | ||
110 | - ) | ||
111 | - ) | ||
112 | - ), | ||
113 | - array( | ||
114 | - 'name' => '女生2', | ||
115 | - 'link' => '', | ||
116 | - 'index_sub' => 1, | ||
117 | - 'thirdnav' => array( | ||
118 | - array( | ||
119 | - 'title' => '上装', | ||
120 | - 'branditems' => array( | ||
121 | - array( | ||
122 | - 'brandname' => '背心', | ||
123 | - 'link' => '' | ||
124 | - ), | ||
125 | - array( | ||
126 | - 'brandname' => 'T恤', | ||
127 | - 'link' => '' | ||
128 | - ) | ||
129 | - ) | ||
130 | - ) | ||
131 | - ) | ||
132 | - ), | ||
133 | - array( | ||
134 | - 'name' => '女生3', | ||
135 | - 'link' => '', | ||
136 | - 'index_sub' => 2, | ||
137 | - 'thirdnav' => array( | ||
138 | - array( | ||
139 | - 'title' => '上装', | ||
140 | - 'branditems' => array( | ||
141 | - array( | ||
142 | - 'brandname' => '背心', | ||
143 | - 'link' => '' | ||
144 | - ), | ||
145 | - array( | ||
146 | - 'brandname' => 'T恤', | ||
147 | - 'link' => '' | ||
148 | - ) | ||
149 | - ) | ||
150 | - ) | ||
151 | - ) | ||
152 | - ) | ||
153 | - ) | ||
154 | - ) | ||
155 | - ), | ||
156 | - 'myyoho' => array( | ||
157 | - 'email' => 'hhh@126.com', | ||
158 | - 'viptype' => '普通会员', | ||
159 | - 'currentscore' => 495, | ||
160 | - 'totalscore' => 600, | ||
161 | - 'cardtype' => '银卡', | ||
162 | - 'infolist' => array( | ||
163 | - array( | ||
164 | - 'name' => '待处理的订单', | ||
165 | - 'link' => '', | ||
166 | - 'num' => '0' | ||
167 | - ), | ||
168 | - array( | ||
169 | - 'name' => '我的收藏', | ||
170 | - 'link' => '', | ||
171 | - 'num' => '1' | ||
172 | - ), | ||
173 | - array( | ||
174 | - 'name' => '我的优惠券', | ||
175 | - 'link' => '', | ||
176 | - 'num' => '2' | ||
177 | - ), | ||
178 | - array( | ||
179 | - 'name' => '我的YOHO币', | ||
180 | - 'link' => '', | ||
181 | - 'num' => '1' | ||
182 | - ), | ||
183 | - array( | ||
184 | - 'name' => '我的退货换货', | ||
185 | - 'link' => '', | ||
186 | - 'num' => '1' | ||
187 | - ) | ||
188 | - ), | ||
189 | - 'updlink' => '' | ||
190 | - ), | ||
191 | - 'gobuy' => array( | ||
192 | - 'gobuynum' => 3 | ||
193 | - ), | ||
194 | - 'breadcrumbnav' => array( | ||
195 | - array( | ||
196 | - 'notend' => array( | ||
197 | - 'link' => 'http=>//www.baidu.com', | ||
198 | - 'name' => 'BOYS首页' | ||
199 | - ) | ||
200 | - ), | ||
201 | - array( | ||
202 | - 'notend' => array( | ||
203 | - 'link' => 'http=>//www.baidu.com', | ||
204 | - 'name' => '上衣' | ||
205 | - ) | ||
206 | - ), | ||
207 | - array( | ||
208 | - 'isend' => array( | ||
209 | - 'link' => 'http=>//www.baidu.com', | ||
210 | - 'name' => '衬衫' | ||
211 | - ) | ||
212 | - ) | ||
213 | - ) | ||
214 | - ); | ||
215 | - | ||
216 | - $imgsrc = 'http://img11.static.yhbimg.com/goodsimg/2015/10/19/10/01b312c3b7a7efebcd671e73495ff3e306.jpg'; | ||
217 | - $item = array( | ||
218 | - 'name' => 'cc', | ||
219 | - 'key' => '1000011' | ||
220 | - ); | ||
221 | - $item0 = array( | ||
222 | - 'name' => 'cc', | ||
223 | - 'hot' => 'hot', | ||
224 | - 'key' => '1000012' | ||
225 | - ); | ||
226 | - | ||
227 | - $item1 = array( | ||
228 | - 'name' => '所有品牌', | ||
229 | - 'src' => $imgsrc, | ||
230 | - 'url' => '' | ||
231 | - ); | ||
232 | - $item2 = array( | ||
233 | - 'name' => '所有品牌', | ||
234 | - 'src' => $imgsrc, | ||
235 | - 'url' => '', | ||
236 | - 'items' => array( | ||
237 | - $item1, | ||
238 | - $item1, | ||
239 | - $item1, | ||
240 | - $item1, | ||
241 | - $item1, | ||
242 | - $item1, | ||
243 | - $item1, | ||
244 | - $item1, | ||
245 | - $item1, | ||
246 | - $item1 | ||
247 | - ) | ||
248 | - ); | ||
249 | - | 14 | + //品牌一览头部 |
15 | + $channel = $this->getCookie("_Channel") ? $this->getCookie("_Channel") : 'boys'; | ||
16 | + $this->setWebNavHeader($channel); | ||
17 | + | ||
18 | + //banner-list | ||
19 | + $res = BrandsModel::getBrandView($channel); | ||
20 | + | ||
21 | + //数据整合 | ||
250 | $data = array( | 22 | $data = array( |
251 | 'brandsHomePage' => true, | 23 | 'brandsHomePage' => true, |
252 | - 'headerdata' => $headerdata, | ||
253 | 'brands' => array( | 24 | 'brands' => array( |
254 | - 'category' => array( | ||
255 | - 'A' => array( | ||
256 | - $item, | ||
257 | - $item, | ||
258 | - $item, | ||
259 | - $item, | ||
260 | - $item, | ||
261 | - $item, | ||
262 | - $item, | ||
263 | - $item, | ||
264 | - $item | ||
265 | - ), | ||
266 | - 'B' => array( | ||
267 | - $item, | ||
268 | - $item, | ||
269 | - $item0, | ||
270 | - $item, | ||
271 | - $item, | ||
272 | - $item, | ||
273 | - $item, | ||
274 | - $item, | ||
275 | - $item | ||
276 | - ), | ||
277 | - 'C' => array( | ||
278 | - $item, | ||
279 | - $item, | ||
280 | - $item, | ||
281 | - $item, | ||
282 | - $item, | ||
283 | - $item, | ||
284 | - $item, | ||
285 | - $item, | ||
286 | - $item | ||
287 | - ), | ||
288 | - 'D' => array( | ||
289 | - $item, | ||
290 | - $item, | ||
291 | - $item, | ||
292 | - $item, | ||
293 | - $item, | ||
294 | - $item, | ||
295 | - $item, | ||
296 | - $item, | ||
297 | - $item, | ||
298 | - $item, | ||
299 | - $item0, | ||
300 | - $item, | ||
301 | - $item, | ||
302 | - $item, | ||
303 | - $item, | ||
304 | - $item, | ||
305 | - $item, | ||
306 | - $item, | ||
307 | - $item, | ||
308 | - $item, | ||
309 | - $item, | ||
310 | - $item, | ||
311 | - $item, | ||
312 | - $item, | ||
313 | - $item | ||
314 | - ), | ||
315 | - 'E' => array( | ||
316 | - $item, | ||
317 | - $item, | ||
318 | - $item0, | ||
319 | - $item, | ||
320 | - $item, | ||
321 | - $item, | ||
322 | - $item, | ||
323 | - $item, | ||
324 | - $item | ||
325 | - ), | ||
326 | - 'F' => array( | ||
327 | - $item0, | ||
328 | - $item, | ||
329 | - $item, | ||
330 | - $item0, | ||
331 | - $item0, | ||
332 | - $item, | ||
333 | - $item0, | ||
334 | - $item, | ||
335 | - $item | ||
336 | - ), | ||
337 | - 'G' => array( | ||
338 | - $item, | ||
339 | - $item, | ||
340 | - $item, | ||
341 | - $item, | ||
342 | - $item, | ||
343 | - $item0, | ||
344 | - $item, | ||
345 | - $item, | ||
346 | - $item | ||
347 | - ), | ||
348 | - 'H' => array( | ||
349 | - $item, | ||
350 | - $item, | ||
351 | - $item, | ||
352 | - $item, | ||
353 | - $item, | ||
354 | - $item, | ||
355 | - $item0, | ||
356 | - $item, | ||
357 | - $item | ||
358 | - ), | ||
359 | - 'I' => array( | ||
360 | - $item, | ||
361 | - $item, | ||
362 | - $item0, | ||
363 | - $item0, | ||
364 | - $item0, | ||
365 | - $item0, | ||
366 | - $item, | ||
367 | - $item, | ||
368 | - $item | ||
369 | - ), | ||
370 | - 'J' => array( | ||
371 | - $item, | ||
372 | - $item, | ||
373 | - $item, | ||
374 | - $item, | ||
375 | - $item0, | ||
376 | - $item, | ||
377 | - $item, | ||
378 | - $item, | ||
379 | - $item | ||
380 | - ), | ||
381 | - 'K' => array( | ||
382 | - $item, | ||
383 | - $item, | ||
384 | - $item, | ||
385 | - $item, | ||
386 | - $item, | ||
387 | - $item, | ||
388 | - $item, | ||
389 | - $item, | ||
390 | - $item | ||
391 | - ), | ||
392 | - 'L' => array( | ||
393 | - $item, | ||
394 | - $item0, | ||
395 | - $item, | ||
396 | - $item, | ||
397 | - $item, | ||
398 | - $item, | ||
399 | - $item, | ||
400 | - $item, | ||
401 | - $item | ||
402 | - ), | ||
403 | - 'M' => array( | ||
404 | - $item, | ||
405 | - $item0, | ||
406 | - $item, | ||
407 | - $item, | ||
408 | - $item, | ||
409 | - $item, | ||
410 | - $item, | ||
411 | - $item, | ||
412 | - $item | ||
413 | - ), | ||
414 | - 'N' => array( | ||
415 | - $item, | ||
416 | - $item0, | ||
417 | - $item0, | ||
418 | - $item0, | ||
419 | - $item, | ||
420 | - $item, | ||
421 | - $item, | ||
422 | - $item, | ||
423 | - $item | ||
424 | - ) | ||
425 | - ), | ||
426 | - 'tabs' => array( | ||
427 | - $item2, | ||
428 | - $item2, | ||
429 | - $item2, | ||
430 | - $item2, | ||
431 | - $item2 | ||
432 | - ) | 25 | + 'category' => $res['brandList'], |
26 | + 'tabs' => $res['brandTop'] | ||
433 | ) | 27 | ) |
434 | ); | 28 | ); |
435 | - | ||
436 | $this->_view->display('brands', $data); | 29 | $this->_view->display('brands', $data); |
437 | } | 30 | } |
438 | 31 | ||
@@ -446,39 +39,26 @@ class BrandsController extends AbstractAction | @@ -446,39 +39,26 @@ class BrandsController extends AbstractAction | ||
446 | public function brandinfoAction() | 39 | public function brandinfoAction() |
447 | { | 40 | { |
448 | $result = array(); | 41 | $result = array(); |
449 | - | 42 | + |
450 | do { | 43 | do { |
451 | /* 判断是不是AJAX请求 */ | 44 | /* 判断是不是AJAX请求 */ |
452 | - if (! $this->isAjax()) { | 45 | + if (!$this->isAjax()) { |
453 | break; | 46 | break; |
454 | } | 47 | } |
48 | + $brandId = $this->get('brandId',0); | ||
49 | + $uid=$this->getUid(false); | ||
50 | + $brandId=144; | ||
51 | + BrandsModel::getBrandInfo($brandId, $uid); | ||
52 | + | ||
53 | + | ||
455 | 54 | ||
456 | - $imgsrc = 'http://img11.static.yhbimg.com/goodsimg/2015/10/19/10/01b312c3b7a7efebcd671e73495ff3e306.jpg'; | ||
457 | - $data = array( | ||
458 | - 'key' => '1000011', | ||
459 | - 'icon' => $imgsrc, | ||
460 | - 'title' => '优显led触控台灯', | ||
461 | - 'content' => '优显led触控台灯优显led触控台灯优显led触控台灯优显led触控台灯', | ||
462 | - 'subtitle' => 'AAAAAA', | ||
463 | - 'imgs' => array( | ||
464 | - array( | ||
465 | - 'src' => $imgsrc | ||
466 | - ), | ||
467 | - array( | ||
468 | - 'src' => $imgsrc | ||
469 | - ), | ||
470 | - array( | ||
471 | - 'src' => $imgsrc | ||
472 | - ) | ||
473 | - ) | ||
474 | - ) // 提示 | ||
475 | -; | ||
476 | $result = array( | 55 | $result = array( |
477 | 'code' => 200, | 56 | 'code' => 200, |
478 | 'brand' => $data | 57 | 'brand' => $data |
479 | ); | 58 | ); |
480 | - } while (false); | ||
481 | - | 59 | + } |
60 | + while (false); | ||
61 | + | ||
482 | $this->echoJson($result); | 62 | $this->echoJson($result); |
483 | } | 63 | } |
484 | 64 | ||
@@ -516,7 +96,6 @@ class BrandsController extends AbstractAction | @@ -516,7 +96,6 @@ class BrandsController extends AbstractAction | ||
516 | ) | 96 | ) |
517 | ) | 97 | ) |
518 | ) | 98 | ) |
519 | - | ||
520 | ) | 99 | ) |
521 | ), | 100 | ), |
522 | array( | 101 | array( |
@@ -700,7 +279,7 @@ class BrandsController extends AbstractAction | @@ -700,7 +279,7 @@ class BrandsController extends AbstractAction | ||
700 | 'src' => $imgsrc, | 279 | 'src' => $imgsrc, |
701 | 'name' => '优显led触控台灯' | 280 | 'name' => '优显led触控台灯' |
702 | ); | 281 | ); |
703 | - | 282 | + |
704 | $data = array( | 283 | $data = array( |
705 | 'brandsHomePage' => true, | 284 | 'brandsHomePage' => true, |
706 | 'headerdata' => $headerdata, | 285 | 'headerdata' => $headerdata, |
@@ -982,7 +561,6 @@ class BrandsController extends AbstractAction | @@ -982,7 +561,6 @@ class BrandsController extends AbstractAction | ||
982 | ) | 561 | ) |
983 | ) | 562 | ) |
984 | ) | 563 | ) |
985 | - | ||
986 | ) | 564 | ) |
987 | ), | 565 | ), |
988 | array( | 566 | array( |
@@ -1157,7 +735,7 @@ class BrandsController extends AbstractAction | @@ -1157,7 +735,7 @@ class BrandsController extends AbstractAction | ||
1157 | ) | 735 | ) |
1158 | ); | 736 | ); |
1159 | $imgsrc = 'http://img11.static.yhbimg.com/goodsimg/2015/10/19/10/01b312c3b7a7efebcd671e73495ff3e306.jpg'; | 737 | $imgsrc = 'http://img11.static.yhbimg.com/goodsimg/2015/10/19/10/01b312c3b7a7efebcd671e73495ff3e306.jpg'; |
1160 | - | 738 | + |
1161 | $item1 = array( | 739 | $item1 = array( |
1162 | 'name' => '所有品牌', | 740 | 'name' => '所有品牌', |
1163 | 'src' => $imgsrc, | 741 | 'src' => $imgsrc, |
@@ -1170,7 +748,7 @@ class BrandsController extends AbstractAction | @@ -1170,7 +748,7 @@ class BrandsController extends AbstractAction | ||
1170 | 'name' => 'Millefed', | 748 | 'name' => 'Millefed', |
1171 | 'desc' => ' I.T于2006年冬季在香港推出最新品牌创始 人Shawn Stussy将滑板服、工作服、旧校 服的设计加入到 ' | 749 | 'desc' => ' I.T于2006年冬季在香港推出最新品牌创始 人Shawn Stussy将滑板服、工作服、旧校 服的设计加入到 ' |
1172 | ); | 750 | ); |
1173 | - | 751 | + |
1174 | $data = array( | 752 | $data = array( |
1175 | 'brandsHomePage' => true, | 753 | 'brandsHomePage' => true, |
1176 | 'headerdata' => $headerdata, | 754 | 'headerdata' => $headerdata, |
@@ -1196,4 +774,5 @@ class BrandsController extends AbstractAction | @@ -1196,4 +774,5 @@ class BrandsController extends AbstractAction | ||
1196 | ); | 774 | ); |
1197 | $this->_view->display('list', $data); | 775 | $this->_view->display('list', $data); |
1198 | } | 776 | } |
1199 | -} | ||
777 | + | ||
778 | +} |
@@ -5,6 +5,7 @@ namespace Product; | @@ -5,6 +5,7 @@ namespace Product; | ||
5 | use Api\Yohobuy; | 5 | use Api\Yohobuy; |
6 | use Plugin\HelperSearch; | 6 | use Plugin\HelperSearch; |
7 | use LibModels\Web\Product\BrandData; | 7 | use LibModels\Web\Product\BrandData; |
8 | +use Index\HomeModel; | ||
8 | use Product\SearchModel; | 9 | use Product\SearchModel; |
9 | 10 | ||
10 | /** | 11 | /** |
@@ -12,35 +13,41 @@ use Product\SearchModel; | @@ -12,35 +13,41 @@ use Product\SearchModel; | ||
12 | * | 13 | * |
13 | * @author Administrator | 14 | * @author Administrator |
14 | */ | 15 | */ |
15 | -class BrandsModel | 16 | +class BrandsModel |
16 | { | 17 | { |
18 | + | ||
19 | + //品牌一览资源位CODE码 | ||
20 | + const BOYS_BRAND_CODE = '8b16b7baf9a66fbe553a6caa97d2ce2a'; | ||
21 | + const GIRLS_BRAND_CODE = 'c95ae9e40f0add10549b819f821ad626'; | ||
22 | + const KIDS_BRAND_CODE = '84b7926282fdef92f1039bdcf77c18ba'; | ||
23 | + const LIFESTYLE_BRAND_CODE = 'c575c6bfdfa4125fae7d24bbec7119c8'; | ||
24 | + | ||
17 | /** | 25 | /** |
18 | * 搜索品牌数据 | 26 | * 搜索品牌数据 |
19 | * @param $condition array 搜索数据的条件 | 27 | * @param $condition array 搜索数据的条件 |
20 | * @param $options array | 28 | * @param $options array |
21 | * @return array | 29 | * @return array |
22 | */ | 30 | */ |
23 | - public static function getBrandSearchData($condition, $options) | 31 | + public static function getBrandSearchData($condition, $options) |
24 | { | 32 | { |
25 | // 并行调用品牌相关接口并封装数据 | 33 | // 并行调用品牌相关接口并封装数据 |
26 | $data = self::getBrandData($condition, $options); | 34 | $data = self::getBrandData($condition, $options); |
27 | - | 35 | + |
28 | //获取品牌系列数据 | 36 | //获取品牌系列数据 |
29 | $adNav = self::getAdNav($options['brandId']); | 37 | $adNav = self::getAdNav($options['brandId']); |
30 | $data['leftContent'][] = array('picLink' => $adNav); | 38 | $data['leftContent'][] = array('picLink' => $adNav); |
31 | - | 39 | + |
32 | //获取静态内容(eg:20141219-100447) | 40 | //获取静态内容(eg:20141219-100447) |
33 | - if($options['node']){ | 41 | + if ($options['node']) { |
34 | $nodeContent = HelperSearch::formatNodeContent($options['node']); | 42 | $nodeContent = HelperSearch::formatNodeContent($options['node']); |
35 | $data['leftContent'][]['picLink']['list'] = $nodeContent; | 43 | $data['leftContent'][]['picLink']['list'] = $nodeContent; |
36 | } | 44 | } |
37 | - | 45 | + |
38 | return $data; | 46 | return $data; |
39 | } | 47 | } |
40 | - | ||
41 | 48 | ||
42 | //获取品牌系列数据 | 49 | //获取品牌系列数据 |
43 | - public static function getAdNav($brandId, $status = 1) | 50 | + public static function getAdNav($brandId, $status = 1) |
44 | { | 51 | { |
45 | //调用接口获得数据 | 52 | //调用接口获得数据 |
46 | $advNav = BrandData::getFolderByBrand($brandId, $status); | 53 | $advNav = BrandData::getFolderByBrand($brandId, $status); |
@@ -52,7 +59,7 @@ class BrandsModel | @@ -52,7 +59,7 @@ class BrandsModel | ||
52 | } | 59 | } |
53 | $result['picTitle'] = '经典系列'; | 60 | $result['picTitle'] = '经典系列'; |
54 | } | 61 | } |
55 | - | 62 | + |
56 | return $result; | 63 | return $result; |
57 | } | 64 | } |
58 | 65 | ||
@@ -65,32 +72,151 @@ class BrandsModel | @@ -65,32 +72,151 @@ class BrandsModel | ||
65 | public static function getBrandData($customCondition = array(), $customOptions = array()) | 72 | public static function getBrandData($customCondition = array(), $customOptions = array()) |
66 | { | 73 | { |
67 | $urlList = array(); | 74 | $urlList = array(); |
68 | - | 75 | + |
69 | //获取$condition和$option 筛选条件和排序条件 | 76 | //获取$condition和$option 筛选条件和排序条件 |
70 | $searchCondition = SearchModel::searchCondition($customCondition, $customOptions); | 77 | $searchCondition = SearchModel::searchCondition($customCondition, $customOptions); |
71 | - | 78 | + |
72 | // 组合搜索商品url | 79 | // 组合搜索商品url |
73 | $urlList['product'] = HelperSearch::getProductUrl($searchCondition['condition']); | 80 | $urlList['product'] = HelperSearch::getProductUrl($searchCondition['condition']); |
74 | - | 81 | + |
75 | // 组合搜索分类url | 82 | // 组合搜索分类url |
76 | $urlList['sort'] = HelperSearch::getClassesUrl($searchCondition['condition']); | 83 | $urlList['sort'] = HelperSearch::getClassesUrl($searchCondition['condition']); |
77 | - | 84 | + |
78 | //组合搜索品牌url | 85 | //组合搜索品牌url |
79 | $urlList['brand'] = HelperSearch::getBrandUrl($customOptions); | 86 | $urlList['brand'] = HelperSearch::getBrandUrl($customOptions); |
80 | - | 87 | + |
81 | //组合获取品牌banner url | 88 | //组合获取品牌banner url |
82 | $urlList['banner'] = HelperSearch::getBannerUrl($customOptions); | 89 | $urlList['banner'] = HelperSearch::getBannerUrl($customOptions); |
83 | - | 90 | + |
84 | //组合用户浏览记录url | 91 | //组合用户浏览记录url |
85 | //$urlList['reviewUrl'] = HelperSearch::getReviewUrl($searchCondition['condition']); | 92 | //$urlList['reviewUrl'] = HelperSearch::getReviewUrl($searchCondition['condition']); |
86 | - | ||
87 | //批量调接口 | 93 | //批量调接口 |
88 | $result = Yohobuy::getMulti($urlList, array(), true); | 94 | $result = Yohobuy::getMulti($urlList, array(), true); |
89 | - | 95 | + |
90 | //组织模板数据格式 | 96 | //组织模板数据格式 |
91 | $data = HelperSearch::getList($result, $searchCondition['options']); | 97 | $data = HelperSearch::getList($result, $searchCondition['options']); |
92 | - | ||
93 | - | 98 | + |
99 | + | ||
94 | return $data; | 100 | return $data; |
95 | } | 101 | } |
102 | + | ||
103 | + /* | ||
104 | + * 获取品牌一览页面,品牌top & 列表 | ||
105 | + */ | ||
106 | + | ||
107 | + public static function getBrandView($channel) | ||
108 | + { | ||
109 | + $switchParams = self::switchBrandParams($channel); | ||
110 | + $brandTop = array(); | ||
111 | + /* | ||
112 | + * $item1 = array( | ||
113 | + 'name' => '所有品牌', | ||
114 | + 'src' => $imgsrc, | ||
115 | + 'url' => '' | ||
116 | + ); | ||
117 | + */ | ||
118 | + $brandAds = array(); | ||
119 | + $brandList = array(); | ||
120 | + $res = BrandData::getTopBanner($switchParams['brandCode'], $switchParams['channelType']); | ||
121 | + if (isset($res['brandTop'][0]['data']) && $res['brandTop'][0]['data']) { | ||
122 | + foreach ($res['brandTop'][0]['data'] as $tk => $tv) { | ||
123 | + $imgUrl = explode("?", $tv['src']); | ||
124 | + $topTmp = array( | ||
125 | + 'name' => $tv['title'], | ||
126 | + 'src' => $imgUrl[0], | ||
127 | + 'url' => $tv['url'], | ||
128 | + 'items' => array() | ||
129 | + ); | ||
130 | + $brandTop[$tk] = $topTmp; | ||
131 | + } | ||
132 | + } | ||
133 | + if (isset($res['brandList']['brands']) && $res['brandList']['brands']) { | ||
134 | + foreach ($res['brandList']['brands'] as $lk => $lv) { | ||
135 | + if (isset($lv) && $lv) { | ||
136 | + $listTmp = array(); | ||
137 | + foreach ($lv as $ltk => $ltv) { | ||
138 | + $listTmp[$ltk] = array( | ||
139 | + 'name' => $ltv['brand_name'], | ||
140 | + 'key' => $ltv['id'] | ||
141 | + ); | ||
142 | + if ($ltv['is_hot'] == 'Y') { | ||
143 | + $listTmp[$ltk] += array('hot' => 'hot'); | ||
144 | + } | ||
145 | + } | ||
146 | + } | ||
147 | + $brandList[$lk] = $listTmp; | ||
148 | + } | ||
149 | + } | ||
150 | + return array( | ||
151 | + 'brandTop' => $brandTop, | ||
152 | + 'brandList' => $brandList | ||
153 | + ); | ||
154 | + } | ||
155 | + | ||
156 | + /* | ||
157 | + * 获取单个广告浮窗内容 | ||
158 | + */ | ||
159 | + public static function getBrandInfo($brandId, $uid) | ||
160 | + { | ||
161 | + $imgsrc = 'http://img11.static.yhbimg.com/goodsimg/2015/10/19/10/01b312c3b7a7efebcd671e73495ff3e306.jpg'; | ||
162 | + $data = array( | ||
163 | + 'key' => '1000011', | ||
164 | + 'icon' => $imgsrc, | ||
165 | + 'title' => '优显led触控台灯', | ||
166 | + 'content' => '优显led触控台灯优显led触控台灯优显led触控台灯优显led触控台灯', | ||
167 | + 'subtitle' => 'AAAAAA', | ||
168 | + 'imgs' => array( | ||
169 | + array( | ||
170 | + 'src' => $imgsrc | ||
171 | + ), | ||
172 | + array( | ||
173 | + 'src' => $imgsrc | ||
174 | + ), | ||
175 | + array( | ||
176 | + 'src' => $imgsrc | ||
177 | + ) | ||
178 | + ) | ||
179 | + ); | ||
180 | + $res = BrandData::getBrandIntro($brandId, $uid); | ||
181 | +//if(isset($res['data']) && $res['data']){ | ||
182 | +// $data['key']=$brandId; | ||
183 | +// $data['icon']= | ||
184 | +//} | ||
185 | + var_dump($res); | ||
186 | + die(); | ||
187 | + | ||
188 | + } | ||
189 | + | ||
190 | + /* | ||
191 | + * 获取品牌一览资源位&channelType | ||
192 | + */ | ||
193 | + | ||
194 | + public static function switchBrandParams($channelStr = 'boys') | ||
195 | + { | ||
196 | + $res = array('channelType' => 1, 'brandCode' => self::BOYS_BRAND_CODE); | ||
197 | + switch ($channelStr) { | ||
198 | + case HomeModel::COOKIE_NAME_BOYS: | ||
199 | + $res['channelType'] = 1; | ||
200 | + $res['brandCode'] = self::BOYS_BRAND_CODE; | ||
201 | + break; | ||
202 | + case HomeModel::COOKIE_NAME_GIRLS: | ||
203 | + $res['channelType'] = 2; | ||
204 | + $res['brandCode'] = self::GIRLS_BRAND_CODE; | ||
205 | + break; | ||
206 | + case HomeModel::COOKIE_NAME_KIDS: | ||
207 | + $res['channelType'] = 3; | ||
208 | + $res['brandCode'] = self::KIDS_BRAND_CODE; | ||
209 | + break; | ||
210 | + case HomeModel::COOKIE_NAME_LIFESTYLE: | ||
211 | + $res['channelType'] = 4; | ||
212 | + $res['brandCode'] = self::LIFESTYLE_BRAND_CODE; | ||
213 | + break; | ||
214 | + default: | ||
215 | + $res['channelType'] = 1; | ||
216 | + $res['brandCode'] = self::BOYS_BRAND_CODE; | ||
217 | + break; | ||
218 | + } | ||
219 | + return $res; | ||
220 | + } | ||
221 | + | ||
96 | } | 222 | } |
1 | +<?php | ||
2 | + | ||
3 | +namespace Product; | ||
4 | + | ||
5 | +use Plugin\HelperSearch; | ||
6 | +use Product\SearchModel; | ||
7 | +use Api\Yohobuy; | ||
8 | + | ||
9 | +/** | ||
10 | + * list Index页模板数据模型 | ||
11 | + * | ||
12 | + */ | ||
13 | +class IndexModel | ||
14 | +{ | ||
15 | + const URI_INDEX_TBANNER = '/shops/service/v1/searchbanner'; | ||
16 | + | ||
17 | + public static function getIndexData($customCondition, $customOptions) | ||
18 | + { | ||
19 | + $urlList = array(); | ||
20 | + $searchCondition = SearchModel::searchCondition($customCondition, $customOptions); | ||
21 | + | ||
22 | + // 组合搜索商品url | ||
23 | + $urlList['product'] = HelperSearch::getProductUrl($searchCondition['condition']); | ||
24 | + | ||
25 | + // 组合搜索分类url | ||
26 | + $urlList['sort'] = HelperSearch::getClassesUrl($searchCondition['condition']); | ||
27 | + | ||
28 | + //用户浏览记录 | ||
29 | + //$urlList['reviewUrl'] = HelperSearch::getReviewUrl($searchCondition['condition']); | ||
30 | + | ||
31 | + //批量调接口获取数据 | ||
32 | + $result = Yohobuy::getMulti($urlList, array(), true); | ||
33 | + | ||
34 | + //调用接口获取list-index banner数据 | ||
35 | + $msort = isset($searchCondition['condition']['msort']) ? $searchCondition['condition']['msort'] : false; | ||
36 | + $misort = isset($searchCondition['condition']['misort']) ? $searchCondition['condition']['misort'] : false; | ||
37 | + $gender = $searchCondition['condition']['gender'] == '2,3' ? 2 : 1; | ||
38 | + if ($msort && $misort) { | ||
39 | + $bannerData = Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URI_INDEX_TBANNER, 'get', array(10,$msort,$misort,$gender,0,0,0,0,0)); | ||
40 | + } | ||
41 | + | ||
42 | + // 组织模板数据 | ||
43 | + $data = HelperSearch::getList($result, $searchCondition['options']); | ||
44 | + | ||
45 | + return $data; | ||
46 | + } | ||
47 | + | ||
48 | +} |
@@ -43,7 +43,6 @@ class SaleModel | @@ -43,7 +43,6 @@ class SaleModel | ||
43 | } | 43 | } |
44 | $special = $specialInfo['data']; | 44 | $special = $specialInfo['data']; |
45 | } | 45 | } |
46 | - | ||
47 | //Sale首页 banner数据 | 46 | //Sale首页 banner数据 |
48 | $data['saleBanner']['bannerHeight'] = $special['banner'][0]['height']; | 47 | $data['saleBanner']['bannerHeight'] = $special['banner'][0]['height']; |
49 | $data['saleBanner']['img'] = $special['banner'][0]['img']; | 48 | $data['saleBanner']['img'] = $special['banner'][0]['img']; |
@@ -51,8 +50,10 @@ class SaleModel | @@ -51,8 +50,10 @@ class SaleModel | ||
51 | $data['saleTitle']['count'] = $data['totalCount']; | 50 | $data['saleTitle']['count'] = $data['totalCount']; |
52 | 51 | ||
53 | //获取广告位数据 | 52 | //获取广告位数据 |
54 | - $nodeContent = HelperSearch::formatNodeContent($special['left_ad_code']); | ||
55 | - $data['leftContent'][]['picLink']['list'] = $nodeContent; | 53 | + if (isset($special['left_ad_code'])) { |
54 | + $nodeContent = HelperSearch::formatNodeContent($special['left_ad_code']); | ||
55 | + $data['leftContent'][]['picLink']['list'] = $nodeContent; | ||
56 | + } | ||
56 | 57 | ||
57 | return $data; | 58 | return $data; |
58 | } | 59 | } |
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | -use Action\AbstractAction; | 3 | +use Action\WebAction; |
4 | use LibModels\Web\Passport\LoginData; | 4 | use LibModels\Web\Passport\LoginData; |
5 | use Plugin\Helpers; | 5 | use Plugin\Helpers; |
6 | use Plugin\Partner\Factory; | 6 | use Plugin\Partner\Factory; |
7 | 7 | ||
8 | -class AutosignController extends AbstractAction | 8 | +class AutosignController extends WebAction |
9 | { | 9 | { |
10 | 10 | ||
11 | /** | 11 | /** |
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | -use Action\AbstractAction; | 3 | +use Action\WebAction; |
4 | use LibModels\Web\Passport\RegData; | 4 | use LibModels\Web\Passport\RegData; |
5 | use LibModels\Wap\Passport\BindData; | 5 | use LibModels\Wap\Passport\BindData; |
6 | use Passport\PassportModel as PassportModel; | 6 | use Passport\PassportModel as PassportModel; |
7 | use Plugin\Helpers; | 7 | use Plugin\Helpers; |
8 | 8 | ||
9 | -class AutouserinfoController extends AbstractAction | 9 | +class AutouserinfoController extends WebAction |
10 | { | 10 | { |
11 | 11 | ||
12 | /** | 12 | /** |
@@ -63,7 +63,6 @@ class BackController extends WebAction { | @@ -63,7 +63,6 @@ class BackController extends WebAction { | ||
63 | } else if (Helpers::verifyMobile($phoneNum)) { // 验证手机号 | 63 | } else if (Helpers::verifyMobile($phoneNum)) { // 验证手机号 |
64 | $mobile = $phoneNum; | 64 | $mobile = $phoneNum; |
65 | $data = BackData::sendCodeToMobile($mobile, $area); | 65 | $data = BackData::sendCodeToMobile($mobile, $area); |
66 | - | ||
67 | if ($data['code'] == 200) { | 66 | if ($data['code'] == 200) { |
68 | $this->setSession ('mobile', $mobile ); | 67 | $this->setSession ('mobile', $mobile ); |
69 | $this->setSession ('area', $area ); | 68 | $this->setSession ('area', $area ); |
@@ -141,7 +140,7 @@ class BackController extends WebAction { | @@ -141,7 +140,7 @@ class BackController extends WebAction { | ||
141 | } | 140 | } |
142 | } | 141 | } |
143 | // 跳转错误页面 | 142 | // 跳转错误页面 |
144 | - // $this->redirect('/error/index'); | 143 | + $this->redirect('/error/index'); |
145 | } | 144 | } |
146 | 145 | ||
147 | /** | 146 | /** |
@@ -5,7 +5,17 @@ class ListController extends WebAction | @@ -5,7 +5,17 @@ class ListController extends WebAction | ||
5 | { | 5 | { |
6 | public function indexAction() | 6 | public function indexAction() |
7 | { | 7 | { |
8 | + $condition = array(); | ||
9 | + $options = array(); | ||
10 | + $indexData = Product\IndexModel::getIndexData($condition, $options); | ||
8 | 11 | ||
12 | + $data = array( | ||
13 | + //初始化js | ||
14 | + 'productListPage' => true, | ||
15 | + 'list' => $indexData | ||
16 | + ); | ||
17 | + $this->setWebNavHeader(); | ||
18 | + $this->_view->display('list', $data); | ||
9 | } | 19 | } |
10 | 20 | ||
11 | /** | 21 | /** |
1 | +; list列表(index) | ||
2 | +routes.productindex.type = "rewrite" | ||
3 | +routes.productindex.match = "/sale" | ||
4 | +routes.productindex.route.module = Product | ||
5 | +routes.productindex.route.controller = List | ||
6 | +routes.productindex.route.action = index | ||
7 | + | ||
1 | ; 折扣专区(SALE) | 8 | ; 折扣专区(SALE) |
2 | routes.productsale.type = "rewrite" | 9 | routes.productsale.type = "rewrite" |
3 | routes.productsale.match = "/sale" | 10 | routes.productsale.match = "/sale" |
-
Please register or login to post a comment