Authored by Rock Zhang

Merge branch 'develop' of git.dev.yoho.cn:web/yohobuy into develop

Conflicts:
	template/m.yohobuy.com/partials/common/good_info.phtml
	yohobuy/m.yohobuy.com/application/controllers/Girls.php
@@ -231,11 +231,11 @@ @@ -231,11 +231,11 @@
231 } 231 }
232 232
233 ## 逛 233 ## 逛
234 -### 标签(公用) 234 +### 资讯(公用)
235 235
236 { 236 {
237 id: 1, 237 id: 1,
238 - classification: '', 238 + showTags: true/false, //是否显示标签
239 img: '', 239 img: '',
240 url: '', 240 url: '',
241 title: '', 241 title: '',
@@ -243,7 +243,8 @@ @@ -243,7 +243,8 @@
243 publishTime: '', 243 publishTime: '',
244 pageView: '', 244 pageView: '',
245 like: { 245 like: {
246 - isLiked: true 246 + isLiked: true,
  247 + count: 1
247 }, 248 },
248 share: false, 249 share: false,
249 isFashionMan: true, //标签分类:isTip、isCollocation、isFashionMan、isFashionGood、isTopic 250 isFashionMan: true, //标签分类:isTip、isCollocation、isFashionMan、isFashionGood、isTopic
@@ -252,13 +253,12 @@ @@ -252,13 +253,12 @@
252 avatar: '', 253 avatar: '',
253 name: '' 254 name: ''
254 } 255 }
255 -  
256 } 256 }
  257 +
