Magento类别自定义设计页面布局不变

时间:2015-03-20 20:36:28

标签: magento enterprise

我已关闭缓存,但无论我在编辑管理员时做什么 - >目录 - >分类。然后单击自定义设计并编辑页面布局,并从1-3列进行布局。

没有任何变化显示出来。我已经针对默认网站和每个类别的特定网站尝试了此操作,没有反映前端的更新。我可以编辑自定义布局更新区域并使用类似:

   <reference name="root">
        <action method="setTemplate"><template>page/1column.phtml</template></action>
    </reference>

或者我可以编辑local.xml文件并强制所有类别成为特定的布局:

<catalog_category_default>
    <reference name="root">
        <action method="setTemplate"><template>page/1column.phtml</template></action>
    </reference>
</catalog_category_default>

<catalog_category_layered>
    <reference name="root">
        <action method="setTemplate"><template>page/1column.phtml</template></action>
    </reference>
</catalog_category_layered>

但是我需要页面布局选项才能工作。也许这与local.xml中的布局有关,它可以从左侧和右侧添加/删除东西?作为CMS页面区域中的注释,我可以成功更改页面布局。

3 个答案:

答案 0 :(得分:3)

我发现了这个问题。我依赖另一个主题,强制catalog_category_default总是呈现2列。这是因为更新句柄将应用的变量设置为1,忽略管理页面布局更改。

这是它正在做的事情:

<catalog_category_default>
    <update handle="page_two_columns_left"/>
    ...
</catalog_category_default>

所以我可以覆盖它的唯一方法是来自我自己的XML更新,但它仍然不允许我从管理员更新页面布局。

<catalog_category_default>
    <reference name="root">
        <action method="setTemplate"><template>page/1column.phtml</template></action>
    </reference>
</catalog_category_default>

所以解决方法是将应用变量设置为0。

<catalog_category_default>
    <reference name="root">
        <action method="setIsHandle"><applied>0</applied></action>
        <action method="setTemplate"><template>page/1column.phtml</template></action>
    </reference>
</catalog_category_default>

这让我可以使用类别管理自定义设计标签中的类别布局

我通过找到句柄并查看它设置的变量来找到它。所以这里是page_two_columns_left的定义:

<page_two_columns_left translate="label">
    <label>All Two-Column Layout Pages (Left Column)</label>
    <reference name="root">
        <action method="setTemplate"><template>page/2columns-left.phtml</template></action>
        <!-- Mark root page block that template is applied -->
        <action method="setIsHandle"><applied>1</applied></action>
        <action method="setLayoutCode"><name>two_columns_left</name></action>
    </reference>
</page_two_columns_left>

答案 1 :(得分:0)

不使用参考代码更改布局,而是在管理控制台中执行此操作:

  

转到类别/自定义设计

找到页面布局选择并使用向左或向右栏更改为2列。

答案 2 :(得分:0)

替代解决方案:

使用布局更新:

 <reference name="root">
            <action method="setTemplate"><template>page/2columns-left.phtml</template></action>
</reference>

这样,无论is_handle

如何,页面布局都会发生变化