Heim > php教程 > php手册 > Hauptteil

Magento 修正来自首页的产品页面包屑导航

WBOY
Freigeben: 2016-06-13 10:02:13
Original
1442 Leute haben es durchsucht

本文章来给各位朋友介绍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的开始部分,加上如下的代码逻辑:

 

 代码如下 复制代码
getBreadcrumbPath()
    {
        if (!$this->_categoryPath) {
            $path = array();
            //add by date 2013-04-07 产品页面包屑导航修正
            if ($this->getProduct() && !$this->getCategory()) {
                $_categoryIds = $this->getProduct()->getCategoryIds();
                rsort($_categoryIds);
                if ($_categoryId = $_categoryIds[0]) {
                    $_category = Mage::getModel('catalog/category')->load($_categoryId);
                    Mage::register('current_category', $_category);
                }
            }
            //end date 2013-04-07
           
            if ($category = $this->getCategory()) {
                $pathInStore = $category->getPathInStore();
                $pathIds = array_reverse(explode(',', $pathInStore));
                $categories = $category->getParentCategories();
                // add category path breadcrumb
                foreach ($pathIds as $categoryId) {
                    if (isset($categories[$categoryId]) && $categories[$categoryId]->getName()) {
                        $path['category'.$categoryId] = array(
                            'label' => $categories[$categoryId]->getName(),
                            'link' => $this->_isCategoryLink($categoryId) ? $categories[$categoryId]->getUrl() : ''
                        );
                    }
                }
            }
            if ($this->getProduct()) {
                $path['product'] = array('label'=>$this->getProduct()->getName());
            }
            $this->_categoryPath = $path;
        }
        return $this->_categoryPath;
    }

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

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage