魔扣论坛

查看: 470|回复: 6

[经验交流] Magento 修正来自首页的产品页面包屑导航(Breadcrumb)

[复制链接]
  • TA的每日心情
    慵懒
    3 小时前
  • 签到天数: 1106 天

    [LV.10]论坛老兵

    6341

    主题

    6550

    帖子

    4万

    积分

    管理员

    Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

    魔扣币
    179612
    贡献
    21892
    威望
    14715

    最佳新人活跃会员热心会员推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2015-12-15 15:46:10 | 显示全部楼层 |阅读模式

    这近发现Magento产品页面的面包屑导航很怪异:如果产品是从Category产品列表中进入Product详细页面,则面包屑导航中含有Category Path; 否则,当从首页,或搜索结果中,或者其他什么地方进入,则缺少之。我想,可能是Magento支持一个产品放入多个Category的缘故吧。不管怎么样,产品页中缺少了Category Path,用户体验不大好。

    修正的方法,找到文件app/code/core/Mage/Catalog/Helper/Data.php

    复制一份到local代码池

    app/code/local/Mage/Catalog/Helper/Data.php
    在函数getBreadcrumbPath的开始部分,加上如下的代码逻辑:

    1. public function getBreadcrumbPath()
    2.     {
    3.         if (!$this->_categoryPath) {
    4.             $path = array();
    5.             //add by date 2013-04-07 产品页面包屑导航修正
    6.             if ($this->getProduct() && !$this->getCategory()) {
    7.                 $_categoryIds = $this->getProduct()->getCategoryIds();
    8.                 rsort($_categoryIds);
    9.                 if ($_categoryId = $_categoryIds[0]) {
    10.                     $_category = Mage::getModel('catalog/category')->load($_categoryId);
    11.                     Mage::register('current_category', $_category);
    12.                 }
    13.             }
    14.             //end date 2013-04-07
    15.             
    16.             if ($category = $this->getCategory()) {
    17.                 $pathInStore = $category->getPathInStore();
    18.                 $pathIds = array_reverse(explode(',', $pathInStore));
    19.                 $categories = $category->getParentCategories();
    20.                 // add category path breadcrumb
    21.                 foreach ($pathIds as $categoryId) {
    22.                     if (isset($categories[$categoryId]) && $categories[$categoryId]->getName()) {
    23.                         $path['category'.$categoryId] = array(
    24.                             'label' => $categories[$categoryId]->getName(),
    25.                             'link' => $this->_isCategoryLink($categoryId) ? $categories[$categoryId]->getUrl() : ''
    26.                         );
    27.                     }
    28.                 }
    29.             }
    30.             if ($this->getProduct()) {
    31.                 $path['product'] = array('label'=>$this->getProduct()->getName());
    32.             }
    33.             $this->_categoryPath = $path;
    34.         }
    35.         return $this->_categoryPath;
    36.     }
    复制代码

    首先判断当前是否是产品页,如果是并且没有Category信息,就获取产品所属的Category IDs,Magento中一个产品可以加入多个Category中,现在也不管那么多了,只挑出其中一个幸运的Category作为current_category。


    会员购买:>> 点击购买 << | 魔扣币购买:>> 点击购买 <<
    承接业务:服务器代维丨网站托管丨SEO
    联系客服:微信:morko-net | QQ:1367681973

    该用户从未签到

    1

    主题

    190

    帖子

    379

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    189
    贡献
    189
    威望
    0
    发表于 2017-1-4 20:19:19 | 显示全部楼层
    魔扣源码论坛网络版块就像是监狱,本来是偷了个钱包进来的,等出去的时候就什么都学会了。   

    该用户从未签到

    0

    主题

    147

    帖子

    294

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    147
    贡献
    147
    威望
    0
    发表于 2017-3-12 09:35:01 来自手机 | 显示全部楼层
    秋风凉凉,夜也变长!轻声问候,是否繁忙?换季之时,魔扣源码论坛,注意健康,多喝开水,增加衣裳,早晚天冷,小心着凉,保重身体,快乐无恙。

    该用户从未签到

    2

    主题

    187

    帖子

    373

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    186
    贡献
    186
    威望
    0
    发表于 2017-8-20 12:50:37 | 显示全部楼层
    呵呵。。。

    该用户从未签到

    2

    主题

    184

    帖子

    366

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    182
    贡献
    182
    威望
    0
    发表于 2018-1-25 14:29:37 | 显示全部楼层
    既然选择离开,就不要说不会忘记;既然你我没有缘分,就不需要誓言,因为誓言再多也没有用。今天的一切,魔扣源码论坛就像水流过一样不留痕迹。明天、以后,等我们再见的时候,就变成了陌生人。

    该用户从未签到

    4

    主题

    179

    帖子

    354

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    175
    贡献
    175
    威望
    0
    发表于 2018-8-25 13:12:50 来自手机 | 显示全部楼层
    太漂亮的源码了,非常感谢魔扣源码论坛

    该用户从未签到

    2

    主题

    166

    帖子

    330

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    164
    贡献
    164
    威望
    0
    发表于 前天 12:11 | 显示全部楼层
    你喜欢的人也喜欢你,你想念的人也正在想念你。这就是全世界最重要的事情,拿什么都不能换。',
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    • 联系我们
    • 新浪微博 :
    • 在线客服 :魔扣科技 
    • 源码QQ群 :魔扣源码论坛官方总群
    • 联系邮箱 :charlin#morko.net
    • 微信扫一扫
    快速回复 返回顶部 返回列表