257 ### 逛首页 258 ### 逛首页
258 259
259 { 260 {
260 - title: '',  
261 - banner: [ 261 + swiper: [
262 { 262 {
263 url: '', 263 url: '',
264 img: '' 264 img: ''
@@ -269,12 +269,15 @@ @@ -269,12 +269,15 @@
269 { 269 {
270 typeId: 1, 270 typeId: 1,
271 type: '最新', 271 type: '最新',
272 - url: '' 272 + focus: true
273 }, 273 },
274 ... 274 ...
275 ], 275 ],
276 - msgs: [  
277 - {...}, //标签 276 + infos: [
  277 + [
  278 + {...}, //资讯
  279 + ...
  280 + ],
278 ... 281 ...
279 ] 282 ]
280 } 283 }
@@ -282,8 +285,15 @@ @@ -282,8 +285,15 @@
282 ### 逛列表页 285 ### 逛列表页
283 286
284 { 287 {
285 - content: [  
286 - {...}, //标签 288 + infos:
  289 + [
  290 + {
  291 + show: true,
  292 + info: [
  293 + {...}, //标签
  294 + ...
  295 + ]
  296 + },
287 ... 297 ...
288 ] 298 ]
289 } 299 }
@@ -292,12 +302,11 @@ @@ -292,12 +302,11 @@
292 302
293 { 303 {
294 author: { 304 author: {
295 - id: 1,  
296 avatar: '', 305 avatar: '',
297 name: '', 306 name: '',
298 info: '' 307 info: ''
299 }, 308 },
300 - content: [ 309 + infos: [
301 {...}, //标签 310 {...}, //标签
302 ... 311 ...
303 ] 312 ]
@@ -308,85 +317,84 @@ @@ -308,85 +317,84 @@
308 { 317 {
309 id: '', 318 id: '',
310 author: { 319 author: {
  320 + id: 1,
311 avatar: '', 321 avatar: '',
312 name: '', 322 name: '',
313 intro: '', 323 intro: '',
314 url: '' 324 url: ''
315 }, 325 },
316 - article: { 326 + detail: {
317 title: '', 327 title: '',
318 publishTime: '', 328 publishTime: '',
319 pageView: 3445, 329 pageView: 3445,
320 content: [ 330 content: [
321 { 331 {
322 - text: {  
323 - deps: ''  
324 - } 332 + text: ''
325 }, 333 },
326 { 334 {
327 - bigImage: {  
328 - src: ''  
329 - } 335 + bigImage: ''
330 }, 336 },
331 { 337 {
332 - smallImage: {  
333 - imgs: [  
334 - {  
335 - src: ''  
336 - },  
337 - {  
338 - src: ''  
339 - }  
340 - ]  
341 - } 338 + smallImage: [
  339 + {
  340 + src: ''
  341 + },
  342 + {
  343 + src: ''
  344 + }
  345 + ]
342 }, 346 },
343 { 347 {
344 - recommendation: {  
345 - list: [  
346 - {...}, //商品信息  
347 - ...  
348 - ] 348 + //onlyOne
  349 + relatedReco: {
  350 + onlyOne: true, //若只有一个商品,传此字段为true
  351 + thumb: '',
  352 + name: '',
  353 + salePrice: 123,
  354 + price: 213,
  355 + url: ''
349 } 356 }
  357 +
  358 + //多个
  359 + relatedReco: [
  360 + {...}, //商品信息
  361 + ...
  362 + ]
350 }, 363 },
351 { 364 {
352 - collocation: {  
353 - list: [  
354 - {  
355 - thumb: '',  
356 - type: 'pants',  
357 - products: [  
358 - {...}, //商品信息  
359 - ...  
360 - ]  
361 - },  
362 - ...  
363 - ]  
364 - } 365 + collocation: [
  366 + {
  367 + thumb: '',
  368 + type: 'pants',
  369 + goods: [
  370 + {...}, //商品信息
  371 + ...
  372 + ]
  373 + },
  374 + ...
  375 + ]
365 } 376 }
366 ] 377 ]
367 }, 378 },
368 - relatedBrands: {  
369 - list: [  
370 - {  
371 - thumb: '',  
372 - name: '',  
373 - url: ''  
374 - },  
375 - ...  
376 - ]  
377 - },  
378 - tags: {  
379 - list: [  
380 - {  
381 - name: '',  
382 - url: ''  
383 - },  
384 - ...  
385 - ]  
386 - },  
387 - relatedArticles: [ 379 + relatedBrand: [
  380 + {
  381 + thumb: '',
  382 + name: '',
  383 + url: ''
  384 + },
  385 + ...
  386 + ],
  387 + relatedTag: [
  388 + {
  389 + name: '',
  390 + url: ''
  391 + },
  392 + ...
  393 + ],
  394 + relatedInfo: [
388 { 395 {
389 thumb: '', 396 thumb: '',
  397 + squareThumb: true, //是否为方图
390 title: '', 398 title: '',
391 url: '', 399 url: '',
392 publishTime: '' 400 publishTime: ''
  1 +/**
  2 + * 逛详情页
  3 + * @author: xuqi<qi.xu@yoho.cn>
  4 + * @date: 2015/10/13
  5 + */
  6 +
  7 +var $ = require('yoho.zepto'),
  8 + ellipsis = require('mlellipsis'),
  9 + lazyLoad = require('yoho.lazyload'),
  10 + IScroll = require('iscroll/iscroll-probe');
  11 +
  12 +var $authorIntro = $('.author .intro');
  13 +
  14 +var isIphone = navigator.userAgent.indexOf('iPhone') > 0 ? true : false;
  15 +
  16 +var hasCollocationBlock = $('.collocation-block').length > 0 ? true : false;
  17 +
  18 +//collocation block variable
  19 +var thumbWidth = 0,
  20 + $fixedThumbContainer = $(''),
  21 + $coBlock, $thumbContainer, $thumbs, $prods,
  22 + scrollToEl;
  23 +
  24 +var scrollToEl = document.querySelector('#wrapper .collocation-block');
  25 +
  26 +var winW = $(window).width();
  27 +
  28 +var myScroll;
  29 +
  30 +/**
  31 + * 计算搭配的箭头的位置
  32 + * @param $curPos 当前focus的搭配项
  33 + */
  34 +function posCollocationArrow($curCo) {
  35 + var left = $curCo.offset().left,
  36 + bgPos = -winW + left + (thumbWidth / 2) + 'px';
  37 +
  38 + $thumbContainer.css({
  39 + backgroundPosition: bgPos + ' bottom'
  40 + });
  41 +
  42 + if (isIphone) {
  43 + $fixedThumbContainer.css({
  44 + backgroundPosition: bgPos + ' bottom'
  45 + });
  46 + }
  47 +}
  48 +
  49 +//搭配thumb的touch事件句柄
  50 +function thumbTouchEvt(e) {
  51 + var $curCo = $(e.currentTarget),
  52 + index = $curCo.index(),
  53 + $brother, $brotherCo,
  54 + $curProds;
  55 +
  56 + if ($curCo.hasClass('focus')) {
  57 + return;
  58 + }
  59 +
  60 + $thumbs.filter('.focus').removeClass('focus');
  61 +
  62 + if (isIphone) {
  63 + if ($curCo.closest('.fixed-thumb-container').length > 0) {
  64 + $brother = $thumbContainer;
  65 + } else {
  66 + $brother = $fixedThumbContainer;
  67 + }
  68 +
  69 + $brotherCo = $brother.find('.thumb').eq(index);
  70 + $fixedThumbContainer.find('.thumb.focus').removeClass('focus');
  71 + $brotherCo.addClass('focus');
  72 + }
  73 +
  74 + $curCo.addClass('focus');
  75 +
  76 + //定位arrow
  77 + posCollocationArrow($curCo);
  78 +
  79 + $prods.not('.hide').addClass('hide');
  80 + $curProds = $prods.eq(index);
  81 + $curProds.removeClass('hide');
  82 +
  83 + //
  84 + lazyLoad($curProds.find('.lazy'));
  85 +
  86 + if (isIphone) {
  87 + if (myScroll) {
  88 + myScroll.scrollToElement(scrollToEl, 400);
  89 + }
  90 + } else {
  91 + $('body').animate({
  92 + scrollTop: $coBlock.offset().top
  93 + }, 400);
  94 + }
  95 +}
  96 +
  97 +if (isIphone) {
  98 + $('#wrapper').addClass('ios');
  99 +}
  100 +
  101 +ellipsis.init();
  102 +
  103 +lazyLoad($('.lazy'));
  104 +
  105 +//title mlellipsis
  106 +$('.info-list .title, .one-good .reco-name').each(function() {
  107 + this.mlellipsis(2);
  108 +});
  109 +
  110 +//offset.left约等于marginLeft的值则表示介绍被换行,则清除intro的paddingTop让其更靠近头像和作者名
  111 +if (parseInt($authorIntro.offset().left, 10) === parseInt($authorIntro.css('margin-left'), 10)) {
  112 + $authorIntro.css('padding-top', 0);
  113 +}
  114 +
  115 +//有搭配模块,iphone使用iscroll初始化滚动并有固定的搭配栏,其他的没有
  116 +if (hasCollocationBlock) {
  117 + $coBlock = $('.collocation-block');
  118 + $thumbContainer = $coBlock.children('.thumb-container');
  119 + $thumbs = $thumbContainer.find('li');
  120 + $prods = $coBlock.find('.prod');
  121 +
  122 + thumbWidth = $thumbs.width();
  123 +
  124 + if (isIphone) {
  125 + $fixedThumbContainer = $('#wrapper')
  126 + .after($thumbContainer.clone().addClass('fixed-thumb-container fixed-bottom'))
  127 + .next('.thumb-container');
  128 +
  129 + //load img of fixed thumb container
  130 + lazyLoad($fixedThumbContainer.find('.lazy'), {
  131 + event: 'sporty'
  132 + });
  133 + }
  134 +
  135 + //Init Arrow Position
  136 + posCollocationArrow($thumbs.filter('.focus'));
  137 +
  138 + $thumbContainer.delegate('.thumb', 'touchend', thumbTouchEvt);
  139 +
  140 + if (isIphone) {
  141 + $fixedThumbContainer.delegate('.thumb', 'touchend', thumbTouchEvt);
  142 + }
  143 +}
  144 +
  145 +// 初始化iscroll
  146 +window.onload = function() {
  147 + var $scroller = $('#scroller');
  148 +
  149 + var winH, tcH, cbH, cbTop, fixedThumbDom;
  150 +
  151 + if (!isIphone) {
  152 + return;
  153 + }
  154 +
  155 + myScroll = new IScroll('#wrapper', {
  156 + probeType: 3,
  157 + mouseWheel: true,
  158 + click: true
  159 + });
  160 +
  161 + document.addEventListener('touchmove', function (e) {
  162 + e.preventDefault();
  163 + }, false);
  164 +
  165 + if (!hasCollocationBlock) {
  166 + myScroll.on('scroll', function() {
  167 + $scroller.trigger('scroll');
  168 + });
  169 + return;
  170 + }
  171 +
  172 + winH = $(window).height();
  173 + fixedThumbDom = $fixedThumbContainer[0];
  174 +
  175 + tcH = $thumbContainer.height();
  176 + cbH = $coBlock.height();
  177 + cbTop = $coBlock.offset().top;
  178 +
  179 + myScroll.on('scroll', function() {
  180 + var sTop = -this.y;
  181 + var classList = fixedThumbDom.className;
  182 +
  183 + if (sTop <= cbTop - winH + tcH) {
  184 + if (classList.indexOf('fixed-bottom') === -1) {
  185 + $fixedThumbContainer
  186 + .addClass('fixed-bottom')
  187 + .removeClass('hide');
  188 + }
  189 + } else if (sTop <= cbTop) {
  190 + if (classList.indexOf('hide') === -1) {
  191 + $fixedThumbContainer
  192 + .addClass('hide')
  193 + .removeClass('fixed-bottom fixed-top');
  194 + }
  195 + } else if (sTop <= cbTop + cbH - tcH) {
  196 + if (classList.indexOf('fixed-top') === -1) {
  197 + $fixedThumbContainer
  198 + .addClass('fixed-top')
  199 + .removeClass('hide absolute')
  200 + .css('top', '');
  201 + }
  202 + } else if (sTop <= cbTop + cbH) {
  203 + if (classList.indexOf('absolute') === -1) {
  204 + $fixedThumbContainer
  205 + .addClass('absolute')
  206 + .removeClass('fixed-top hide');
  207 + }
  208 + fixedThumbDom.style.top = cbTop + cbH - tcH - sTop + 'px';
  209 + } else if (sTop > cbTop + cbH) {
  210 + if (classList.indexOf('hide') === -1) {
  211 + $fixedThumbContainer
  212 + .addClass('hide')
  213 + .removeClass('absolute');
  214 + }
  215 + }
  216 + $scroller.trigger('scroll');
  217 + });
  218 +};
  1 +/**
  2 + * 逛首页
  3 + * @author: xuqi<qi.xu@yoho.cn>
  4 + * @date: 2015/10/10
  5 + */
  6 +
  7 +var $ = require('yoho.zepto'),
  8 + Swiper = require('yoho.iswiper');
  9 +
  10 +var info = require('./info'),
  11 + setLazyLoadAndMellipsis = info.setLazyLoadAndMellipsis,
  12 + loadMore = info.loadMore;
  13 +
  14 +var winH = $(window).height(),
  15 + loadMoreH = $('#load-more').height();
  16 +
  17 +var $infoList = $('#info-list'),
  18 + $infos = $infoList.children('.info-list'),
  19 + $nav = $('#guang-nav'),
  20 + $curNav = $nav.children('.focus'),
  21 + curIndex = $curNav.index();
  22 +
  23 +var state = {};
  24 +
  25 +var mySwiper;
  26 +
  27 +mySwiper = new Swiper('.swiper-container', {
  28 + lazyLoading: true,
  29 + pagination: '.swiper-pagination'
  30 +});
  31 +
  32 +info.initInfosEvt($infoList);
  33 +
  34 +//初始化各Nav下资讯加载的状态
  35 +(function() {
  36 + $nav.children('.guang-nav-item').each(function() {
  37 + var type = $(this).data('type');
  38 +
  39 + state[type] = {
  40 + page: 1,
  41 + end: false,
  42 + type: type
  43 + };
  44 + });
  45 +}());
  46 +
  47 +$nav.delegate('.guang-nav-item', 'touchstart', function() {
  48 + var $this = $(this),
  49 + $content,
  50 + index;
  51 +
  52 + if ($this.hasClass('focus')) {
  53 + return;
  54 + }
  55 +
  56 + index = $this.index();
  57 +
  58 + $this.addClass('focus');
  59 + $curNav.removeClass('focus');
  60 +
  61 + $infos.not('.hide').addClass('hide');
  62 +
  63 + $content = $infos.eq(index);
  64 + $content.removeClass('hide');
  65 +
  66 + //lazyload & mellipsis
  67 + setLazyLoadAndMellipsis($content.children('.guang-info'));
  68 +
  69 + $curNav = $this;
  70 + curIndex = index;
  71 +});
  72 +
  73 +$(document).scroll(function() {
  74 + if (state[curIndex].end) {
  75 + return;
  76 + }
  77 +
  78 + if ($(window).scrollTop() + winH >= $(document).height() - loadMoreH) {
  79 + loadMore($infos, state[curIndex]);
  80 + }
  81 +});
@@ -5,4 +5,7 @@ @@ -5,4 +5,7 @@
5 */ 5 */
6 6
7 require('./plus-star/list'); 7 require('./plus-star/list');
8 -require('./plus-star/detail');  
  8 +require('./plus-star/detail');
  9 +
  10 +require('./home');
  11 +require('./list');
@@ -10,9 +10,26 @@ var $ = require('yoho.zepto'), @@ -10,9 +10,26 @@ var $ = require('yoho.zepto'),
10 10
11 var tip = require('../plugin/tip'); 11 var tip = require('../plugin/tip');
12 12
  13 +var loading = false;
  14 +
13 ellipsis.init(); 15 ellipsis.init();
14 16
15 /** 17 /**
  18 + * 设置指定资讯项的Lazyload和文字截取
  19 + * @params $infos 资讯项
  20 + */
  21 +function setLazyLoadAndMellipsis($infos) {
  22 + lazyLoad($infos.find('img.lazy'));
  23 +
  24 + $infos.each(function() {
  25 + var $this = $(this);
  26 +
  27 + $this.find('.info-title')[0].mlellipsis(2);
  28 + $this.find('.info-text')[0].mlellipsis(2);
  29 + });
  30 +}
  31 +
  32 +/**
16 * 初始化资讯列表事件绑定 33 * 初始化资讯列表事件绑定
17 * @params $container 逛资讯列表容器 34 * @params $container 逛资讯列表容器
18 */ 35 */
@@ -39,22 +56,47 @@ function initInfosEvt($container) { @@ -39,22 +56,47 @@ function initInfosEvt($container) {
39 tip.show('网络断开连接了~'); 56 tip.show('网络断开连接了~');
40 }); 57 });
41 }); 58 });
  59 +
  60 + setLazyLoadAndMellipsis($container.find('.guang-info'));
42 } 61 }
43 62
44 /** 63 /**
45 - * 设置指定资讯项的Lazyload和文字截取  
46 - * @params $infos 资讯项 64 + * 资讯LoadMore
47 */ 65 */
48 -function setLazyLoadAndMellipsis($infos) {  
49 - lazyLoad($infos.find('img.lazy')); 66 +function loadMore($container, opt) {
  67 + var infosNum = $container.find('.guang-info').length;
50 68
51 - $infos.each(function() {  
52 - var $this = $(this); 69 + if (loading) {
  70 + return;
  71 + }
53 72
54 - $this.find('.info-title')[0].mlellipsis(2);  
55 - $this.find('.info-text')[0].mlellipsis(2); 73 + loading = true;
  74 + $.ajax({
  75 + type: 'GET',
  76 + url: '/infos/get',
  77 + data: opt
  78 + }).then(function(data) {
  79 + var res,
  80 + $newInfos;
  81 +
  82 + if (data.code === 200) {
  83 + res = data.data;
  84 +
  85 + if (res.end) {
  86 + opt.end = true;
  87 + }
  88 +
  89 + $container.append(res.infos);
  90 + $newInfos = $container.find('.guang-info:gt(' + (infosNum - 1) + ')');
  91 + setLazyLoadAndMellipsis($newInfos);
  92 +
  93 + opt.page++;
  94 + }
  95 +
  96 + loading = false;
56 }); 97 });
57 } 98 }
58 99
59 exports.initInfosEvt = initInfosEvt; 100 exports.initInfosEvt = initInfosEvt;
60 -exports.setLazyLoadAndMellipsis = setLazyLoadAndMellipsis;  
  101 +exports.setLazyLoadAndMellipsis = setLazyLoadAndMellipsis;
  102 +exports.loadMore = loadMore;
  1 +/**
  2 + * 列表页,编辑页
  3 + * @author: xuqi<qi.xu@yoho.cn>
  4 + * @date: 2015/10/10
  5 + */
  6 +
  7 +var $ = require('yoho.zepto');
  8 +
  9 +var info = require('./info'),
  10 + loadMore = info.loadMore;
  11 +
  12 +var winH = $(window).height(),
  13 + loadMoreH = $('#load-more').height();
  14 +
  15 +var setting = {
  16 + page: 1,
  17 + end: false
  18 +};
  19 +
  20 +var $infos = $('#info-list');
  21 +
  22 +info.initInfosEvt($infos);
  23 +
  24 +$(document).scroll(function() {
  25 + if (setting.end) {
  26 + return;
  27 + }
  28 +
  29 + if ($(window).scrollTop() + winH >= $(document).height() - loadMoreH) {
  30 + loadMore($infos, setting);
  31 + }
  32 +});
@@ -31,7 +31,6 @@ setTimeout(function() { @@ -31,7 +31,6 @@ setTimeout(function() {
31 }); 31 });
32 32
33 info.initInfosEvt($infosContainer); 33 info.initInfosEvt($infosContainer);
34 -info.setLazyLoadAndMellipsis($infosContainer.find('.guang-info'));  
35 34
36 //文字介绍收起与展开 35 //文字介绍收起与展开
37 $('#more-intro').bind('touchstart', function() { 36 $('#more-intro').bind('touchstart', function() {
@@ -33,13 +33,13 @@ function switchLoginBtnStatus() { @@ -33,13 +33,13 @@ function switchLoginBtnStatus() {
33 //显示找回密码面板 33 //显示找回密码面板
34 function showRetrivePanel() { 34 function showRetrivePanel() {
35 $mask.show(); 35 $mask.show();
36 - $ways.slideDown(); 36 + $ways.show();
37 } 37 }
38 38
39 //隐藏找回密码面板 39 //隐藏找回密码面板
40 function hideRetrivePanel() { 40 function hideRetrivePanel() {
41 $mask.hide(); 41 $mask.hide();
42 - $ways.slideUp(); 42 + $ways.hide();
43 } 43 }
44 44
45 //密码显示与隐藏 45 //密码显示与隐藏
  1 +/*! Sea.js 2.2.0 | seajs.org/LICENSE.md */
  2 +!function(a,b){function c(a){return function(b){return{}.toString.call(b)=="[object "+a+"]"}}function d(){return A++}function e(a){return a.match(D)[0]}function f(a){for(a=a.replace(E,"/");a.match(F);)a=a.replace(F,"/");return a=a.replace(G,"$1/")}function g(a){var b=a.length-1,c=a.charAt(b);return"#"===c?a.substring(0,b):".js"===a.substring(b-2)||a.indexOf("?")>0||".css"===a.substring(b-3)||"/"===c?a:a+".js"}function h(a){var b=v.alias;return b&&x(b[a])?b[a]:a}function i(a){var b=v.paths,c;return b&&(c=a.match(H))&&x(b[c[1]])&&(a=b[c[1]]+c[2]),a}function j(a){var b=v.vars;return b&&a.indexOf("{")>-1&&(a=a.replace(I,function(a,c){return x(b[c])?b[c]:a})),a}function k(a){var b=v.map,c=a;if(b)for(var d=0,e=b.length;e>d;d++){var f=b[d];if(c=z(f)?f(a)||a:a.replace(f[0],f[1]),c!==a)break}return c}function l(a,b){var c,d=a.charAt(0);if(J.test(a))c=a;else if("."===d)c=f((b?e(b):v.cwd)+a);else if("/"===d){var g=v.cwd.match(K);c=g?g[0]+a.substring(1):a}else c=v.base+a;return 0===c.indexOf("//")&&(c=location.protocol+c),c}function m(a,b){if(!a)return"";a=h(a),a=i(a),a=j(a),a=g(a);var c=l(a,b);return c=k(c)}function n(a){return a.hasAttribute?a.src:a.getAttribute("src",4)}function o(a,b,c){var d=S.test(a),e=L.createElement(d?"link":"script");if(c){var f=z(c)?c(a):c;f&&(e.charset=f)}p(e,b,d,a),d?(e.rel="stylesheet",e.href=a):(e.async=!0,e.src=a),T=e,R?Q.insertBefore(e,R):Q.appendChild(e),T=null}function p(a,c,d,e){function f(){a.onload=a.onerror=a.onreadystatechange=null,d||v.debug||Q.removeChild(a),a=null,c()}var g="onload"in a;return!d||!V&&g?(g?(a.onload=f,a.onerror=function(){C("error",{uri:e,node:a}),f()}):a.onreadystatechange=function(){/loaded|complete/.test(a.readyState)&&f()},b):(setTimeout(function(){q(a,c)},1),b)}function q(a,b){var c=a.sheet,d;if(V)c&&(d=!0);else if(c)try{c.cssRules&&(d=!0)}catch(e){"NS_ERROR_DOM_SECURITY_ERR"===e.name&&(d=!0)}setTimeout(function(){d?b():q(a,b)},20)}function r(){if(T)return T;if(U&&"interactive"===U.readyState)return U;for(var a=Q.getElementsByTagName("script"),b=a.length-1;b>=0;b--){var c=a[b];if("interactive"===c.readyState)return U=c}}function s(a){var b=[];return a.replace(X,"").replace(W,function(a,c,d){d&&b.push(d)}),b}function t(a,b){this.uri=a,this.dependencies=b||[],this.exports=null,this.status=0,this._waitings={},this._remain=0}if(!a.seajs){var u=a.seajs={version:"2.2.0"},v=u.data={},w=c("Object"),x=c("String"),y=Array.isArray||c("Array"),z=c("Function"),A=0,B=v.events={};u.on=function(a,b){var c=B[a]||(B[a]=[]);return c.push(b),u},u.off=function(a,b){if(!a&&!b)return B=v.events={},u;var c=B[a];if(c)if(b)for(var d=c.length-1;d>=0;d--)c[d]===b&&c.splice(d,1);else delete B[a];return u};var C=u.emit=function(a,b){var c=B[a],d;if(c)for(c=c.slice();d=c.shift();)d(b);return u},D=/[^?#]*\//,E=/\/\.\//g,F=/\/[^/]+\/\.\.\//,G=/([^:/])\/\//g,H=/^([^/:]+)(\/.+)$/,I=/{([^{]+)}/g,J=/^\/\/.|:\//,K=/^.*?\/\/.*?\//,L=document,M=e(L.URL),N=L.scripts,O=L.getElementById("seajsnode")||N[N.length-1],P=e(n(O)||M);u.resolve=m;var Q=L.head||L.getElementsByTagName("head")[0]||L.documentElement,R=Q.getElementsByTagName("base")[0],S=/\.css(?:\?|$)/i,T,U,V=+navigator.userAgent.replace(/.*AppleWebKit\/(\d+)\..*/,"$1")<536;u.request=o;var W=/"(?:\\"|[^"])*"|'(?:\\'|[^'])*'|\/\*[\S\s]*?\*\/|\/(?:\\\/|[^\/\r\n])+\/(?=[^\/])|\/\/.*|\.\s*require|(?:^|[^$])\brequire\s*\(\s*(["'])(.+?)\1\s*\)/g,X=/\\\\/g,Y=u.cache={},Z,$={},_={},ab={},bb=t.STATUS={FETCHING:1,SAVED:2,LOADING:3,LOADED:4,EXECUTING:5,EXECUTED:6};t.prototype.resolve=function(){for(var a=this,b=a.dependencies,c=[],d=0,e=b.length;e>d;d++)c[d]=t.resolve(b[d],a.uri);return c},t.prototype.load=function(){var a=this;if(!(a.status>=bb.LOADING)){a.status=bb.LOADING;var c=a.resolve();C("load",c);for(var d=a._remain=c.length,e,f=0;d>f;f++)e=t.get(c[f]),e.status<bb.LOADED?e._waitings[a.uri]=(e._waitings[a.uri]||0)+1:a._remain--;if(0===a._remain)return a.onload(),b;var g={};for(f=0;d>f;f++)e=Y[c[f]],e.status<bb.FETCHING?e.fetch(g):e.status===bb.SAVED&&e.load();for(var h in g)g.hasOwnProperty(h)&&g[h]()}},t.prototype.onload=function(){var a=this;a.status=bb.LOADED,a.callback&&a.callback();var b=a._waitings,c,d;for(c in b)b.hasOwnProperty(c)&&(d=Y[c],d._remain-=b[c],0===d._remain&&d.onload());delete a._waitings,delete a._remain},t.prototype.fetch=function(a){function c(){u.request(g.requestUri,g.onRequest,g.charset)}function d(){delete $[h],_[h]=!0,Z&&(t.save(f,Z),Z=null);var a,b=ab[h];for(delete ab[h];a=b.shift();)a.load()}var e=this,f=e.uri;e.status=bb.FETCHING;var g={uri:f};C("fetch",g);var h=g.requestUri||f;return!h||_[h]?(e.load(),b):$[h]?(ab[h].push(e),b):($[h]=!0,ab[h]=[e],C("request",g={uri:f,requestUri:h,onRequest:d,charset:v.charset}),g.requested||(a?a[g.requestUri]=c:c()),b)},t.prototype.exec=function(){function a(b){return t.get(a.resolve(b)).exec()}var c=this;if(c.status>=bb.EXECUTING)return c.exports;c.status=bb.EXECUTING;var e=c.uri;a.resolve=function(a){return t.resolve(a,e)},a.async=function(b,c){return t.use(b,c,e+"_async_"+d()),a};var f=c.factory,g=z(f)?f(a,c.exports={},c):f;return g===b&&(g=c.exports),delete c.factory,c.exports=g,c.status=bb.EXECUTED,C("exec",c),g},t.resolve=function(a,b){var c={id:a,refUri:b};return C("resolve",c),c.uri||u.resolve(c.id,b)},t.define=function(a,c,d){var e=arguments.length;1===e?(d=a,a=b):2===e&&(d=c,y(a)?(c=a,a=b):c=b),!y(c)&&z(d)&&(c=s(""+d));var f={id:a,uri:t.resolve(a),deps:c,factory:d};if(!f.uri&&L.attachEvent){var g=r();g&&(f.uri=g.src)}C("define",f),f.uri?t.save(f.uri,f):Z=f},t.save=function(a,b){var c=t.get(a);c.status<bb.SAVED&&(c.id=b.id||a,c.dependencies=b.deps||[],c.factory=b.factory,c.status=bb.SAVED)},t.get=function(a,b){return Y[a]||(Y[a]=new t(a,b))},t.use=function(b,c,d){var e=t.get(d,y(b)?b:[b]);e.callback=function(){for(var b=[],d=e.resolve(),f=0,g=d.length;g>f;f++)b[f]=Y[d[f]].exec();c&&c.apply(a,b),delete e.callback},e.load()},t.preload=function(a){var b=v.preload,c=b.length;c?t.use(b,function(){b.splice(0,c),t.preload(a)},v.cwd+"_preload_"+d()):a()},u.use=function(a,b){return t.preload(function(){t.use(a,b,v.cwd+"_use_"+d())}),u},t.define.cmd={},a.define=t.define,u.Module=t,v.fetchedList=_,v.cid=d,u.require=function(a){var b=t.get(t.resolve(a));return b.status<bb.EXECUTING&&(b.onload(),b.exec()),b.exports};var cb=/^(.+?\/)(\?\?)?(seajs\/)+/;v.base=(P.match(cb)||["",P])[1],v.dir=P,v.cwd=M,v.charset="utf-8",v.preload=function(){var a=[],b=location.search.replace(/(seajs-\w+)(&|$)/g,"$1=1$2");return b+=" "+L.cookie,b.replace(/(seajs-\w+)=1/g,function(b,c){a.push(c)}),a}(),u.config=function(a){for(var b in a){var c=a[b],d=v[b];if(d&&w(d))for(var e in c)d[e]=c[e];else y(d)?c=d.concat(c):"base"===b&&("/"!==c.slice(-1)&&(c+="/"),c=l(c)),v[b]=c}return C("config",a),u}}}(this);
@@ -20,7 +20,8 @@ @@ -20,7 +20,8 @@
20 "yoho.jquery": "1.8.3", 20 "yoho.jquery": "1.8.3",
21 "yoho.lazyload": "1.1.0", 21 "yoho.lazyload": "1.1.0",
22 "mlellipsis": "0.0.6", 22 "mlellipsis": "0.0.6",
23 - "yoho.iswiper": "3.0.1" 23 + "yoho.iswiper": "3.0.1",
  24 + "iscroll": "5.1.2"
24 }, 25 },
25 "devDependencies": { 26 "devDependencies": {
26 "expect.js": "0.3.1" 27 "expect.js": "0.3.1"
  1 +@import "guang/clothes/*.png";
  2 +$clothes: sprite-map("guang/clothes/*.png");
  3 +
  4 +@mixin retina-sprite($map, $sprite, $scale) {
  5 + $width: image-width(sprite-file($map, $sprite));
  6 + $height: image-height(sprite-file($map, $sprite));
  7 + $offsetY: ceil(nth(sprite-position($map, $sprite), 2) / $scale);
  8 + background: sprite-url($map) 0 $offsetY no-repeat;
  9 + $zoomX: ceil(image_width(sprite-path($map)) / $scale);
  10 + $zoomY: auto;
  11 + @include background-size($zoomX $zoomY);
  12 + display: block;
  13 +}
  14 +
  15 +@mixin relatedTitle {
  16 + margin: 0 29rem / $pxConvertRem;
  17 + background: #fff;
  18 + border: 1px solid #e0e0e0;
  19 + border-bottom: none;
  20 + line-height: 72rem / $pxConvertRem;
  21 + font-size: 30rem / $pxConvertRem;
  22 + color: #b0b0b0;
  23 + text-align: center;
  24 +}
  25 +
  26 +.guang-detail-page {
  27 + #wrapper.ios {
  28 + position: absolute;
  29 + top: 0;
  30 + bottom: 0;
  31 + left: 0;
  32 + right: 0;
  33 + overflow: hidden;
  34 + }
  35 +
  36 + .author {
  37 + border-bottom: 1px solid #e0e0e0;
  38 + background: #fff;
  39 +
  40 + > a {
  41 + display: block;
  42 + height: 100%;
  43 + }
  44 +
  45 + .avatar {
  46 + float: left;
  47 + margin-top: 20rem / $pxConvertRem;
  48 + margin-left: 30rem / $pxConvertRem;
  49 + width: 50rem / $pxConvertRem;
  50 + height: 50rem / $pxConvertRem;
  51 + @include border-radius(50%);
  52 + }
  53 +
  54 + .name {
  55 + float: left;
  56 + font-size: 28rem / $pxConvertRem;
  57 + color: #000;
  58 + padding: 30rem / $pxConvertRem 0;
  59 + margin-left: 30rem / $pxConvertRem;
  60 + }
  61 +
  62 + .intro {
  63 + float: left;
  64 + font-size: 28rem / $pxConvertRem;
  65 + color: #b0b0b0;
  66 + padding: 30rem / $pxConvertRem 0;
  67 + margin-left: 30rem / $pxConvertRem;
  68 + }
  69 + }
  70 +
  71 + .post-title {
  72 + padding: 16rem / $pxConvertRem 0 26rem / $pxConvertRem 30rem / $pxConvertRem;
  73 + background: #fff;
  74 +
  75 + .title {
  76 + line-height: 60rem / $pxConvertRem;
  77 + font-size: 40rem / $pxConvertRem;
  78 + color: #000;
  79 + font-weight: bold;
  80 + }
  81 + }
  82 +
  83 + .text-block {
  84 + padding: 20rem / $pxConvertRem 30rem / $pxConvertRem;
  85 + line-height: 46rem / $pxConvertRem;
  86 + font-size: 28rem / $pxConvertRem;
  87 + background: #fff;
  88 + color: #444;
  89 + }
  90 +
  91 + .big-img-block {
  92 + padding-bottom: 5rem / $pxConvertRem;
  93 + background: #fff;
  94 +
  95 + img {
  96 + width: 100%;
  97 + height: 640rem / $pxConvertRem;
  98 + }
  99 + }
  100 +
  101 + .small-img-block {
  102 + padding-bottom: 8rem / $pxConvertRem;
  103 + background: #fff;
  104 +
  105 + img {
  106 + float: right;
  107 + width: 315rem / $pxConvertRem;
  108 + height: 420rem / $pxConvertRem;
  109 +
  110 + &:first-child {
  111 + float: left;
  112 + }
  113 + }
  114 + }
  115 +
  116 + .collocation-block {
  117 + background: #fff;
  118 +
  119 + .good-list {
  120 + padding-left:15rem / $pxConvertRem;
  121 + }
  122 + }
  123 +
  124 + .thumb-container {
  125 + padding-top: 30rem / $pxConvertRem;
  126 + padding-left: 30rem / $pxConvertRem;
  127 + background: transparent image-url('guang/thumb-container-bg.png') no-repeat;
  128 + background-size: 200% 100%;
  129 +
  130 + &.fixed-top {
  131 + position: fixed;
  132 + left: 0;
  133 + right: 0;
  134 + top: 0;
  135 + }
  136 +
  137 + &.fixed-bottom {
  138 + position: fixed;
  139 + left: 0;
  140 + right: 0;
  141 + bottom: 0;
  142 + background: rgba(255,255,255,0.9);
  143 + }
  144 +
  145 + &.absolute {
  146 + position: absolute;
  147 + left: 0;
  148 + right: 0;
  149 + }
  150 +
  151 + &.static {
  152 + position: static;
  153 + }
  154 +
  155 + &.hide {
  156 + display: none;
  157 + }
  158 + }
  159 +
  160 + .clothe-type {
  161 + position: absolute;
  162 + right: 6rem / $pxConvertRem;
  163 + bottom: 34rem / $pxConvertRem;
  164 + width: 20px;
  165 + height: 20px;
  166 + @include border-radius(50%);
  167 +
  168 + &.bag {
  169 + @include retina-sprite ($clothes, bag, 80/20);
  170 + background-color: #fff;
  171 + background-size: 100%;
  172 + }
  173 +
  174 + &.cloth {
  175 + @include retina-sprite ($clothes, cloth, 80/20);
  176 + background-color: #fff;
  177 + background-size: 100%;
  178 + }
  179 +
  180 + &.dress {
  181 + @include retina-sprite ($clothes, dress, 80/20);
  182 + background-color: #fff;
  183 + background-size: 100%;
  184 + }
  185 +
  186 + &.headset {
  187 + @include retina-sprite ($clothes, headset, 80/20);
  188 + background-color: #fff;
  189 + background-size: 100%;
  190 + }
  191 +
  192 + &.lamp {
  193 + @include retina-sprite ($clothes, lamp, 80/20);
  194 + background-color: #fff;
  195 + background-size: 100%;
  196 + }
  197 +
  198 + &.pants {
  199 + @include retina-sprite ($clothes, pants, 80/20);
  200 + background-color: #fff;
  201 + background-size: 100%;
  202 + }
  203 +
  204 + &.shoe {
  205 + @include retina-sprite ($clothes, shoe, 80/20);
  206 + background-color: #fff;
  207 + background-size: 100%;
  208 + }
  209 +
  210 + &.swim-suit {
  211 + @include retina-sprite ($clothes, swim-suit, 80/20);
  212 + background-color: #fff;
  213 + background-size: 100%;
  214 + }
  215 +
  216 + &.under {
  217 + @include retina-sprite ($clothes, under, 80/20);
  218 + background-color: #fff;
  219 + background-size: 100%;
  220 + }
  221 +
  222 + &.watch {
  223 + @include retina-sprite ($clothes, watch, 80/20);
  224 + background-color: #fff;
  225 + background-size: 100%;
  226 + }
  227 + }
  228 +
  229 + .thumb {
  230 + display: inline-block;
  231 + position: relative;
  232 + margin-right: 22rem / $pxConvertRem;
  233 + padding-bottom: 30rem / $pxConvertRem;
  234 +
  235 + &:last-child {
  236 + margin-right: 0;
  237 + }
  238 +
  239 + &.focus .thumb-img {
  240 + border-color: #000;
  241 + }
  242 + }
  243 +
  244 + .thumb-img {
  245 + height: 134rem / $pxConvertRem;
  246 + width: 96rem / $pxConvertRem;
  247 + border: 1px solid transparent;
  248 + }
  249 +
  250 + .related-reco-block {
  251 + background: #fff;
  252 + padding-left: 15rem / $pxConvertRem;
  253 + border-top: 1px solid #e0e0e0;
  254 +
  255 + h2 {
  256 + margin-left: -15rem / $pxConvertRem;
  257 + line-height: 104rem / $pxConvertRem;
  258 + font-size: 30rem / $pxConvertRem;
  259 + color: #b0b0b0;
  260 + text-align: center;
  261 + }
  262 +
  263 + .one-good {
  264 + padding-left: 15rem / $pxConvertRem;
  265 + padding-right: 30rem / $pxConvertRem;
  266 + margin-bottom: 20rem / $pxConvertRem;
  267 +
  268 + .thumb {
  269 + float: left;
  270 + height: 134rem / $pxConvertRem;
  271 + width: 96rem / $pxConvertRem;
  272 + }
  273 +
  274 + .content-container {
  275 + padding-left: 120rem / $pxConvertRem;
  276 + height: 134rem / $pxConvertRem;
  277 + line-height: 1;
  278 + font-size: 24rem / $pxConvertRem;
  279 +
  280 + > p {
  281 + height: 50%;
  282 + line-height: 94rem / $pxConvertRem;
  283 + }
  284 +
  285 + span {
  286 + display: inline-block;
  287 + line-height: 24rem / $pxConvertRem;
  288 + }
  289 +
  290 + .price {
  291 + line-height: 47rem / $pxConvertRem;
  292 + }
  293 + }
  294 +
  295 + .sale-price {
  296 + color: #d62927;
  297 + line-height: 1.5;
  298 + }
  299 +
  300 + .sale-price.no-price {
  301 + color: #000;
  302 + }
  303 +
  304 + .market-price {
  305 + margin-left: 5rem / $pxConvertRem;
  306 + color: #b0b0b0;
  307 + text-decoration: line-through;
  308 + line-height: 1.5;
  309 + }
  310 +
  311 + .check-detail {
  312 + display: inline-block;
  313 + color: #000;
  314 + border: 1px solid;
  315 + border-radius: 2px;
  316 + float: right;
  317 + padding: 0 5px;
  318 + line-height: 1.5;
  319 + }
  320 + }
  321 + }
  322 +
  323 + .related-brand {
  324 + margin-top: 30rem / $pxConvertRem;
  325 +
  326 + h2 {
  327 + @include relatedTitle;
  328 + }
  329 +
  330 + .brand-list {
  331 + border-top: 1px solid #e0e0e0;
  332 + border-bottom: 1px solid #e0e0e0;
  333 + padding: 30rem / $pxConvertRem 0 30rem / $pxConvertRem;
  334 + background: #fff;
  335 + }
  336 +
  337 + .brand {
  338 + float: left;
  339 + width: 158rem / $pxConvertRem;
  340 + height: 128rem / $pxConvertRem;
  341 + border-right: 1px solid #e0e0e0;
  342 + margin-bottom: 10rem / $pxConvertRem;
  343 +
  344 + a {
  345 + display: block;
  346 + }
  347 +
  348 + &:nth-child(4n) {
  349 + border-right: none;
  350 + }
  351 + }
  352 +
  353 + .brand-logo {
  354 + display: table-cell;
  355 + width: 158rem / $pxConvertRem;
  356 + height: 94rem / $pxConvertRem;
  357 + vertical-align: middle;
  358 +
  359 + img {
  360 + display: block;
  361 + max-width: 158rem / $pxConvertRem;
  362 + max-height: 94rem / $pxConvertRem;
  363 + vertical-align: middle;
  364 + margin: 0 auto;
  365 + }
  366 + }
  367 +
  368 + .brand-name {
  369 + margin: 10rem / $pxConvertRem 0 0 0;
  370 + line-height: 24rem / $pxConvertRem;
  371 + font-size: 18rem / $pxConvertRem;
  372 + color: #babac2;
  373 + text-align: center;
  374 + text-decoration: none;
  375 + border-bottom: none;
  376 + overflow: hidden;
  377 + text-overflow: ellipsis;
  378 + white-space: nowrap;
  379 + }
  380 + }
  381 +
  382 + .related-tag {
  383 + position: relative;
  384 + padding-bottom: 30rem / $pxConvertRem;
  385 + border-bottom: 1px solid #e0e0e0;
  386 + background: #fff;
  387 +
  388 + .tag-bg {
  389 + position: absolute;
  390 + height: 40rem / $pxConvertRem;
  391 + width: 40rem / $pxConvertRem;
  392 + background: image-url('guang/tag.png') no-repeat;
  393 + background-size: 100% 100%;
  394 + top: 35rem / $pxConvertRem;
  395 + left: 20rem / $pxConvertRem;
  396 + }
  397 +
  398 + .tag-list {
  399 + margin-left: 50rem / $pxConvertRem;
  400 + }
  401 +
  402 + li {
  403 + float: left;
  404 + margin-top: 31rem / $pxConvertRem;
  405 + margin-left: 31rem / $pxConvertRem;
  406 + }
  407 +
  408 + a {
  409 + height: 50rem / $pxConvertRem;
  410 + line-height: 50rem / $pxConvertRem;
  411 + font-size: 30rem / $pxConvertRem;
  412 + color: #000;
  413 + text-decoration: underline;
  414 + white-space: nowrap;
  415 + }
  416 + }
  417 +
  418 + .related-info {
  419 + margin-top: 30rem / $pxConvertRem;
  420 +
  421 + h2 {
  422 + @include relatedTitle;
  423 + }
  424 +
  425 + .info-list {
  426 + background: #fff;
  427 + padding-bottom: 30rem / $pxConvertRem;
  428 + border-top: 1px solid #e0e0e0;
  429 + }
  430 +
  431 + li {
  432 + padding-top: 30rem / $pxConvertRem;
  433 + margin-bottom: 10rem / $pxConvertRem;
  434 +
  435 + a {
  436 + display: block;
  437 + }
  438 +
  439 + img {
  440 + float: left;
  441 + margin-left: 30rem / $pxConvertRem;
  442 + width: 182rem / $pxConvertRem;
  443 + height: 114rem / $pxConvertRem;
  444 +
  445 + &.square {
  446 + height: 182rem / $pxConvertRem;
  447 + }
  448 + }
  449 + }
  450 +
  451 + .title, .publish-time {
  452 + float: left;
  453 + width: 360rem / $pxConvertRem;
  454 + margin-left: 30rem / $pxConvertRem;
  455 + line-height: 40rem / $pxConvertRem;
  456 + color: #444;
  457 + font-size: 28rem / $pxConvertRem;
  458 +
  459 + }
  460 +
  461 + .publish-time {
  462 + font-size: 18rem / $pxConvertRem;
  463 + margin-top: 0;
  464 + color: #b0b0b0;
  465 +
  466 + .iconfont {
  467 + font-size: 18rem / $pxConvertRem;
  468 + }
  469 + }
  470 + }
  471 +}
1 -@import "tvls", "info", "plus-star";  
  1 +@import "tvls", "info", "plus-star", "info-list", "detail";
  1 +.guang-list-page {
  2 + .editor-header {
  3 + margin-bottom: 30rem / $pxConvertRem;
  4 + padding-top: 36rem / $pxConvertRem;
  5 + padding-bottom: 40rem / $pxConvertRem;
  6 + background: #fff;
  7 + border-bottom: 1px solid #e0e0e0;
  8 + }
  9 +
  10 + .avatar {
  11 + float: left;
  12 + margin-left: 30rem / $pxConvertRem;
  13 + img {
  14 + width: 100rem / $pxConvertRem;
  15 + height: 100rem / $pxConvertRem;
  16 + @include border-radius(50%);
  17 + }
  18 + }
  19 +
  20 + .text {
  21 + float: left;
  22 + margin-left: 32rem / $pxConvertRem;
  23 + width: 475rem / $pxConvertRem;
  24 + .name {
  25 + font-size: 32rem / $pxConvertRem;
  26 + line-height: 40rem / $pxConvertRem;
  27 + }
  28 + .info {
  29 + margin-top: 6rem / $pxConvertRem;
  30 + color: #bdbdbf;
  31 + font-size: 24rem / $pxConvertRem;
  32 + line-height: 32rem / $pxConvertRem;
  33 + }
  34 + }
  35 +
  36 + .swiper-container {
  37 + width: 100%;
  38 + height: 310rem / $pxConvertRem;
  39 +
  40 + img {
  41 + height: 100%;
  42 + width: 100%;
  43 + }
  44 +
  45 + .swiper-pagination {
  46 + bottom: 0;
  47 + left: 0;
  48 + width: 100%;
  49 + }
  50 +
  51 + .swiper-pagination-bullet-active {
  52 + background: #fff;
  53 + }
  54 + }
  55 +
  56 + .guang-nav {
  57 + background-color: #fff;
  58 + overflow: hidden;
  59 + height: 80rem / $pxConvertRem;
  60 + }
  61 +
  62 + .guang-nav-item {
  63 + float: left;
  64 + color: #ccc;
  65 + font-size: 28rem / $pxConvertRem;
  66 + padding: 0 22rem / $pxConvertRem;
  67 + line-height: 80rem / $pxConvertRem;
  68 +
  69 + &.focus {
  70 + color: #000;
  71 + }
  72 + }
  73 +
  74 + .info-list.hide {
  75 + display: none;
  76 + }
  77 +
  78 + .load-more-info {
  79 + width: 100%;
  80 + height: 70rem / $pxConvertRem;
  81 + line-height: 70rem / $pxConvertRem;
  82 + text-align: center;
  83 + font-size: 14px;
  84 + overflow: hidden;
  85 +
  86 + .status {
  87 + &.hide {
  88 + display: none;
  89 + }
  90 + }
  91 + }
  92 +}
1 .guang-info { 1 .guang-info {
2 - margin: 30rem / $pxConvertRem 0 0 0; 2 + margin-bottom: 30rem / $pxConvertRem;
3 padding: 0 0 24rem / $pxConvertRem 0; 3 padding: 0 0 24rem / $pxConvertRem 0;
4 border-top: 1px solid #e0e0e0; 4 border-top: 1px solid #e0e0e0;
5 border-bottom: 1px solid #e0e0e0; 5 border-bottom: 1px solid #e0e0e0;
6 background: #fff; 6 background: #fff;
7 7
  8 + &:last-child {
  9 + margin-bottom: 0;
  10 + }
  11 +
8 .info-img { 12 .info-img {
9 position: relative; 13 position: relative;
10 width: 100%; 14 width: 100%;
@@ -29,7 +33,7 @@ @@ -29,7 +33,7 @@
29 text-decoration: none; 33 text-decoration: none;
30 } 34 }
31 35
32 - .tag-tag { 36 + .info-tag {
33 position: absolute; 37 position: absolute;
34 top: 0; 38 top: 0;
35 left: 105rem / $pxConvertRem; 39 left: 105rem / $pxConvertRem;
  1 +{{>layout/header}}
  2 +<div class="guang-detail-page guang-page yoho-page">
  3 + {{# guang}}
  4 + <div id="wrapper">
  5 + <div id="scroller">
  6 + {{# author}}
  7 + <div class="author" data-id={{id}}>
  8 + <a class="clearfix" href={{url}}>
  9 + <img class="avatar" src={{avatar}}>
  10 + <span class="name">{{name}}</span>
  11 + <span class="intro">{{intro}}</span>
  12 + </a>
  13 + </div>
  14 + {{/ author}}
  15 +
  16 + {{# detail}}
  17 + <div class="detail">
  18 + <div class="post-title">
  19 + <p class="title">{{title}}</p>
  20 + {{> guang/tvls}}
  21 + </div>
  22 + <div class="post-content">
  23 + {{# content}}
  24 + {{#if text}}
  25 + <div class="post-block text-block">
  26 + {{text}}
  27 + </div>
  28 + {{/if}}
  29 +
  30 + {{#if bigImage}}
  31 + <div class="post-block big-img-block">
  32 + <img class="lazy" data-original={{bigImage}}>
  33 + </div>
  34 + {{/if}}
  35 +
  36 + {{#if smallImage}}
  37 + <div class="post-block small-img-block clearfix">
  38 + {{# smallImage}}
  39 + <img class="lazy" data-original={{src}}>
  40 + {{/ smallImage}}
  41 + </div>
  42 + {{/if}}
  43 +
  44 + {{#if collocation}}
  45 + <div class="post-block collocation-block">
  46 + <ul class="thumb-container">
  47 + {{#each collocation}}
  48 + <li class="thumb {{#if @first}}focus{{/if}}">
  49 + <img class="thumb-img lazy" data-original={{thumb}}>
  50 + <span class="clothe-type {{type}}"></span>
  51 + </li>
  52 + {{/each}}
  53 + </ul>
  54 + <div class="good-list clearfix">
  55 + {{#each collocation}}
  56 + <div class="prod {{#unless @first}}hide{{/unless}}">
  57 + {{# goods}}
  58 + {{> good}}
  59 + {{/ goods}}
  60 + </div>
  61 + {{/each}}
  62 + </div>
  63 + </div>
  64 + {{/if}}
  65 +
  66 + {{#if relatedReco}}
  67 + <div class="post-block related-reco-block clearfix">
  68 + <h2>相关推荐</h2>
  69 + {{#if relatedReco.onlyOne}}
  70 + {{#with relatedReco}}
  71 + <div class="one-good">
  72 + <img class="thumb lazy" data-original={{thumb}}>
  73 + <div class="content-container">
  74 + <p>
  75 + <span class="reco-name">{{name}}</span>
  76 + </p>
  77 + <p class="price">
  78 + <span class="sale-price {{^price}}no-price{{/price}}">¥{{salePrice}}</span>
  79 + {{#price}}
  80 + <span class="market-price">¥{{.}}</span>
  81 + {{/price}}
  82 + <a class="check-detail" href={{url}}>
  83 + 查看详情
  84 + </a>
  85 + </p>
  86 + </div>
  87 + </div>
  88 + {{/with}}
  89 + {{^}}
  90 + <div class="good-list clearfix">
  91 + {{# relatedReco}}
  92 + {{> good}}
  93 + {{/ relatedReco}}
  94 + </div>
  95 + {{/if}}
  96 + </div>
  97 + {{/if}}
  98 + {{/ content}}
  99 + </div>
  100 + </div>
  101 + {{/ detail}}
  102 +
  103 + {{#if relatedBrand}}
  104 + <div class="related-brand">
  105 + <h2>相关品牌</h2>
  106 + <ul class="brand-list clearfix">
  107 + {{# relatedBrand}}
  108 + <li class="brand">
  109 + <a href={{url}}>
  110 + <div class="brand-logo">
  111 + <img class="lazy" data-original={{thumb}}>
  112 + </div>
  113 + <p class="brand-name">{{name}}</p>
  114 + </a>
  115 + </li>
  116 + {{/ relatedBrand}}
  117 + </ul>
  118 + </div>
  119 + {{/if}}
  120 +
  121 + {{#if relatedTag}}
  122 + <div class="related-tag">
  123 + <div class="tag-bg"></div>
  124 + <ul class="tag-list clearfix">
  125 + {{# relatedTag}}
  126 + <li>
  127 + <a href={{url}}>{{name}}</a>
  128 + </li>
  129 + {{/ relatedTag}}
  130 + </ul>
  131 + </div>
  132 + {{/if}}
  133 +
  134 + {{#if relatedInfo}}
  135 + <div class="related-info">
  136 + <h2>相关文章</h2>
  137 + <ul class="info-list">
  138 + {{# relatedInfo}}
  139 + <li>
  140 + <a class="clearfix" href={{url}}>
  141 + <img class="lazy {{#if squareThumb}}square{{/if}}" data-original={{thumb}}>
  142 + <span class="title">{{title}}</span>
  143 + <span class="publish-time">
  144 + <i class="iconfont">&#xe603;</i>
  145 + {{publishTime}}
  146 + </span>
  147 + </a>
  148 + </li>
  149 + {{/ relatedInfo}}
  150 + </ul>
  151 + </div>
  152 + {{/if}}
  153 + </div>
  154 + </div>
  155 + {{/ guang}}
  156 +</div>
  157 +{{> layout/footer}}
  1 +{{> layout/header}}
  2 +<div class="guang-list-page guang-page yoho-page">
  3 + {{# guang}}
  4 + <div class="swiper-container">
  5 + <div class="swiper-wrapper">
  6 + {{# swiper}}
  7 + <div class="swiper-slide">
  8 + <a href="{{url}}">
  9 + <img class="swiper-lazy" data-src="{{img}}">
  10 + </a>
  11 + <div class="swiper-lazy-preloader"></div>
  12 + </div>
  13 + {{/ swiper}}
  14 + </div>
  15 + <div class="swiper-pagination"></div>
  16 + </div>
  17 +
  18 + {{# author}}
  19 + <div id="author-infos" class="editor-header clearfix" data-id={{id}}>
  20 + <div class="avatar">
  21 + <img src="{{avatar}}">
  22 + </div>
  23 + <div class="text">
  24 + <p class="name">{{name}}</p>
  25 + <p class="info">{{info}}</p>
  26 + </div>
  27 + </div>
  28 + {{/ author}}
  29 +
  30 + <ul id="guang-nav" class="guang-nav clearfix">
  31 + {{# navs}}
  32 + <li class="guang-nav-item {{#focus}}focus{{/focus}}" data-type={{typeId}}>
  33 + {{type}}
  34 + </li>
  35 + {{/ navs}}
  36 + </ul>
  37 +
  38 + <div id="info-list">
  39 + {{# infos}}
  40 + <div class="info-list {{^show}}hide{{/show}}">
  41 + {{# info}}
  42 + {{> guang/info}}
  43 + {{/ info}}
  44 + </div>
  45 + {{/ infos}}
  46 + </div>
  47 +
  48 + <div id="load-more-info" class="load-more-info">
  49 + <div class="loading status">
  50 + 正在加载...
  51 + </div>
  52 + <span class="no-more status hide">没有更多啦</span>
  53 + </div>
  54 + {{/ guang}}
  55 +</div>
  56 +{{> layout/footer}}
  1 +{{> layout/header}}
  2 +<div class="guang-list-page guang-page yoho-page">
  3 + {{# guang}}
  4 + {{# author}}
  5 + <div id="author-infos" class="editor-header clearfix" data-id={{id}}>
  6 + <div class="avatar">
  7 + <img src="{{avatar}}">
  8 + </div>
  9 + <div class="text">
  10 + <p class="name">{{name}}</p>
  11 + <p class="info">{{info}}</p>
  12 + </div>
  13 + </div>
  14 + {{/ author}}
  15 +
  16 + <div id="info-list" class="info-list">
  17 + {{# infos}}
  18 + {{> guang/info}}
  19 + {{/ infos}}
  20 + </div>
  21 +
  22 + <div id="load-more-info" class="load-more-info">
  23 + <div class="loading status">
  24 + 正在加载...
  25 + </div>
  26 + <span class="no-more status hide">没有更多啦</span>
  27 + </div>
  28 + {{/ guang}}
  29 +</div>
  30 +{{> layout/footer}}
1 -<div class="hot-brands girls">  
2 - {{> common/floor_header_more}}  
3 - <div class="brands-swiper">  
4 - <ul class="brands-list swiper-wrapper clearfix">  
5 - {{# list}}  
6 - <li class="swiper-slide">  
7 - <a href="{{url}}">  
8 - <img src="{{img}}" alt="">  
9 - <span class="brands-title">{{textCn}}</span>  
10 - </a>  
11 - </li>  
12 - {{/ list}}  
13 - </ul>  
14 - </div>  
15 -</div>  
1 -<div class="hot-category">  
2 - <div class="category-banner">  
3 - <a href="{{url}}">  
4 - <img class="lazy" data-original="{{img}}" alt="">  
5 - </a>  
6 -  
7 - </div>  
8 - <ul class="category-list clearfix">  
9 - {{# list}}  
10 - <li>  
11 - <a href="{{url}}">  
12 - <div class="img-box">  
13 - <img class="lazy" data-original="{{img}}" alt="">  
14 - </div>  
15 - <p class="category-title">{{textCn}}</p>  
16 - </a>  
17 - </li>  
18 - {{/ list}}  
19 - </ul>  
20 -</div>  
1 <?php 1 <?php
  2 +use Action\AbstractAction;
2 3
3 -/*  
4 - * To change this license header, choose License Headers in Project Properties.  
5 - * To change this template file, choose Tools | Templates  
6 - * and open the template in the editor.  
7 - */ 4 +class DetailController extends AbstractAction
  5 +{
8 6
  7 + public function indexAction()
  8 + {
  9 + $data = array(
  10 + 'id' => 1,
  11 + 'author' => array(
  12 + 'avatar' => 'http://7xidk0.com1.z0.glb.clouddn.com/avater.png',
  13 + 'name' => '山本耀司',
  14 + 'intro' => '日本设计界一代宗师,分享一些个人区委分享内容不求有用但求有趣区委分享内容不求有用但求有趣区委分享内容不求有用但求有趣区委分享内容不求有用但求有趣',
  15 + 'url' => ''
  16 + ),
  17 + 'detail' => array(
  18 + 'title' => 'Skin Art Series INN 2015新品',
  19 + 'publishTime' => '2月13日 12:34',
  20 + 'pageView' => 3445,
  21 + 'content' => array(
  22 + array(
  23 + 'text' => '复古风劲吹,在各路复古跑鞋嚣张跋扈的当下,历史悠久的Onitsuka也动作频频'
  24 + ),
  25 + array(
  26 + 'bigImage' => 'http://img10.static.yhbimg.com/yhb-img01/2015/06/11/15/017b3fa0478e26a3ded2ac75d341fe3ab6.jpg?imageView/2/w/640/h/640'
  27 + ),
  28 + array(
  29 + 'relatedReco' => array(
  30 + 'onlyOne' => true,
  31 + 'id' => 1,
  32 + 'thumb' => 'http://img11.static.yhbimg.com/goodsimg/2015/03/02/07/01ebfb219e22770ffb0c2c3a2cbb2b4bef.jpg?imageMogr2/thumbnail/235x314/extent/235x314/background/d2hpdGU=/position/center/quality/90',
  33 + 'name' => 'GAWS DIGI 丛林数码印花拼接卫衣看看两行文字以上能不能切字啦,样式应该不会乱的吧',
  34 + 'isLike' => false,
  35 + 'price' => 1268,
  36 + 'salePrice' => 589,
  37 + 'url' => ''
  38 + )
  39 + ),
  40 + array(
  41 + 'collocation' => array(
  42 + array(
  43 + 'thumb' => 'http://7xidk0.com1.z0.glb.clouddn.com/clothe.png',
  44 + 'type' => 'pants',
  45 + 'goods' => array(
  46 + 'id' => 1,
  47 + 'thumb' => 'http://img11.static.yhbimg.com/goodsimg/2015/03/02/07/01ebfb219e22770ffb0c2c3a2cbb2b4bef.jpg?imageMogr2/thumbnail/235x314/extent/235x314/background/d2hpdGU=/position/center/quality/90',
  48 + 'name' => 'GAWS DIGI 丛林数码印花拼接卫衣',
  49 + 'price' => 1268,
  50 + 'salePrice' => 589,
  51 + 'tags' => array(
  52 + array(
  53 + 'isNew' => true
  54 + )
  55 + ),
  56 + 'isFew' => true,
  57 + 'url' => ''
  58 + )
  59 + ),
  60 + array(
  61 + 'thumb' => 'http://7xidk0.com1.z0.glb.clouddn.com/clothe.png',
  62 + 'type' => 'cloth',
  63 + 'goods' => array(
  64 + 'id' => 1,
  65 + 'thumb' => 'http://img11.static.yhbimg.com/goodsimg/2015/03/02/07/01ebfb219e22770ffb0c2c3a2cbb2b4bef.jpg?imageMogr2/thumbnail/235x314/extent/235x314/background/d2hpdGU=/position/center/quality/90',
  66 + 'name' => 'GAWS DIGI 丛林数码印花拼接卫衣',
  67 + 'price' => 1268,
  68 + 'salePrice' => 589,
  69 + 'tags' => array(
  70 + array(
  71 + 'isNew' => true
  72 + )
  73 + ),
  74 + 'isFew' => true,
  75 + 'url' => ''
  76 + )
  77 + )
  78 + )
  79 + )
  80 + )
  81 + ),
  82 + 'relatedBrand' => array(
  83 + array(
  84 + 'thumb' => 'http://7xidk0.com1.z0.glb.clouddn.com/logo.png',
  85 + 'name' => 'HALFGIRL测试名字长的情况',
  86 + 'url' => ''
  87 + ),
  88 + array(
  89 + 'thumb' => 'http://7xidk0.com1.z0.glb.clouddn.com/logo.png',
  90 + 'name' => '黄伟文Wyman',
  91 + 'url' => ''
  92 + ),
  93 + array(
  94 + 'thumb' => 'http://7xidk0.com1.z0.glb.clouddn.com/logo.png',
  95 + 'name' => 'HIPANDA',
  96 + 'url' => ''
  97 + )
  98 + ),
  99 + 'relatedTag' => array(
  100 + array(
  101 + 'name' => '棒球服',
  102 + 'url' => ''
  103 + )
  104 + ),
  105 + 'relatedInfo' => array(
  106 + array(
  107 + 'thumb' => 'http://7xidk0.com1.z0.glb.clouddn.com/pant.png',
  108 + 'title' => '复古风劲吹,在各路复古跑鞋嚣张跋扈的当下,历史悠久的Onitsuka',
  109 + 'url' => '',
  110 + 'publishTime' => '2月13日 12:34'
  111 + )
  112 + )
  113 + );
  114 + $this->_view->assign('title', 'YOHO!有货');
  115 + $this->_view->display('index', array('modulePath' => 'guang/detail', 'guang' => $data));
  116 + }
  117 +}
1 <?php 1 <?php
  2 +use Action\AbstractAction;
2 3
3 -/*  
4 - * To change this license header, choose License Headers in Project Properties.  
5 - * To change this template file, choose Tools | Templates  
6 - * and open the template in the editor. 4 +/**
  5 + * 逛首页、列表页、编辑页
7 */ 6 */
  7 +class ListController extends AbstractAction
  8 +{
  9 + /**
  10 + * 首页
  11 + */
  12 + public function indexAction()
  13 + {
  14 + $data = array(
  15 + 'swiper' => array(
  16 + array(
  17 + 'url' => '',
  18 + 'img' => 'http://img11.static.yhbimg.com/yhb-img01/2015/07/06/10/014fd517e2fe3f3e0dc3cbc3007d8093af.jpg?imageView/2/w/640/h/640'
  19 + ),
  20 + array(
  21 + 'url' => '',
  22 + 'img' => 'http://img10.static.yhbimg.com/yhb-img01/2015/07/03/13/01a165dd33db8488edc741241950a596a8.jpg?imageView/2/w/640/h/640'
  23 + )
  24 + ),
  25 + 'navs' => array(
  26 + array(
  27 + 'typeId' => 1,
  28 + 'type' => '最新'
  29 + ),
  30 + array(
  31 + 'typeId' => 2,
  32 + 'type' => '话题',
  33 + 'focus' => true
  34 + ),
  35 + array(
  36 + 'typeId' => 3,
  37 + 'type' => '搭配'
  38 + ),
  39 + array(
  40 + 'typeId' => 4,
  41 + 'type' => '潮人'
  42 + ),
  43 + array(
  44 + 'typeId' => 5,
  45 + 'type' => '潮物'
  46 + ),
  47 + array(
  48 + 'typeId' => 6,
  49 + 'type' => '小贴士'
  50 + )
  51 + ),
  52 + 'infos' => array(
  53 + array(
  54 + 'info' => array(
  55 + array(
  56 + 'id' => 1,
  57 + 'img' => 'http://7xidk0.com1.z0.glb.clouddn.com/bg.png',
  58 + 'title' => '1.副线不知为何总是好看点',
  59 + 'text' => '具有绅士气质的英伦风格是永走前沿的经典,在众多的Made ' .
  60 + 'In England中Panul Smith缔造了一个传奇',
  61 + 'showTags' => true,
  62 + 'publishTime' => '2月13日 12:34',
  63 + 'pageView' => 3445,
  64 + 'like' => array(
  65 + 'count' => 459,
  66 + 'isLiked' => true
  67 + ),
  68 + 'share' => true,
  69 + 'url' => '',
  70 + 'likeUrl' => '',
  71 + 'isFashionMan' => true
  72 + ),
  73 + array(
  74 + 'id' => 1,
  75 + 'img' => 'http://7xidk0.com1.z0.glb.clouddn.com/bg.png',
  76 + 'title' => '1.副线不知为何总是好看点',
  77 + 'text' => '具有绅士气质的英伦风格是永走前沿的经典,在众多的Made ' .
  78 + 'In England中Panul Smith缔造了一个传奇',
  79 + 'showTags' => true,
  80 + 'publishTime' => '2月13日 12:34',
  81 + 'pageView' => 3445,
  82 + 'like' => array(
  83 + 'count' => 459,
  84 + 'isLiked' => true
  85 + ),
  86 + 'share' => true,
  87 + 'url' => '',
  88 + 'likeUrl' => '',
  89 + 'isTip' => true
  90 + )
  91 + )
  92 + ),
  93 + array(
  94 + 'show' => true,
  95 + 'info' => array(
  96 + array(
  97 + 'id' => 2,
  98 + 'img' => 'http://7xidk0.com1.z0.glb.clouddn.com/bg.png',
  99 + 'title' => '2.副线不知为何总是好看点测试长度是否会被截取塞真的很恶心啊',
  100 + 'text' => '具有绅士气质的英伦风格是永走前沿的经典,在众多的Made ' .
  101 + 'In England中Panul Smith缔造了一个传奇',
  102 + 'showTags' => false,
  103 + 'publishTime' => '2月13日 12:34',
  104 + 'pageView' => 3445,
  105 + 'like' => array(
  106 + 'count' => 100,
  107 + 'isLiked' => false
  108 + ),
  109 + 'share' => true,
  110 + 'url' => '',
  111 + 'likeUrl' => '',
  112 + 'isFashionGood' => true
  113 + )
  114 + )
  115 + ),
  116 + array(
  117 + 'info' => array(
  118 + array(
  119 + 'id' => 2,
  120 + 'img' => 'http://7xidk0.com1.z0.glb.clouddn.com/bg.png',
  121 + 'title' => '2.副线不知为何总是好看点测试长度是否会被截取塞真的很恶心啊',
  122 + 'text' => '具有绅士气质的英伦风格是永走前沿的经典,在众多的Made ' .
  123 + 'In England中Panul Smith缔造了一个传奇',
  124 + 'showTags' => false,
  125 + 'publishTime' => '2月13日 12:34',
  126 + 'pageView' => 3445,
  127 + 'like' => array(
  128 + 'count' => 100,
  129 + 'isLiked' => false
  130 + ),
  131 + 'share' => true,
  132 + 'url' => '',
  133 + 'likeUrl' => '',
  134 + 'isFashionGood' => true
  135 + ),
  136 + array(
  137 + 'id' => 1,
  138 + 'img' => 'http://7xidk0.com1.z0.glb.clouddn.com/bg.png',
  139 + 'title' => '1.副线不知为何总是好看点',
  140 + 'text' => '具有绅士气质的英伦风格是永走前沿的经典,在众多的Made ' .
  141 + 'In England中Panul Smith缔造了一个传奇',
  142 + 'showTags' => true,
  143 + 'publishTime' => '2月13日 12:34',
  144 + 'pageView' => 3445,
  145 + 'like' => array(
  146 + 'count' => 459,
  147 + 'isLiked' => true
  148 + ),
  149 + 'share' => true,
  150 + 'url' => '',
  151 + 'likeUrl' => '',
  152 + 'isTip' => true
  153 + )
  154 + )
  155 + ),
  156 + array(
  157 + 'info' => array(
  158 + array(
  159 + 'id' => 2,
  160 + 'img' => 'http://7xidk0.com1.z0.glb.clouddn.com/bg.png',
  161 + 'title' => '2.副线不知为何总是好看点测试长度是否会被截取塞真的很恶心啊',
  162 + 'text' => '具有绅士气质的英伦风格是永走前沿的经典,在众多的Made ' .
  163 + 'In England中Panul Smith缔造了一个传奇',
  164 + 'showTags' => false,
  165 + 'publishTime' => '2月13日 12:34',
  166 + 'pageView' => 3445,
  167 + 'like' => array(
  168 + 'count' => 100,
  169 + 'isLiked' => false
  170 + ),
  171 + 'share' => true,
  172 + 'url' => '',
  173 + 'likeUrl' => '',
  174 + 'isFashionGood' => true
  175 + ),
  176 + array(
  177 + 'id' => 1,
  178 + 'img' => 'http://7xidk0.com1.z0.glb.clouddn.com/bg.png',
  179 + 'title' => '1.副线不知为何总是好看点',
  180 + 'text' => '具有绅士气质的英伦风格是永走前沿的经典,在众多的Made ' .
  181 + 'In England中Panul Smith缔造了一个传奇',
  182 + 'showTags' => true,
  183 + 'publishTime' => '2月13日 12:34',
  184 + 'pageView' => 3445,
  185 + 'like' => array(
  186 + 'count' => 459,
  187 + 'isLiked' => true
  188 + ),
  189 + 'share' => true,
  190 + 'url' => '',
  191 + 'likeUrl' => '',
  192 + 'isTip' => true
  193 + )
  194 + )
  195 + ),
  196 + array(
  197 + 'info' => array(
  198 + array(
  199 + 'id' => 2,
  200 + 'img' => 'http://7xidk0.com1.z0.glb.clouddn.com/bg.png',
  201 + 'title' => '2.副线不知为何总是好看点测试长度是否会被截取塞真的很恶心啊',
  202 + 'text' => '具有绅士气质的英伦风格是永走前沿的经典,在众多的Made ' .
  203 + 'In England中Panul Smith缔造了一个传奇',
  204 + 'showTags' => false,
  205 + 'publishTime' => '2月13日 12:34',
  206 + 'pageView' => 3445,
  207 + 'like' => array(
  208 + 'count' => 100,
  209 + 'isLiked' => false
  210 + ),
  211 + 'share' => true,
  212 + 'url' => '',
  213 + 'likeUrl' => '',
  214 + 'isFashionGood' => true
  215 + ),
  216 + array(
  217 + 'id' => 1,
  218 + 'img' => 'http://7xidk0.com1.z0.glb.clouddn.com/bg.png',
  219 + 'title' => '1.副线不知为何总是好看点',
  220 + 'text' => '具有绅士气质的英伦风格是永走前沿的经典,在众多的Made ' .
  221 + 'In England中Panul Smith缔造了一个传奇',
  222 + 'showTags' => true,
  223 + 'publishTime' => '2月13日 12:34',
  224 + 'pageView' => 3445,
  225 + 'like' => array(
  226 + 'count' => 459,
  227 + 'isLiked' => true
  228 + ),
  229 + 'share' => true,
  230 + 'url' => '',
  231 + 'likeUrl' => '',
  232 + 'isTip' => true
  233 + )
  234 + )
  235 + ),
  236 + array(
  237 + 'info' => array(
  238 + array(
  239 + 'id' => 2,
  240 + 'img' => 'http://7xidk0.com1.z0.glb.clouddn.com/bg.png',
  241 + 'title' => '2.副线不知为何总是好看点测试长度是否会被截取塞真的很恶心啊',
  242 + 'text' => '具有绅士气质的英伦风格是永走前沿的经典,在众多的Made ' .
  243 + 'In England中Panul Smith缔造了一个传奇',
  244 + 'showTags' => false,
  245 + 'publishTime' => '2月13日 12:34',
  246 + 'pageView' => 3445,
  247 + 'like' => array(
  248 + 'count' => 100,
  249 + 'isLiked' => false
  250 + ),
  251 + 'share' => true,
  252 + 'url' => '',
  253 + 'likeUrl' => '',
  254 + 'isFashionGood' => true
  255 + ),
  256 + array(
  257 + 'id' => 1,
  258 + 'img' => 'http://7xidk0.com1.z0.glb.clouddn.com/bg.png',
  259 + 'title' => '1.副线不知为何总是好看点',
  260 + 'text' => '具有绅士气质的英伦风格是永走前沿的经典,在众多的Made ' .
  261 + 'In England中Panul Smith缔造了一个传奇',
  262 + 'showTags' => true,
  263 + 'publishTime' => '2月13日 12:34',
  264 + 'pageView' => 3445,
  265 + 'like' => array(
  266 + 'count' => 459,
  267 + 'isLiked' => true
  268 + ),
  269 + 'share' => true,
  270 + 'url' => '',
  271 + 'likeUrl' => '',
  272 + 'isTip' => true
  273 + )
  274 + )
  275 + )
  276 + )
  277 + );
  278 + $this->_view->assign('title', 'YOHO!有货');
  279 + $this->_view->display('index', array('modulePath' => 'guang/home', 'guang' => $data));
  280 + }
8 281
  282 + /**
  283 + * 列表页
  284 + */
  285 + public function listAction()
  286 + {
  287 + $data = array(
  288 + 'infos' => array(
  289 + array(
  290 + 'id' => 1,
  291 + 'img' => 'http://7xidk0.com1.z0.glb.clouddn.com/bg.png',
  292 + 'title' => '1.副线不知为何总是好看点',
  293 + 'text' => '具有绅士气质的英伦风格是永走前沿的经典,在众多的Made ' .
  294 + 'In England中Panul Smith缔造了一个传奇',
  295 + 'showTags' => true,
  296 + 'publishTime' => '2月13日 12:34',
  297 + 'pageView' => 3445,
  298 + 'like' => array(
  299 + 'count' => 459,
  300 + 'isLiked' => true
  301 + ),
  302 + 'share' => true,
  303 + 'url' => '',
  304 + 'likeUrl' => '',
  305 + 'isFashionMan' => true
  306 + ),
  307 + array(
  308 + 'id' => 1,
  309 + 'img' => 'http://7xidk0.com1.z0.glb.clouddn.com/bg.png',
  310 + 'title' => '1.副线不知为何总是好看点',
  311 + 'text' => '具有绅士气质的英伦风格是永走前沿的经典,在众多的Made ' .
  312 + 'In England中Panul Smith缔造了一个传奇',
  313 + 'showTags' => true,
  314 + 'publishTime' => '2月13日 12:34',
  315 + 'pageView' => 3445,
  316 + 'like' => array(
  317 + 'count' => 459,
  318 + 'isLiked' => true
  319 + ),
  320 + 'share' => true,
  321 + 'url' => '',
  322 + 'likeUrl' => '',
  323 + 'isTip' => true
  324 + ),
  325 + array(
  326 + 'id' => 2,
  327 + 'img' => 'http://7xidk0.com1.z0.glb.clouddn.com/bg.png',
  328 + 'title' => '2.副线不知为何总是好看点测试长度是否会被截取塞真的很恶心啊',
  329 + 'text' => '具有绅士气质的英伦风格是永走前沿的经典,在众多的Made ' .
  330 + 'In England中Panul Smith缔造了一个传奇',
  331 + 'showTags' => false,
  332 + 'publishTime' => '2月13日 12:34',
  333 + 'pageView' => 3445,
  334 + 'like' => array(
  335 + 'count' => 100,
  336 + 'isLiked' => false
  337 + ),
  338 + 'share' => true,
  339 + 'url' => '',
  340 + 'likeUrl' => '',
  341 + 'isFashionGood' => true
  342 + )
  343 + )
  344 + );
  345 + $this->_view->assign('title', 'YOHO!有货');
  346 + $this->_view->display('list', array('modulePath' => 'guang/list', 'guang' => $data));
  347 + }
  348 +
  349 + /**
  350 + * 编辑页
  351 + */
  352 + public function editorAction()
  353 + {
  354 + $data = array(
  355 + 'author' => array(
  356 + 'avatar' => 'http://7xidk0.com1.z0.glb.clouddn.com/avater.png',
  357 + 'name' => '山本耀司',
  358 + 'info' => '设计理念:他以简洁而富有韵味,线条流畅,反时尚的设计风格而著称。'
  359 + ),
  360 + 'infos' => array(
  361 + array(
  362 + 'id' => 1,
  363 + 'img' => 'http://7xidk0.com1.z0.glb.clouddn.com/bg.png',
  364 + 'title' => '1.副线不知为何总是好看点',
  365 + 'text' => '具有绅士气质的英伦风格是永走前沿的经典,在众多的Made ' .
  366 + 'In England中Panul Smith缔造了一个传奇',
  367 + 'showTags' => true,
  368 + 'publishTime' => '2月13日 12:34',
  369 + 'pageView' => 3445,
  370 + 'like' => array(
  371 + 'count' => 459,
  372 + 'isLiked' => true
  373 + ),
  374 + 'share' => true,
  375 + 'url' => '',
  376 + 'likeUrl' => '',
  377 + 'isFashionMan' => true
  378 + ),
  379 + array(
  380 + 'id' => 1,
  381 + 'img' => 'http://7xidk0.com1.z0.glb.clouddn.com/bg.png',
  382 + 'title' => '1.副线不知为何总是好看点',
  383 + 'text' => '具有绅士气质的英伦风格是永走前沿的经典,在众多的Made ' .
  384 + 'In England中Panul Smith缔造了一个传奇',
  385 + 'showTags' => true,
  386 + 'publishTime' => '2月13日 12:34',
  387 + 'pageView' => 3445,
  388 + 'like' => array(
  389 + 'count' => 459,
  390 + 'isLiked' => true
  391 + ),
  392 + 'share' => true,
  393 + 'url' => '',
  394 + 'likeUrl' => '',
  395 + 'isTip' => true
  396 + ),
  397 + array(
  398 + 'id' => 2,
  399 + 'img' => 'http://7xidk0.com1.z0.glb.clouddn.com/bg.png',
  400 + 'title' => '2.副线不知为何总是好看点测试长度是否会被截取塞真的很恶心啊',
  401 + 'text' => '具有绅士气质的英伦风格是永走前沿的经典,在众多的Made ' .
  402 + 'In England中Panul Smith缔造了一个传奇',
  403 + 'showTags' => false,
  404 + 'publishTime' => '2月13日 12:34',
  405 + 'pageView' => 3445,
  406 + 'like' => array(
  407 + 'count' => 100,
  408 + 'isLiked' => false
  409 + ),
  410 + 'share' => true,
  411 + 'url' => '',
  412 + 'likeUrl' => '',
  413 + 'isFashionGood' => true
  414 + )
  415 + )
  416 + );
  417 + $this->_view->assign('title', 'YOHO!有货');
  418 + $this->_view->display('list', array('modulePath' => 'guang/list', 'guang' => $data));
  419 + }
  420 +}