需要从特定的magento类别页面中删除标题

时间:2015-08-31 20:36:03

标签: magento

问题

我需要从特定的非产品类别页面中删除类别名称或标题,但无法找到引用或块名称以使用布局更新将其删除。我已经找到了可以覆盖的代码并注释掉了从每个类别页面中删除标题但由于我需要大多数类别页面上的标题,因此无法使用。

我正在尝试做什么

在过去,我已经能够使用块名称打开模板路径提示,花费一秒钟进行研究并找到一种很好的方法来删除块。这是我之前使用的那种代码:

<reference name="Mage_Page_Block_Html_Breadcrumbs">
   <remove name="breadcrumbs"/>
</reference>

TL; DR

我只需要一种简单的方法从特定类别中删除类别标题名称。如果我对更新xml的想法是垃圾,我会接受任何建议。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

我首先创建一个自定义模块,覆盖Mage_Catalog_Block_Category_View块并执行以下操作:

app/local/Yournamespace/Titlemodule/etc/config.xml

<config>
<!-- .... -->
    <global>
        <blocks>
            <titlemodule>
                <class>Yournamespace_Titlemodule_Block</class>
            </titlemodule>
            <catalog>
                <rewrite>
                    <product_view>Yournamespace_Titlemodule_Block_Category_View</product_view>
                </rewrite>
            </catalog>
        </blocks>
        <!-- ... -->
</config>

并在app/local/Yournamespace/Titlemodule/Block/Category/View.php

class Yournamespace_Titlemodule_Block_Category_View extends Mage_Catalog_Block_Category_View
{
    protected function _prepareLayout()
    {
        parent::_prepareLayout();
        $category  = $this->getCurrentCategory();  // if needed
        $headBlock = $this->getLayout()->getBlock('head');
        // custom logic here
        $headBlock->setTitle($this->__('New title, or none'));
        return $this;
    }
}

在操作页面上的任何块之前,它将为您提供运行自定义逻辑的大量可能性。