如何更改 magento 1.9 中类别页面的布局

how to change the layout of category page in magento1.9

我正在尝试通过管理面板更改 Magento 中类别页面的布局。是否根据需要进行了所有更改,如下图所示:

custom tab of deafult

在子类别中,我做了[自定义设计->使用父类别设置->是]

但问题是无论选择何种布局,更改都不会反映在前端。 this is the view of my frontend page 在 local.xml 中也添加了块。

   <?xml version="1.0"?>
<layout version="0.1.0">
<default>
</default>
<catalog_category_default>
  <reference name="root">
    <action method="setTemplate"><template>page/2columns-left.phtml</template></action>
  </reference>
</catalog_category_default>
</layout>

从你的问题中我可以看出,你想更改特定类别的页面布局。您可以使用后端面板本身实现这一点,而无需编写任何 xml.

要更改类别页面布局:

从“管理”菜单中,select目录 > 管理类别。

在类别树中,select 您要更改的类别级别。

在“自定义设计”选项卡上,将“页面布局”设置为“剩余 2 列”

单击“保存类别”按钮。

so in your screenshot this tab is open and set to 3 columns, you can change it to 2 columns.

我认为最好的方法是自己调试代码。您可以调试 Mage_Catalog_CategoryController->viewAction()。通常,一旦您为此类别自定义页面布局(1 列,2 列-左...),此页面布局将应用于根块。总之,在您的案例中,无论您在 catalog.xml

中设置什么,您在后端设置的自定义页面布局都是您类别页面的最终页面布局

您需要调试您的类别页面的自定义布局, public 函数 viewAction() {

  if ($category = $this->_initCatagory()) {
        $design = Mage::getSingleton('catalog/design');
        $settings = $design->getDesignSettings($category);
        //change start
        var_dump($settings->getPageLayout());exit;
        // change end

    ********

}

如果你没有得到你期望的,请挖掘功能 $design->getDesignSettings($category)。