在尝试调试了几个小时后,我没有想法并希望得到一些澄清(我想我在某些时候误解了一个概念)。
背景故事:一些基本类别需要一个“概览页面”,它应该从子类别和产品中自动生成。所以我的方法是为每个基本类别添加一个子类别,并创建一个自定义页面布局,用于所有这些子类别。对于我的客户来说,这在 Magento 后端很容易管理,因为他只需要在一个下拉菜单中更改值。所以我创建了一个简单的模块来定义新的页面布局。在后端,我也可以选择这个。
模块配置:
<?xml version="1.0"?>
<config>
<modules>
<Company_Layouts>
<version>0.1.0</version>
</Company_Layouts>
</modules>
<global>
<page>
<layouts>
<company_category_overview module="page" translate="label">
<label>Kategorie-Übersicht</label>
<template>page/1column.phtml</template>
<layout_handle>company_category_overview</layout_handle>
</company_category_overview>
</layouts>
</page>
</global>
<frontend>
<layout>
<updates>
<company_layouts>
<file>company_layouts.xml</file>
</company_layouts>
</updates>
</layout>
</frontend>
</config>
由于这些特殊的概述页面需要一些布局更改,我希望在特定布局文件 ( company_layouts.xml
) 中引用布局......我的逻辑在这里离开了我:
我<layout_handle>company_category_overview</layout_handle>
希望定义一个句柄,仅当使用此特定页面模板时,我才能使用它来更改布局。事实并非如此。我在句柄内的布局更新company_category_overview
被忽略了。
深入挖掘后,我意识到,这似乎不是我的代码,而更像是一个普遍问题。在旧的 Magento 1.4 安装中,页面布局句柄被带到所有站点,例如page_one_column
. 在 Magento 1.7 和(我现在使用的)1.8 中,这只是在主页上的情况。我正在使用 Commerce Bug 进行调试。我刚刚尝试了新的 1.7 和新的 1.8 安装。
这是我不理解的一些概念还是只是一个简单的错误?
另外,我知道可以在后端实现布局更新,但这只是我的最后一个选择,因为我觉得将它放在单独的文件中会更干净,而无需复制/粘贴这些东西。