Merge branch 'develop' of http://git.dev.yoho.cn/web/yohobuy into develop
Showing
23 changed files
with
852 additions
and
41 deletions
@@ -10,7 +10,7 @@ var $searchBox = $('.search-box'), | @@ -10,7 +10,7 @@ var $searchBox = $('.search-box'), | ||
10 | $box = $('.box'), | 10 | $box = $('.box'), |
11 | $indexSearch = $('.index-search'), | 11 | $indexSearch = $('.index-search'), |
12 | $indexLogo = $('.index-logo'), | 12 | $indexLogo = $('.index-logo'), |
13 | - $channelLink = $('.index-channel a'); | 13 | + $channelLink = $('.index-channel a:not(#yohood)'); |
14 | 14 | ||
15 | var $search = $searchBox.children('input[type="text"]'), | 15 | var $search = $searchBox.children('input[type="text"]'), |
16 | $cancelSearch = $box.children('.no-search'), | 16 | $cancelSearch = $box.children('.no-search'), |
@@ -36,6 +36,22 @@ | @@ -36,6 +36,22 @@ | ||
36 | <div class="list-right pull-right"> | 36 | <div class="list-right pull-right"> |
37 | {{> product/shop-entry}} | 37 | {{> product/shop-entry}} |
38 | 38 | ||
39 | + {{# sortIntro}} | ||
40 | + <div class="sort-intro clearfix"> | ||
41 | + <div class="texts pull-left"> | ||
42 | + <p class="name">{{name}}</p> | ||
43 | + <p class="en-name">{{enName}}</p> | ||
44 | + <p class="desc">{{description}}</p> | ||
45 | + <div class="key-entry"> | ||
46 | + {{#each keyEntry}} | ||
47 | + <a href="{{url}}">{{name}}</a> | ||
48 | + {{/each}} | ||
49 | + </div> | ||
50 | + </div> | ||
51 | + <img class="pull-right img" src="{{img}}"> | ||
52 | + </div> | ||
53 | + {{/ sortIntro}} | ||
54 | + | ||
39 | {{> product/standard-content}} | 55 | {{> product/standard-content}} |
40 | 56 | ||
41 | {{> product/latest-walk}} | 57 | {{> product/latest-walk}} |
1 | +{{> layout/header}} | ||
2 | +<div class="new-sale-page product-page yoho-page"> | ||
3 | + {{# saleList}} | ||
4 | + {{# saleBanner}} | ||
5 | + <div class="banner-img" style="height: {{bannerHeight}}px;background:url({{img}}) no-repeat top center;"></div> | ||
6 | + {{/ saleBanner}} | ||
7 | + | ||
8 | + <div class="center-content clearfix"> | ||
9 | + {{# saleTitle}} | ||
10 | + <div class="header-title"> | ||
11 | + {{name}} | ||
12 | + <p class="line-through"></p> | ||
13 | + <p class="count-wrap"> | ||
14 | + <span class="count">共{{count}}个结果</span> | ||
15 | + </p> | ||
16 | + </div> | ||
17 | + {{/ saleTitle}} | ||
18 | + | ||
19 | + <div class="list-left pull-left"> | ||
20 | + {{> product/left-content}} | ||
21 | + </div> | ||
22 | + | ||
23 | + <div class="list-right pull-right"> | ||
24 | + {{> product/standard-content}} | ||
25 | + </div> | ||
26 | + </div> | ||
27 | + {{/ saleList}} | ||
28 | +</div> | ||
29 | +{{> layout/footer}} |
@@ -139,3 +139,20 @@ | @@ -139,3 +139,20 @@ | ||
139 | seajs.use('js/order/save'); | 139 | seajs.use('js/order/save'); |
140 | </script> | 140 | </script> |
141 | {{/if}} | 141 | {{/if}} |
142 | + | ||
143 | + | ||
144 | +{{!-- sale列表 --}} | ||
145 | +{{#if saleListPage}} | ||
146 | +<script> | ||
147 | + seajs.use(['js/product/list', 'js/product/product'], function (list, product) { | ||
148 | + | ||
149 | + product.init(4); | ||
150 | + window.onresize = function () { | ||
151 | + setTimeout(function () { | ||
152 | + product.init(4); | ||
153 | + }, 300); | ||
154 | + }; | ||
155 | + | ||
156 | + }); | ||
157 | +</script> | ||
158 | +{{/if}} |
@@ -34,6 +34,22 @@ | @@ -34,6 +34,22 @@ | ||
34 | {{> product/left-content}} | 34 | {{> product/left-content}} |
35 | </div> | 35 | </div> |
36 | <div class="list-right pull-right"> | 36 | <div class="list-right pull-right"> |
37 | + {{# sortIntro}} | ||
38 | + <div class="sort-intro clearfix"> | ||
39 | + <div class="texts pull-left"> | ||
40 | + <p class="name">{{name}}</p> | ||
41 | + <p class="en-name">{{enName}}</p> | ||
42 | + <p class="desc">{{description}}</p> | ||
43 | + <div class="key-entry"> | ||
44 | + {{#each keyEntry}} | ||
45 | + <a href="{{url}}">{{name}}</a> | ||
46 | + {{/each}} | ||
47 | + </div> | ||
48 | + </div> | ||
49 | + <img class="pull-right img" src="{{img}}"> | ||
50 | + </div> | ||
51 | + {{/ sortIntro}} | ||
52 | + | ||
37 | {{> product/standard-content}} | 53 | {{> product/standard-content}} |
38 | 54 | ||
39 | {{> product/latest-walk}} | 55 | {{> product/latest-walk}} |
@@ -3838,6 +3838,7 @@ require("js/passport/reg"); | @@ -3838,6 +3838,7 @@ require("js/passport/reg"); | ||
3838 | require("js/passport/back"); | 3838 | require("js/passport/back"); |
3839 | require("js/passport/login"); | 3839 | require("js/passport/login"); |
3840 | require("js/passport/reset"); | 3840 | require("js/passport/reset"); |
3841 | +require("js/passport/vertification"); | ||
3841 | }); | 3842 | }); |
3842 | define("js/passport/reg", ["jquery"], function(require, exports, module){ | 3843 | define("js/passport/reg", ["jquery"], function(require, exports, module){ |
3843 | /* | 3844 | /* |
@@ -5345,3 +5346,106 @@ $('#pwd, #repwd').keydown(function(e) { | @@ -5345,3 +5346,106 @@ $('#pwd, #repwd').keydown(function(e) { | ||
5345 | }); | 5346 | }); |
5346 | 5347 | ||
5347 | }); | 5348 | }); |
5349 | +define("js/passport/vertification", ["jquery"], function(require, exports, module){ | ||
5350 | +/** | ||
5351 | + * 验证手机 | ||
5352 | + * @author: xuqi<qi.xu@yoho.cn> | ||
5353 | + * @date: 2015/12/14 | ||
5354 | + */ | ||
5355 | + | ||
5356 | +var $ = require("jquery"); | ||
5357 | + | ||
5358 | +var $sc = $('#send-captcha'), | ||
5359 | + $msgTip = $('#captcha-tip'), | ||
5360 | + $errTip = $('#err-tip'), | ||
5361 | + $next = $('#next-step'), | ||
5362 | + seconds, | ||
5363 | + itime; | ||
5364 | + | ||
5365 | +$sc.click(function() { | ||
5366 | + $.post('/passport/register/authcode', { | ||
5367 | + mobile: $('#mobile').val(), | ||
5368 | + area: $('#area').val(), | ||
5369 | + captcha: $('#captchaPic').val(), | ||
5370 | + project: 'repassword' | ||
5371 | + }, function(jsonData) { | ||
5372 | + if (jsonData.code === 200) { | ||
5373 | + $errTip.hide(); | ||
5374 | + if ($(this).hasClass('disable')) { | ||
5375 | + return; | ||
5376 | + } | ||
5377 | + seconds = 60; | ||
5378 | + | ||
5379 | + //$sc.addClass('disable').prop('disabled', true); | ||
5380 | + $sc.addClass('disable').attr('disabled', true); | ||
5381 | + $msgTip.removeClass('hide'); | ||
5382 | + | ||
5383 | + $sc.val(seconds-- + '秒后可重新操作'); | ||
5384 | + itime = setInterval(function() { | ||
5385 | + if (seconds === 0) { | ||
5386 | + clearInterval(itime); | ||
5387 | + | ||
5388 | + //$sc.val('发送验证码').removeClass('disable').prop('disabled', false); | ||
5389 | + $sc.val('发送验证码').removeClass('disable').removeAttr('disabled'); | ||
5390 | + } else { | ||
5391 | + $sc.val(seconds-- + '秒后可重新操作'); | ||
5392 | + } | ||
5393 | + }, 1000); | ||
5394 | + } else { | ||
5395 | + $(this).addClass('error'); | ||
5396 | + $errTip.removeClass('hide').text('发送失败'); | ||
5397 | + } | ||
5398 | + }); | ||
5399 | +}); | ||
5400 | + | ||
5401 | +if ($(this).hasClass('disable')) { | ||
5402 | + return; | ||
5403 | +} | ||
5404 | +seconds = 60; | ||
5405 | + | ||
5406 | +//$sc.addClass('disable').prop('disabled', true); | ||
5407 | +$sc.addClass('disable').attr('disabled', true); | ||
5408 | +$msgTip.removeClass('hide'); | ||
5409 | + | ||
5410 | +$sc.val(seconds-- + '秒后可重新操作'); | ||
5411 | +itime = setInterval(function() { | ||
5412 | + if (seconds === 0) { | ||
5413 | + clearInterval(itime); | ||
5414 | + | ||
5415 | + //$sc.val('发送验证码').removeClass('disable').prop('disabled', false); | ||
5416 | + $sc.val('发送验证码').removeClass('disable').removeAttr('disabled'); | ||
5417 | + } else { | ||
5418 | + $sc.val(seconds-- + '秒后可重新操作'); | ||
5419 | + } | ||
5420 | +}, 1000); | ||
5421 | + | ||
5422 | + | ||
5423 | +$('#captcha').keyup(function() { | ||
5424 | + var v = $.trim($(this).val()); | ||
5425 | + | ||
5426 | + if (v !== '') { | ||
5427 | + | ||
5428 | + //添加验证码正确验证 | ||
5429 | + //$next.removeClass('disable').prop('disabled', false); | ||
5430 | + $next.removeClass('disable').removeAttr('disabled'); | ||
5431 | + } else { | ||
5432 | + | ||
5433 | + //$next.addClass('disable').prop('disabled', true); | ||
5434 | + $next.addClass('disable').attr('disabled', true); | ||
5435 | + } | ||
5436 | +}).blur(function() { | ||
5437 | + var v = $.trim($(this).val()); | ||
5438 | + | ||
5439 | + if (v === '') { | ||
5440 | + | ||
5441 | + //添加验证码正确验证 | ||
5442 | + $(this).addClass('error'); | ||
5443 | + $errTip.removeClass('hide'); | ||
5444 | + } else { | ||
5445 | + $(this).removeClass('error'); | ||
5446 | + $errTip.addClass('hide'); | ||
5447 | + } | ||
5448 | +}).focus(function() { | ||
5449 | + $(this).removeClass('error'); | ||
5450 | +}); | ||
5451 | +}); |
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.
@@ -95,20 +95,20 @@ function getShoppingKey() { | @@ -95,20 +95,20 @@ function getShoppingKey() { | ||
95 | } | 95 | } |
96 | 96 | ||
97 | //YAS统计代码 | 97 | //YAS统计代码 |
98 | -(function(w, d, s, j, f) { | ||
99 | - var a = d.createElement(s); | ||
100 | - var m = d.getElementsByTagName(s)[0]; | ||
101 | - | ||
102 | - w.YohoAcquisitionObject = f; | ||
103 | - | ||
104 | - w[f] = function() { | ||
105 | - w[f].p = arguments; | ||
106 | - }; | ||
107 | - | ||
108 | - a.async = 1; | ||
109 | - a.src = j; | ||
110 | - m.parentNode.insertBefore(a, m); | ||
111 | -})(window, document, 'script', 'http://cdn.yoho.cn/yas-jssdk/1.0.14/yas.js', '_yas'); | 98 | +//(function(w, d, s, j, f) { |
99 | +// var a = d.createElement(s); | ||
100 | +// var m = d.getElementsByTagName(s)[0]; | ||
101 | +// | ||
102 | +// w.YohoAcquisitionObject = f; | ||
103 | +// | ||
104 | +// w[f] = function() { | ||
105 | +// w[f].p = arguments; | ||
106 | +// }; | ||
107 | +// | ||
108 | +// a.async = 1; | ||
109 | +// a.src = j; | ||
110 | +// m.parentNode.insertBefore(a, m); | ||
111 | +//})(window, document, 'script', 'http://cdn.yoho.cn/yas-jssdk/1.0.14/yas.js', '_yas'); | ||
112 | 112 | ||
113 | (function() { | 113 | (function() { |
114 | var uid = getUid(); | 114 | var uid = getUid(); |
@@ -155,4 +155,77 @@ | @@ -155,4 +155,77 @@ | ||
155 | color: #f00; | 155 | color: #f00; |
156 | } | 156 | } |
157 | } | 157 | } |
158 | + | ||
159 | + .sort-intro { | ||
160 | + margin-bottom: 20px; | ||
161 | + | ||
162 | + .texts { | ||
163 | + width: 386px; | ||
164 | + height: 298px; | ||
165 | + padding: 0 50px; | ||
166 | + border: 1px solid #eaeceb; | ||
167 | + text-align: center; | ||
168 | + overflow: hidden; | ||
169 | + } | ||
170 | + | ||
171 | + .name { | ||
172 | + font-size: 30px; | ||
173 | + font-weight: bold; | ||
174 | + margin-top: 60px; | ||
175 | + } | ||
176 | + | ||
177 | + .en-name { | ||
178 | + font-size: 14px; | ||
179 | + font-weight: bold; | ||
180 | + } | ||
181 | + | ||
182 | + .desc { | ||
183 | + margin-top: 15px; | ||
184 | + color: #666; | ||
185 | + margin-top: 15px; | ||
186 | + font-size: 12px; | ||
187 | + line-height: 150%; | ||
188 | + } | ||
189 | + | ||
190 | + .img { | ||
191 | + width: 480px; | ||
192 | + height: 300px; | ||
193 | + } | ||
194 | + | ||
195 | + .key-entry { | ||
196 | + width: 330px; | ||
197 | + margin: 30px auto 0; | ||
198 | + | ||
199 | + a { | ||
200 | + float: left; | ||
201 | + display: block; | ||
202 | + width: 110px; | ||
203 | + height: 14px; | ||
204 | + line-height: 14px; | ||
205 | + font-size: 12px; | ||
206 | + margin-bottom: 5px; | ||
207 | + color: #069; | ||
208 | + text-decoration: underline; | ||
209 | + } | ||
210 | + } | ||
211 | + } | ||
212 | +} | ||
213 | + | ||
214 | +@media (max-width: 1180px) { | ||
215 | + .product-list-page .sort-intro { | ||
216 | + .texts { | ||
217 | + width: 346px; | ||
218 | + height: 248px; | ||
219 | + padding: 0 30px; | ||
220 | + } | ||
221 | + | ||
222 | + .name { | ||
223 | + margin-top: 30px; | ||
224 | + } | ||
225 | + | ||
226 | + .img { | ||
227 | + width: 400px; | ||
228 | + height: 250px; | ||
229 | + } | ||
230 | + } | ||
158 | } | 231 | } |
@@ -329,7 +329,6 @@ class HomeModel | @@ -329,7 +329,6 @@ class HomeModel | ||
329 | public static function getChannel() | 329 | public static function getChannel() |
330 | { | 330 | { |
331 | $result = array(); | 331 | $result = array(); |
332 | - | ||
333 | if (USE_CACHE) { | 332 | if (USE_CACHE) { |
334 | $key = CacheConfig::KEY_ACTION_INDEX_CONFIG; | 333 | $key = CacheConfig::KEY_ACTION_INDEX_CONFIG; |
335 | // 先尝试获取一级缓存(master), 有数据则直接返回. | 334 | // 先尝试获取一级缓存(master), 有数据则直接返回. |
@@ -340,6 +339,7 @@ class HomeModel | @@ -340,6 +339,7 @@ class HomeModel | ||
340 | } | 339 | } |
341 | 340 | ||
342 | $data = IndexData::channelData(); | 341 | $data = IndexData::channelData(); |
342 | + | ||
343 | if (!empty($data['data']['list'])) { | 343 | if (!empty($data['data']['list'])) { |
344 | $build = array(); | 344 | $build = array(); |
345 | foreach ($data['data']['list'] as $value) { | 345 | foreach ($data['data']['list'] as $value) { |
@@ -372,9 +372,11 @@ class HomeModel | @@ -372,9 +372,11 @@ class HomeModel | ||
372 | default: | 372 | default: |
373 | continue; | 373 | continue; |
374 | } | 374 | } |
375 | + if (!empty($build)) { | ||
375 | $result['channelList'][] = $build; | 376 | $result['channelList'][] = $build; |
376 | } | 377 | } |
377 | } | 378 | } |
379 | + } | ||
378 | 380 | ||
379 | if (USE_CACHE) { | 381 | if (USE_CACHE) { |
380 | // 接口调用异常时, 不害怕,从我们的二级缓存(slave)里再取数据. | 382 | // 接口调用异常时, 不害怕,从我们的二级缓存(slave)里再取数据. |
@@ -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 (3 === $level) { | 74 | + if (2 === $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': // 主站 |
@@ -88,6 +88,12 @@ class Bootstrap extends Bootstrap_Abstract | @@ -88,6 +88,12 @@ class Bootstrap extends Bootstrap_Abstract | ||
88 | break; | 88 | break; |
89 | case 'list': // 商品列表 | 89 | case 'list': // 商品列表 |
90 | $module = 'Product'; | 90 | $module = 'Product'; |
91 | + $url = strtolower($dispatcher->getRequest()->getRequestUri()); | ||
92 | + //list列表的index | ||
93 | + if(empty($url) || $url == '/index' || $url == '/') { | ||
94 | + $listRequest = new Yaf\Request\Http('/product/list/index'); | ||
95 | + $dispatcher->setRequest($listRequest); | ||
96 | + } | ||
91 | break; | 97 | break; |
92 | case 'sale'://促销 | 98 | case 'sale'://促销 |
93 | $module = 'Product'; | 99 | $module = 'Product'; |
@@ -79,8 +79,8 @@ class HomeModel | @@ -79,8 +79,8 @@ class HomeModel | ||
79 | 'is_new' => $val['is_new'] == 'Y' ? true : false, | 79 | 'is_new' => $val['is_new'] == 'Y' ? true : false, |
80 | // 'subnav' => array() | 80 | // 'subnav' => array() |
81 | ); | 81 | ); |
82 | - foreach ($val['sub'] as $sub) { // 二级 | ||
83 | $index_sub = 0; | 82 | $index_sub = 0; |
83 | + foreach ($val['sub'] as $sub) { // 二级 | ||
84 | $subnav = array( | 84 | $subnav = array( |
85 | 'name' => $sub['sort_name'], | 85 | 'name' => $sub['sort_name'], |
86 | 'name_en' => $sub['sort_name_en'], | 86 | 'name_en' => $sub['sort_name_en'], |
@@ -31,18 +31,42 @@ class IndexModel | @@ -31,18 +31,42 @@ class IndexModel | ||
31 | //批量调接口获取数据 | 31 | //批量调接口获取数据 |
32 | $result = Yohobuy::getMulti($urlList, array(), true); | 32 | $result = Yohobuy::getMulti($urlList, array(), true); |
33 | 33 | ||
34 | + // 组织模板数据 | ||
35 | + $data = HelperSearch::getList($result, $searchCondition['options']); | ||
36 | + | ||
34 | //调用接口获取list-index banner数据 | 37 | //调用接口获取list-index banner数据 |
35 | $msort = isset($searchCondition['condition']['msort']) ? $searchCondition['condition']['msort'] : false; | 38 | $msort = isset($searchCondition['condition']['msort']) ? $searchCondition['condition']['msort'] : false; |
36 | $misort = isset($searchCondition['condition']['misort']) ? $searchCondition['condition']['misort'] : false; | 39 | $misort = isset($searchCondition['condition']['misort']) ? $searchCondition['condition']['misort'] : false; |
40 | + $positionId = isset($searchCondition['options']['positionId']) ? $searchCondition['options']['positionId'] : ''; | ||
37 | $gender = $searchCondition['condition']['gender'] == '2,3' ? 2 : 1; | 41 | $gender = $searchCondition['condition']['gender'] == '2,3' ? 2 : 1; |
38 | if ($msort && $misort) { | 42 | 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)); | 43 | + $bannerData = Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URI_INDEX_TBANNER, 'get', array($positionId,$msort,$misort,$gender,0,0,0,0,0)); |
44 | + if (isset($bannerData['code']) && $bannerData['code'] == '200') { | ||
45 | + $banner = self::formatBanner($bannerData['data']); | ||
46 | + } | ||
47 | + } | ||
48 | + //插入banner数据 | ||
49 | + if (!empty($banner)) { | ||
50 | + $data['sortIntro'] = $banner; | ||
40 | } | 51 | } |
41 | - | ||
42 | - // 组织模板数据 | ||
43 | - $data = HelperSearch::getList($result, $searchCondition['options']); | ||
44 | 52 | ||
45 | return $data; | 53 | return $data; |
46 | } | 54 | } |
47 | 55 | ||
56 | + //组织list-index banner数据 | ||
57 | + public static function formatBanner($bannerData) | ||
58 | + { | ||
59 | + $banner = array(); | ||
60 | + $banner['name'] = $bannerData['title']; | ||
61 | + $banner['enName'] = $bannerData['subtitle']; | ||
62 | + $banner['desc'] = $bannerData['intro']; | ||
63 | + $banner['img'] = $bannerData['logo']; | ||
64 | + foreach($bannerData['keyword'] as $key => $vo){ | ||
65 | + $banner['keyEntry'][$key]['name'] = $vo['word']; | ||
66 | + $banner['keyEntry'][$key]['url'] = $vo['url']; | ||
67 | + } | ||
68 | + | ||
69 | + return $banner; | ||
70 | + } | ||
71 | + | ||
48 | } | 72 | } |
@@ -205,6 +205,7 @@ class BackController extends WebAction { | @@ -205,6 +205,7 @@ class BackController extends WebAction { | ||
205 | $code = AuthCode::encode ( $str, PassportModel::BACK_FIND_SECRET_KEY ); | 205 | $code = AuthCode::encode ( $str, PassportModel::BACK_FIND_SECRET_KEY ); |
206 | $url = '/passport/back/backcode?code=' . base64_encode ( $code ); | 206 | $url = '/passport/back/backcode?code=' . base64_encode ( $code ); |
207 | $this->redirect ( SITE_MAIN . $url ); | 207 | $this->redirect ( SITE_MAIN . $url ); |
208 | + return true; | ||
208 | } | 209 | } |
209 | } | 210 | } |
210 | //出错直接跳到找回密码页 | 211 | //出错直接跳到找回密码页 |
@@ -429,6 +429,26 @@ class Index1Controller extends AbstractAction | @@ -429,6 +429,26 @@ class Index1Controller extends AbstractAction | ||
429 | 'name' => '包类/装备' | 429 | 'name' => '包类/装备' |
430 | ) | 430 | ) |
431 | ), | 431 | ), |
432 | + 'sortIntro' => array( | ||
433 | + 'name' => '羽绒服', | ||
434 | + 'enName' => 'DOWN COAT', | ||
435 | + 'desc' => '羽绒服是冬季必不可少的服饰之一,冬天的街头充斥着各种各样的羽绒服,特别是在北方。时下羽绒服融入了毛领、收腰等时尚元素,更显潮人们的完美身材。', | ||
436 | + 'keyEntry' => array( | ||
437 | + array( | ||
438 | + 'name' => 'Livis' | ||
439 | + ), | ||
440 | + array( | ||
441 | + 'name' => 'LEE' | ||
442 | + ), | ||
443 | + array( | ||
444 | + 'name' => 'LE2E' | ||
445 | + ), | ||
446 | + array( | ||
447 | + 'name' => 'LE2E' | ||
448 | + ) | ||
449 | + ), | ||
450 | + 'img' => 'http://img13.static.yhbimg.com/adpic/2015/12/22/06/0276abe61367884cea21b779e47141891b.jpg' | ||
451 | + ), | ||
432 | 'shopEntry' => array( | 452 | 'shopEntry' => array( |
433 | 'home' => 'adidas.yohobuy.com', | 453 | 'home' => 'adidas.yohobuy.com', |
434 | 'logo' => 'http://img11.static.yhbimg.com/brandLogo/2013/01/16/09/01f515687de080f94243cb1aa0fedb2fe1.jpg?imageMogr2/thumbnail/80x50/extent/80x50/background/d2hpdGU=/position/center/quality/90', | 454 | 'logo' => 'http://img11.static.yhbimg.com/brandLogo/2013/01/16/09/01f515687de080f94243cb1aa0fedb2fe1.jpg?imageMogr2/thumbnail/80x50/extent/80x50/background/d2hpdGU=/position/center/quality/90', |
@@ -5,8 +5,12 @@ class ListController extends WebAction | @@ -5,8 +5,12 @@ class ListController extends WebAction | ||
5 | { | 5 | { |
6 | public function indexAction() | 6 | public function indexAction() |
7 | { | 7 | { |
8 | + //获取banner id | ||
9 | + $positionId = 10; //搜素banner 位置id | ||
8 | $condition = array(); | 10 | $condition = array(); |
9 | - $options = array(); | 11 | + $options = array( |
12 | + 'positionId' => $positionId | ||
13 | + ); | ||
10 | $indexData = Product\IndexModel::getIndexData($condition, $options); | 14 | $indexData = Product\IndexModel::getIndexData($condition, $options); |
11 | 15 | ||
12 | $data = array( | 16 | $data = array( |
@@ -55,4 +55,513 @@ class Sale1Controller extends WebAction | @@ -55,4 +55,513 @@ class Sale1Controller extends WebAction | ||
55 | $this->setWebNavHeader(); | 55 | $this->setWebNavHeader(); |
56 | $this->_view->display('index', $data); | 56 | $this->_view->display('index', $data); |
57 | } | 57 | } |
58 | + | ||
59 | + //列表页 | ||
60 | + public function saleListAction() | ||
61 | + { | ||
62 | + $data = array( | ||
63 | + 'saleListPage' => true, | ||
64 | + 'saleList' => array( | ||
65 | + 'saleBanner' => array( | ||
66 | + 'bannerHeight' => 350, | ||
67 | + 'img' => 'http://img12.static.yhbimg.com/couponImg/2015/12/10/08/02d4c26f19ca2e44359d69d5cff86167fb.jpg' | ||
68 | + ), | ||
69 | + 'saleTitle' => array( | ||
70 | + 'name' => '全部商品', | ||
71 | + 'count' => 540 | ||
72 | + ), | ||
73 | + 'leftContent' => array( | ||
74 | + array( | ||
75 | + 'allSort' => array( | ||
76 | + 'updateNum' => 145, | ||
77 | + 'list' => array( | ||
78 | + array( | ||
79 | + 'name' => '裙装', | ||
80 | + 'num' => '10', | ||
81 | + 'childList' => array( | ||
82 | + array( | ||
83 | + 'name' => '全身裙装', | ||
84 | + 'href' => 'http://adidas.yohobuy.com/?gender=1,3', | ||
85 | + 'num' => '5' | ||
86 | + ), | ||
87 | + array( | ||
88 | + 'name' => '全身裙装', | ||
89 | + 'href' => 'http://adidas.yohobuy.com/?gender=1,3', | ||
90 | + 'num' => '5' | ||
91 | + ), | ||
92 | + array( | ||
93 | + 'name' => '全身裙装', | ||
94 | + 'href' => 'http://adidas.yohobuy.com/?gender=1,3', | ||
95 | + 'num' => '5' | ||
96 | + ), | ||
97 | + array( | ||
98 | + 'name' => '全身裙装', | ||
99 | + 'href' => 'http://adidas.yohobuy.com/?gender=1,3', | ||
100 | + 'num' => '5' | ||
101 | + ) | ||
102 | + ) | ||
103 | + ), | ||
104 | + array( | ||
105 | + 'name' => '裙装BBB', | ||
106 | + 'num' => '10', | ||
107 | + 'childList' => array( | ||
108 | + array( | ||
109 | + 'name' => '全身裙装', | ||
110 | + 'href' => 'http://adidas.yohobuy.com/?gender=1,3', | ||
111 | + 'num' => '5' | ||
112 | + ), | ||
113 | + array( | ||
114 | + 'name' => '全身裙装', | ||
115 | + 'href' => 'http://adidas.yohobuy.com/?gender=1,3', | ||
116 | + 'num' => '5' | ||
117 | + ), | ||
118 | + array( | ||
119 | + 'name' => '全身裙装', | ||
120 | + 'href' => 'http://adidas.yohobuy.com/?gender=1,3', | ||
121 | + 'num' => '5' | ||
122 | + ), | ||
123 | + array( | ||
124 | + 'name' => '全身裙装', | ||
125 | + 'href' => 'http://adidas.yohobuy.com/?gender=1,3', | ||
126 | + 'num' => '5' | ||
127 | + ) | ||
128 | + ) | ||
129 | + ) | ||
130 | + ) | ||
131 | + ) | ||
132 | + ), | ||
133 | + array( | ||
134 | + 'picLink' => array( | ||
135 | + 'title' => 'AAAA', | ||
136 | + 'list' => array( | ||
137 | + array( | ||
138 | + 'href' => 'http://adidas.yohobuy.com/?folder=1366', | ||
139 | + 'src' => 'http://img12.static.yhbimg.com/brandBanner/2015/02/04/06/0216e9a4c1c1edb0c8fe6b4347cc5a8035.jpg' | ||
140 | + ), | ||
141 | + array( | ||
142 | + 'href' => 'http://adidas.yohobuy.com/?folder=1366', | ||
143 | + 'src' => 'http://img12.static.yhbimg.com/brandBanner/2015/02/04/06/0216e9a4c1c1edb0c8fe6b4347cc5a8035.jpg' | ||
144 | + ) | ||
145 | + ) | ||
146 | + ) | ||
147 | + ), | ||
148 | + array( | ||
149 | + 'advPic' => array( | ||
150 | + 'advPicTitle' => false, | ||
151 | + 'list' => array( | ||
152 | + array( | ||
153 | + 'href' => 'http://adidas.yohobuy.com/?folder=1366', | ||
154 | + 'src' => 'http://img02.static.yohobuy.com/cms/2015/11/10/15/02ee7970deb68390b77cbf0685f26fc5bf.jpg' | ||
155 | + ), | ||
156 | + array( | ||
157 | + 'href' => 'http://adidas.yohobuy.com/?folder=1366', | ||
158 | + 'src' => 'http://img02.static.yohobuy.com/cms/2015/11/10/15/02ee7970deb68390b77cbf0685f26fc5bf.jpg' | ||
159 | + ) | ||
160 | + ) | ||
161 | + ) | ||
162 | + ), | ||
163 | + array( | ||
164 | + 'newSales' => array( | ||
165 | + 'updateNum' => 130, | ||
166 | + 'list' => array( | ||
167 | + array( | ||
168 | + 'name' => '12月03日', | ||
169 | + 'href' => 'http://adidas.yohobuy.com/?gender=1,3', | ||
170 | + 'num' => '5' | ||
171 | + ), | ||
172 | + array( | ||
173 | + 'name' => '12月03日', | ||
174 | + 'href' => 'http://adidas.yohobuy.com/?gender=1,3', | ||
175 | + 'num' => '5' | ||
176 | + ), | ||
177 | + array( | ||
178 | + 'name' => '12月03日', | ||
179 | + 'href' => 'http://adidas.yohobuy.com/?gender=1,3', | ||
180 | + 'num' => '5' | ||
181 | + ), | ||
182 | + array( | ||
183 | + 'name' => '12月03日', | ||
184 | + 'href' => 'http://adidas.yohobuy.com/?gender=1,3', | ||
185 | + 'num' => '5' | ||
186 | + ) | ||
187 | + ) | ||
188 | + ) | ||
189 | + ), | ||
190 | + array( | ||
191 | + 'allDiscount' => array( | ||
192 | + 'updateNum' => 130, | ||
193 | + 'list' => array( | ||
194 | + array( | ||
195 | + 'name' => '1~3折', | ||
196 | + 'href' => 'http://adidas.yohobuy.com/?gender=1,3', | ||
197 | + 'num' => '5' | ||
198 | + ), | ||
199 | + array( | ||
200 | + 'name' => '4~6折', | ||
201 | + 'href' => 'http://adidas.yohobuy.com/?gender=1,3', | ||
202 | + 'num' => '5' | ||
203 | + ), | ||
204 | + array( | ||
205 | + 'name' => '7折', | ||
206 | + 'href' => 'http://adidas.yohobuy.com/?gender=1,3', | ||
207 | + 'num' => '5' | ||
208 | + ) | ||
209 | + ) | ||
210 | + ) | ||
211 | + ) | ||
212 | + ), | ||
213 | + 'filters' => array( | ||
214 | + 'checkedConditions' => array( | ||
215 | + 'conditions' => array( | ||
216 | + array( | ||
217 | + 'href' => '', | ||
218 | + 'name' => '暗黑' | ||
219 | + ), | ||
220 | + array( | ||
221 | + 'href' => '', | ||
222 | + 'color' => '#f00' | ||
223 | + ), | ||
224 | + array( | ||
225 | + 'href' => '', | ||
226 | + 'name' => 'CLOT' | ||
227 | + ) | ||
228 | + ), | ||
229 | + 'clearUrl' => '' | ||
230 | + ), | ||
231 | + 'channel' => array( | ||
232 | + array( | ||
233 | + 'href' => '/?gender=1,3', | ||
234 | + 'name' => 'BOYS' | ||
235 | + ), | ||
236 | + array( | ||
237 | + 'href' => '/?gender=2,3', | ||
238 | + 'name' => 'GIRLS' | ||
239 | + ), | ||
240 | + array( | ||
241 | + 'href' => '', | ||
242 | + 'name' => 'KIDS' | ||
243 | + ), | ||
244 | + array( | ||
245 | + 'href' => '', | ||
246 | + 'name' => 'LIFESTYLE' | ||
247 | + ) | ||
248 | + ), | ||
249 | + 'sort' => array( | ||
250 | + array( | ||
251 | + 'id' => '1', | ||
252 | + 'name' => '上衣', | ||
253 | + 'sub' => array( | ||
254 | + array( | ||
255 | + 'href' => '', | ||
256 | + 'name' => 'T恤' | ||
257 | + ), | ||
258 | + array( | ||
259 | + 'href' => '', | ||
260 | + 'name' => '棉袄' | ||
261 | + ), | ||
262 | + array( | ||
263 | + 'href' => '', | ||
264 | + 'name' => '外套' | ||
265 | + ) | ||
266 | + ) | ||
267 | + ), | ||
268 | + array( | ||
269 | + 'id' => '2', | ||
270 | + 'name' => '裤子' | ||
271 | + ), | ||
272 | + array( | ||
273 | + 'id' => '3', | ||
274 | + 'name' => '连衣裙' | ||
275 | + ), | ||
276 | + array( | ||
277 | + 'id' => '4', | ||
278 | + 'name' => '鞋' | ||
279 | + ) | ||
280 | + ), | ||
281 | + 'brand' => array( | ||
282 | + 'default' => array( | ||
283 | + array( | ||
284 | + 'href' => '', | ||
285 | + 'name' => 'CLOT' | ||
286 | + ), | ||
287 | + array( | ||
288 | + 'href' => '', | ||
289 | + 'name' => 'ABLE JEANS' | ||
290 | + ), | ||
291 | + array( | ||
292 | + 'href' => '', | ||
293 | + 'name' => 'Eight Guys' | ||
294 | + ), | ||
295 | + array( | ||
296 | + 'href' => '', | ||
297 | + 'name' => 'FAIRWHALE JEANS' | ||
298 | + ), | ||
299 | + array( | ||
300 | + 'href' => '', | ||
301 | + 'name' => '鬼洗' | ||
302 | + ), | ||
303 | + array( | ||
304 | + 'href' => '', | ||
305 | + 'name' => '金银帝国Imperial Taels' | ||
306 | + ), | ||
307 | + array( | ||
308 | + 'href' => '', | ||
309 | + 'name' => 'F.L.Y.D' | ||
310 | + ), | ||
311 | + array( | ||
312 | + 'href' => '', | ||
313 | + 'name' => 'Tapenade特芙娜' | ||
314 | + ), | ||
315 | + array( | ||
316 | + 'href' => '', | ||
317 | + 'name' => 'Adidas Originals' | ||
318 | + ) | ||
319 | + ), | ||
320 | + 'brandIndex' => array( | ||
321 | + array( | ||
322 | + 'index' => 'all', | ||
323 | + 'name' => '全部' | ||
324 | + ), | ||
325 | + array( | ||
326 | + 'index' => '0-9', | ||
327 | + 'name' => '0 ~ 9' | ||
328 | + ), | ||
329 | + array( | ||
330 | + 'index' => 'a', | ||
331 | + 'name' => 'A' | ||
332 | + ) | ||
333 | + ), | ||
334 | + 'brandsShow' => array( | ||
335 | + array( | ||
336 | + 'id' => '1', | ||
337 | + 'href' => '', | ||
338 | + 'index' => '0-9', | ||
339 | + 'name' => '5cm', | ||
340 | + 'key' => '5cm' | ||
341 | + ), | ||
342 | + array( | ||
343 | + 'id' => '2', | ||
344 | + 'href' => '', | ||
345 | + 'index' => 'k', | ||
346 | + 'name' => 'KTZ', | ||
347 | + 'key' => 'ktz' | ||
348 | + ), | ||
349 | + array( | ||
350 | + 'id' => '3', | ||
351 | + 'href' => '', | ||
352 | + 'index' => 't', | ||
353 | + 'name' => 'Tapenade特芙娜', | ||
354 | + 'key' => 'tapenade特芙娜' | ||
355 | + ), | ||
356 | + array( | ||
357 | + 'id' => '4', | ||
358 | + 'href' => '', | ||
359 | + 'index' => 'j', | ||
360 | + 'name' => '金银帝国Imperial Taels', | ||
361 | + 'key' => '金银帝国imperial taels' | ||
362 | + ), | ||
363 | + array( | ||
364 | + 'id' => '5', | ||
365 | + 'href' => '', | ||
366 | + 'index' => 'a', | ||
367 | + 'name' => 'ABLE JEANS', | ||
368 | + 'key' => 'able jeans' | ||
369 | + ) | ||
370 | + ) | ||
371 | + ), | ||
372 | + 'price' => array( | ||
373 | + array( | ||
374 | + 'href' => '', | ||
375 | + 'name' => '0-239' | ||
376 | + ), | ||
377 | + array( | ||
378 | + 'href' => '', | ||
379 | + 'name' => '240-329' | ||
380 | + ) | ||
381 | + ), | ||
382 | + 'color' => array( | ||
383 | + array( | ||
384 | + 'href' => '', | ||
385 | + 'name' => '黑色', | ||
386 | + 'rgb' => '#000' | ||
387 | + ), | ||
388 | + array( | ||
389 | + 'href' => '', | ||
390 | + 'name' => '红色', | ||
391 | + 'rgb' => '#f00' | ||
392 | + ) | ||
393 | + ), | ||
394 | + 'size' => array( | ||
395 | + array( | ||
396 | + 'href' => '', | ||
397 | + 'name' => 'S' | ||
398 | + ), | ||
399 | + array( | ||
400 | + 'href' => '', | ||
401 | + 'name' => 'L' | ||
402 | + ) | ||
403 | + ), | ||
404 | + 'seniorChose' => array( | ||
405 | + array( | ||
406 | + 'attr' => 'style', | ||
407 | + 'name' => '风格', | ||
408 | + 'showMulti' => true, | ||
409 | + 'sub' => array( | ||
410 | + array( | ||
411 | + 'id' => '1', | ||
412 | + 'href' => '', | ||
413 | + 'name' => '街头' | ||
414 | + ), | ||
415 | + array( | ||
416 | + 'id' => '2', | ||
417 | + 'href' => '', | ||
418 | + 'name' => '简约' | ||
419 | + ) | ||
420 | + ) | ||
421 | + ), | ||
422 | + array( | ||
423 | + 'attr' => 'weather', | ||
424 | + 'name' => '适用季节', | ||
425 | + 'sub' => array( | ||
426 | + array( | ||
427 | + 'id' => '1', | ||
428 | + 'href' => '', | ||
429 | + 'name' => '春天' | ||
430 | + ), | ||
431 | + array( | ||
432 | + 'id' => '2', | ||
433 | + 'href' => '', | ||
434 | + 'name' => '夏天' | ||
435 | + ) | ||
436 | + ) | ||
437 | + ) | ||
438 | + ) | ||
439 | + ), | ||
440 | + 'opts' => array( | ||
441 | + 'sortType' => array( | ||
442 | + array( | ||
443 | + 'href' => '', | ||
444 | + 'name' => '默认' | ||
445 | + ), | ||
446 | + array( | ||
447 | + 'active' => true, | ||
448 | + 'href' => '', | ||
449 | + 'name' => '最新', | ||
450 | + 'hasSortOrient' => true, | ||
451 | + 'desc' => true | ||
452 | + ), | ||
453 | + array( | ||
454 | + 'href' => '', | ||
455 | + 'name' => '价格', | ||
456 | + 'hasSortOrient' => true | ||
457 | + ), | ||
458 | + array( | ||
459 | + 'href' => '', | ||
460 | + 'name' => '折扣', | ||
461 | + 'hasSortOrient' => true | ||
462 | + ) | ||
463 | + ), | ||
464 | + 'checks' => array( | ||
465 | + array( | ||
466 | + 'name' => '新品', | ||
467 | + 'checked' => true, | ||
468 | + 'href' => '' | ||
469 | + ), | ||
470 | + array( | ||
471 | + 'name' => '打折', | ||
472 | + 'href' => '' | ||
473 | + ), | ||
474 | + array( | ||
475 | + 'name' => '限量', | ||
476 | + 'checked' => true, | ||
477 | + 'href' => '' | ||
478 | + ) | ||
479 | + ), | ||
480 | + 'fivePerLine' => true, | ||
481 | + 'sixPerLineHref' => '', | ||
482 | + 'countPerPage' => '120', | ||
483 | + 'pageCounts' => array( | ||
484 | + array( | ||
485 | + 'href' => '', | ||
486 | + 'count' => 60 | ||
487 | + ), | ||
488 | + array( | ||
489 | + 'href' => '', | ||
490 | + 'count' => 100 | ||
491 | + ), | ||
492 | + array( | ||
493 | + 'href' => '', | ||
494 | + 'count' => 120 | ||
495 | + ) | ||
496 | + ), | ||
497 | + 'curPage' => 1, | ||
498 | + 'pageCount' => 30, | ||
499 | + 'nextHref' => 'hello' | ||
500 | + ), | ||
501 | + 'goods' => array( | ||
502 | + array( | ||
503 | + 'tags' => array( | ||
504 | + 'isNew' => true, | ||
505 | + 'isYearEndPromotion' => true | ||
506 | + ), | ||
507 | + 'url' => 'http://adidas.yohobuy.com/?gender=1,3', | ||
508 | + 'thumb' => 'http://img12.static.yhbimg.com/goodsimg/2015/11/22/03/02c17af44dc23aa5a62d61cb59a05380bc.jpg?imageMogr2/thumbnail/235x314/extent/235x314/background/d2hpdGU=/position/center/quality/90', | ||
509 | + 'name' => 'adidas Originals FORUM 中帮拼色休闲板鞋', | ||
510 | + 'salePrice' => '899', | ||
511 | + 'isFew' => true | ||
512 | + ), | ||
513 | + array( | ||
514 | + 'tags' => array( | ||
515 | + 'isNew' => true, | ||
516 | + 'isReNew' => true | ||
517 | + ), | ||
518 | + 'url' => 'http://adidas.yohobuy.com/?gender=1,3', | ||
519 | + 'thumb' => 'http://img12.static.yhbimg.com/goodsimg/2015/11/22/03/02c17af44dc23aa5a62d61cb59a05380bc.jpg?imageMogr2/thumbnail/235x314/extent/235x314/background/d2hpdGU=/position/center/quality/90', | ||
520 | + 'name' => 'adidas Originals FORUM 中帮拼色休闲板鞋', | ||
521 | + 'salePrice' => '899', | ||
522 | + 'showColBtn' => true | ||
523 | + ), | ||
524 | + array( | ||
525 | + 'tags' => array( | ||
526 | + 'isNew' => true, | ||
527 | + 'isReNew' => true | ||
528 | + ), | ||
529 | + 'url' => 'http://adidas.yohobuy.com/?gender=1,3', | ||
530 | + 'thumb' => 'http://img12.static.yhbimg.com/goodsimg/2015/11/22/03/02c17af44dc23aa5a62d61cb59a05380bc.jpg?imageMogr2/thumbnail/235x314/extent/235x314/background/d2hpdGU=/position/center/quality/90', | ||
531 | + 'name' => 'adidas Originals FORUM 中帮拼色休闲板鞋', | ||
532 | + 'salePrice' => '899' | ||
533 | + ), | ||
534 | + array( | ||
535 | + 'url' => 'http://adidas.yohobuy.com/?gender=1,3', | ||
536 | + 'thumb' => 'http://img12.static.yhbimg.com/goodsimg/2015/11/22/03/02c17af44dc23aa5a62d61cb59a05380bc.jpg?imageMogr2/thumbnail/235x314/extent/235x314/background/d2hpdGU=/position/center/quality/90', | ||
537 | + 'name' => 'adidas Originals FORUM 中帮拼色休闲板鞋', | ||
538 | + 'salePrice' => '899' | ||
539 | + ), | ||
540 | + array( | ||
541 | + 'tags' => array( | ||
542 | + 'isNew' => true, | ||
543 | + 'isReNew' => true | ||
544 | + ), | ||
545 | + 'url' => 'http://adidas.yohobuy.com/?gender=1,3', | ||
546 | + 'thumb' => 'http://img12.static.yhbimg.com/goodsimg/2015/11/22/03/02c17af44dc23aa5a62d61cb59a05380bc.jpg?imageMogr2/thumbnail/235x314/extent/235x314/background/d2hpdGU=/position/center/quality/90', | ||
547 | + 'name' => 'adidas Originals FORUM 中帮拼色休闲板鞋', | ||
548 | + 'salePrice' => '899' | ||
549 | + ), | ||
550 | + array( | ||
551 | + 'tags' => array( | ||
552 | + 'isNew' => true, | ||
553 | + 'isReNew' => true | ||
554 | + ), | ||
555 | + 'url' => 'http://adidas.yohobuy.com/?gender=1,3', | ||
556 | + 'thumb' => 'http://img12.static.yhbimg.com/goodsimg/2015/11/22/03/02c17af44dc23aa5a62d61cb59a05380bc.jpg?imageMogr2/thumbnail/235x314/extent/235x314/background/d2hpdGU=/position/center/quality/90', | ||
557 | + 'name' => 'adidas Originals FORUM 中帮拼色休闲板鞋', | ||
558 | + 'salePrice' => '899' | ||
559 | + ) | ||
560 | + ), | ||
561 | + 'totalCount' => '2259', | ||
562 | + 'pager' => '<a href="" class="cur"><span>1</span></a><a href=""><span>2</span></a><a href="" title="下一页">下一页<span class="iconfont">></span></a>' | ||
563 | + ) | ||
564 | + ); | ||
565 | + $this->_view->display('sale-list', $data); | ||
566 | + } | ||
58 | } | 567 | } |
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 | - | ||
8 | ; 折扣专区(SALE) | 1 | ; 折扣专区(SALE) |
9 | routes.productsale.type = "rewrite" | 2 | routes.productsale.type = "rewrite" |
10 | routes.productsale.match = "/sale" | 3 | routes.productsale.match = "/sale" |
-
Please register or login to post a comment