From 359b0f5a4c287d0c310cb6bb6fd5073cda6eb2c5 Mon Sep 17 00:00:00 2001 From: hf <fei.hong@yoho.cn> Date: Wed, 21 Oct 2015 21:12:54 +0800 Subject: [PATCH] do fixes bug to home show floor data --- library/Plugin/DataProcess/FloorProcess.php | 252 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------- template/m.yohobuy.com/partials/home/floor_header.phtml | 1 + template/m.yohobuy.com/partials/home/hot_category.phtml | 8 ++++++-- 3 files changed, 206 insertions(+), 55 deletions(-) diff --git a/library/Plugin/DataProcess/FloorProcess.php b/library/Plugin/DataProcess/FloorProcess.php index 66a0d7f..43ab683 100644 --- a/library/Plugin/DataProcess/FloorProcess.php +++ b/library/Plugin/DataProcess/FloorProcess.php @@ -11,27 +11,42 @@ class FloorProcess { /** + * 频道参数 + * + * @var array + */ + private static $channel = array( + '1' => '1,3', + '2' => '2,3' + ); + + /** * 处理首页内容 * @param $data * @param $type 类型 默认1:男首页 2:女首页 3:kids 4:lifestyle */ public static function getContent($data, $type = 1) { + if (empty($data['list'])) { + return array(); + } + $result = array(); - if (!empty($data['list'])) { - $build = array(); - foreach ($data['list'] as $v) { - $fun = $v['template_name']; - if (!is_callable("self::$fun")) { - continue; - } - $build = self::$fun($v['data'], $type); - if (empty($build)) { - continue; - } - $result[] = $build; + + $build = array(); + foreach ($data['list'] as $v) { + $fun = $v['template_name']; + if (empty($v['data']) || !is_callable("self::$fun")) { + continue; + } + $build = self::$fun($v['data'], $type); + if (empty($build)) { + continue; } + $result[] = $build; } + $build = array(); + return $result; } @@ -46,16 +61,35 @@ class FloorProcess $result = array(); foreach ($data as &$one) { - $one['img'] = Helpers::getImageUrl($one['src'], 750, 364, 1); + $one['url'] = Helpers::getFilterUrl($one['url']); + $one['img'] = Helpers::getImageUrl($one['src'], 640, 310); + unset($one['src']); + } + $result['bannerTop']['list'] = $data; + + return $result; + } + + /** + * 图标 + */ + private static function floor($data) + { + $result = array(); + + foreach ($data as &$one) { + $one['url'] = Helpers::getFilterUrl($one['url']); + $one['img'] = Helpers::getImageUrl($one['src'], 98, 98); unset($one['src']); } - $result['list'] = $data; + $result['iconsEnter']['list'] = $data; - return array('bannerTop' => $result); + return $result; } /** * 图标列表数据处理方法 + * * @param array $data 图标列表数据 * @param $type 类型 默认1:男首页 2:女首页 3:kids 4:lifestyle * @return array 处理之后的图标列表数据 @@ -65,36 +99,66 @@ class FloorProcess $result = array(); foreach ($data as &$one) { - $one['img'] = Helpers::getImageUrl($one['src'], 186, 203, 1); + $one['url'] = Helpers::getFilterUrl($one['url']); + $one['img'] = Helpers::getImageUrl($one['src'], 98, 98); unset($one['src']); } - $result['list'] = $data; + $result['iconsEnter']['list'] = $data; - return array('iconsEnter' => $result); + return $result; } /** - * 单图片数据处理方法 + * 单广告图片数据处理方法 + * * @param array $data 单图片数据 * @param $type 类型 默认1:男首页 2:女首页 3:kids 4:lifestyle * @return array 处理之后的单图片数据 */ private static function single_image($data, $type) { - if (empty($data)) { - return array(); - } - + $result = array(); + foreach ($data as &$one) { - $one['img'] = Helpers::getImageUrl($one['src'], 750, 364, 1); + $one['url'] = Helpers::getFilterUrl($one['url']); + $one['img'] = Helpers::getImageUrl($one['src'], 640, 200); unset($one['src']); } + $result['banner'] = $data; + + return $result; + } + + /** + * 女生品类 + */ + private static function recommend_content_three($data, $type) + { + $result = array(); + + $build = array(); + if (!empty($data['big_image'][0])) { + $build['img'] = Helpers::getImageUrl($data['big_image'][0]['src'], 640, 198); + $build['url'] = Helpers::getFilterUrl($data['big_image'][0]['url']); + $result['hotCategory']['banner'] = $build; + } + + $build = array(); + foreach ($data['list'] as $one) { + $build['url'] = Helpers::getFilterUrl($one['url']); + $build['img'] = Helpers::getImageUrl($one['src'], 140, 140); + $build['textCn'] = $one['title']; + $result['hotCategory']['list'][] = $build; + } + + - return array('banner' => $data); + return $result; } /** * 带标题的12个小图推荐数据处理方法 + * * @param array $data 带标题的12个小图推荐数据 * @param $type 类型 默认1:男首页 2:女首页 3:kids 4:lifestyle * @return array 处理之后的带标题的12个小图推荐数据 @@ -104,15 +168,20 @@ class FloorProcess $result = array(); foreach ($data['list'] as &$one) { - $one['img'] = Helpers::getImageUrl($one['src'], 186, 203, 1); + if (isset($one['url'])) { + $one['url'] = Helpers::getFilterUrl($one['url']); + } + $one['img'] = Helpers::getImageUrl($one['src'], 140, 140); + $one['textCn'] = $one['title']; unset($one['src']); } $data['is_show_name'] = $data['title']['is_show']; $data['name'] = $data['title']['title']; unset($data['title']); - $result = $data; - return array('hotCategory' => $result); + $result['hotCategory'] = $data; + + return $result; } /** @@ -125,16 +194,20 @@ class FloorProcess { $result = array(); - $data['is_show_name'] = (isset($data['is_show_name']) && $data['is_show_name'] == 'Y') ? 1 : 0; + $data['is_show_name'] = (isset($data['is_show_name']) && $data['is_show_name'] === 'Y') ? 1 : 0; $data['name'] = $data['title']['title']; unset($data['title']); foreach ($data['list'] as &$one) { - $one['img'] = Helpers::getImageUrl($one['src'], 186, 203, 1); + if (isset($one['url'])) { + $one['url'] = Helpers::getFilterUrl($one['url']); + } + $one['img'] = Helpers::getImageUrl($one['src'], 158, 174); unset($one['src']); } - $result = $data; + $data['more'] = '/category/brand/index?channel=' . $type; + $result['hotBrands'] = $data; - return array('hotBrands' => $result); + return $result; } /** @@ -148,16 +221,22 @@ class FloorProcess $result = array(); foreach ($data['article'] as &$one) { - $one['img'] = Helpers::getImageUrl($one['src'], 186, 203, 1); + if (isset($one['url'])) { + $one['url'] = Helpers::getFilterUrl($one['url']); + } + $one['img'] = Helpers::getImageUrl($one['src'], 400, 400); unset($one['src']); } foreach ($data['recommend_collocation'] as &$one) { - $one['img'] = Helpers::getImageUrl($one['src'], 186, 203, 1); + if (isset($one['url'])) { + $one['url'] = Helpers::getFilterUrl($one['url']); + } + $one['img'] = Helpers::getImageUrl($one['src'], 140, 140); unset($one['src']); } - $result = $data; + $result['trendColloaction'] = $data; - return array('trendColloaction' => $result); + return $result; } /** @@ -171,12 +250,15 @@ class FloorProcess $result = array(); foreach ($data['list'] as &$one) { - $one['img'] = Helpers::getImageUrl($one['src'], 186, 203, 1); + if (isset($one['url'])) { + $one['url'] = Helpers::getFilterUrl($one['url']); + } + $one['img'] = Helpers::getImageUrl($one['src'], 580, 360); unset($one['src']); } - $result = $data; + $result['trendTopics'] = $data; - return array('trendTopics' => $result); + return $result; } /** @@ -190,19 +272,33 @@ class FloorProcess $result = array(); foreach ($data['big_image'] as &$one) { - $one['img'] = Helpers::getImageUrl($one['src'], 186, 203, 1); + if (isset($one['url'])) { + $one['url'] = Helpers::getFilterUrl($one['url']); + } + $one['img'] = Helpers::getImageUrl($one['src'], 640, 403); unset($one['src']); } $data['banner']['list'] = $data['big_image']; - unset($data['big_image']); - foreach ($data['list'] as &$one) { - $one['img'] = Helpers::getImageUrl($one['src'], 186, 203, 1); + foreach ($data['list'] as $kk => &$one) { + if ($kk == 0) { + $one['img'] = Helpers::getImageUrl($one['src'], 253, 383); + } else { + $one['img'] = Helpers::getImageUrl($one['src'], 191, 191); + } + if (isset($one['url'])) { + $one['url'] = Helpers::getFilterUrl($one['url']); + } + $one['textCn'] = $one['title']; + unset($one['src']); } - $result = $data; - return array('goodsCategory' => $result); + unset($data['big_image']); + + $result['goodsCategory'] = $data; + + return $result; } /** @@ -217,19 +313,25 @@ class FloorProcess $data['banner'] = array(); foreach ($data['big_image'] as &$one) { - $one['img'] = Helpers::getImageUrl($one['src'], 186, 203, 1); + if (isset($one['url'])) { + $one['url'] = Helpers::getFilterUrl($one['url']); + } + $one['img'] = Helpers::getImageUrl($one['src'], 640, 400); unset($one['src']); } $data['banner'] = $data['big_image']; unset($data['big_image']); foreach ($data['list'] as &$one) { - $one['img'] = Helpers::getImageUrl($one['src'], 186, 203, 1); + if (isset($one['url'])) { + $one['url'] = Helpers::getFilterUrl($one['url']); + } + $one['img'] = Helpers::getImageUrl($one['src'], 212, 192); unset($one['src']); } - $result = $data; + $result['creativeLife'] = $data; - return array('creativeLife' => $result); + return $result; } /** @@ -240,15 +342,21 @@ class FloorProcess */ private static function small_pic($data, $type) { + // 按照以前业务操作,不显示 + return array(); + $result = array(); foreach ($data as &$one) { - $one['img'] = Helpers::getImageUrl($one['src'], 186, 203, 1); + if (isset($one['url'])) { + $one['url'] = Helpers::getFilterUrl($one['url']); + } + $one['img'] = Helpers::getImageUrl($one['src'], 98, 98); unset($one['src']); } - $result = $data; + $result['small_pic'] = $data; - return array('small_pic' => $result); + return $result; } /** @@ -264,9 +372,47 @@ class FloorProcess } $data['name'] = $data['title']; - $data['img'] = Helpers::getImageUrl($data['src'], 640, 198, 2); + $data['img'] = Helpers::getImageUrl($data['src'], 640, 198); + if (isset($data['url'])) { + $data['url'] = Helpers::getFilterUrl($data['url']); + } return array('plusStar' => $data); } + /** + * 自定义品牌 + * + * @param unknown $data + * @param mixed $type + * @return multitype: + */ + private static function custom_brands($data, $type) + { + // URL附加参数 + $param = ''; + if (isset(self::$channel[$type])) { + $param = '/?gender=' . self::$channel[$type]; + } + + $result = array(); + $result['hotBrandsScroll']['name'] = $data['title']['title']; + foreach ($data['list'] as &$one) { + if (isset($one['url'])) { + $one['url'] = Helpers::getFilterUrl($one['url']); + } + $one['img'] = Helpers::getImageUrl($one['src'], 140, 140); + $one['textCn'] = $one['name']; + if (isset($one['url'])) { + $one['url'] .= $param; + } + } + if (!empty($data['is_show_name']) && $data['is_show_name'] == 'Y') { + $result['hotBrandsScroll']['is_show_name'] = true; + } + $result['hotBrandsScroll']['list'] = $data['list']; + + return $result; + } + } diff --git a/template/m.yohobuy.com/partials/home/floor_header.phtml b/template/m.yohobuy.com/partials/home/floor_header.phtml index a8dae0c..03c7049 100644 --- a/template/m.yohobuy.com/partials/home/floor_header.phtml +++ b/template/m.yohobuy.com/partials/home/floor_header.phtml @@ -1,3 +1,4 @@ <div class="floor-header"> <h2>{{name}}</h2> </div> + diff --git a/template/m.yohobuy.com/partials/home/hot_category.phtml b/template/m.yohobuy.com/partials/home/hot_category.phtml index 845a9b5..2f4582e 100644 --- a/template/m.yohobuy.com/partials/home/hot_category.phtml +++ b/template/m.yohobuy.com/partials/home/hot_category.phtml @@ -1,7 +1,11 @@ <div class="hot-category"> - {{> home/floor_header}} - + + {{# banner}} + <a class="banner" href="{{url}}"> + <img class="lazy" data-original="{{img}}"> + </a> + {{/ banner}} <ul class="category-list clearfix"> {{# list}} <li> -- libgit2 0.24.0