gpt4 book ai didi

php - Magento 自定义布局 local.xml 不适用于自定义模块输出页面

转载 作者:可可西里 更新时间:2023-11-01 00:09:39 26 4
gpt4 key购买 nike

我正在同时开发一个 Magento 自定义模块和一个 Magento 自定义主题,但我遇到了一些让我发疯的问题!!!(附注:Magento 1.7.0.2)

我的模块和主题结构如下:

app
-local
-MyNameSpace
-MyPackageName
-Block
-controllers
-etc
-Helper
-Model
-sql

design
-frontend
-default
-myCustomTheme
-etc
-layout
-template

我的 config.xml(放在 MyPackageName/etc 上):

<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Namespace_PackageName>
<version>0.1.0</version>
</Namespace_PackageName>
</modules>

<frontend>
<routers>
<Namespace_PackageName>
<use>standard</use>
<args>
<module>Namespace_PackageName</module>
<frontName>packagename</frontName>
</args>
</Namespace_PackageName>
</routers>
<layout>
<updates>
<namespace_packagename>
<file>myCustomTheme/layout/local.xml</file>
</namespace_packagename>
</updates>
</layout>
</frontend>

<global>
<blocks>
<namespace_packagename>
<class>Namespace_PackageName_Block</class>
</namespace_packagename>
</blocks>
</global>
</config>

我想在我的自定义模块页面上应用我的一些自定义主题皮肤。即:对于我的 Controller ,我们将其称为 ExampleController 和 exampleAction() 操作方法...此页面布局中的更改应该由 local.xml 中的标记包装,对吗?这是行不通的!

关键是,访问 URL“mysite.com/packagename/example/example”并使用 layoutViewer 模块查看句柄,我可以看到 packagename_example_example 作为句柄,但我无法自定义它,因为它在 local.xml 中没有被识别! Magento 快把我逼疯了,有人知道我做错了什么吗?

提前致谢:)

编辑

当我将我的自定义模板和 local.xml 文件放在基本目录中时,它工作正常!!我得到这样的东西:

  • 基本文件夹中的自定义模板,自定义主题文件夹中的 local.xml - 不工作
  • 自定义主题文件夹中的自定义模板,自定义主题文件夹中的 local.xml - 不工作
  • 基本文件夹中的自定义模板,基本文件夹中的 local.xml - 工作正常!
  • 自定义主题文件夹中的自定义模板,基本文件夹中的 local.xml - 不工作

有人知道这可能是什么原因吗? Magento 无法识别我的自定义文件夹,只有当我将它们放在 Magento Core 所在的基本目录中时。

最佳答案

您在这里混淆了一些概念。

首先,Magento 将始终在当前配置的主题层次结构中查找名为local.xml 的文件。

design/frontend/default/[CURRENT THEME]/layout/local.xml
design/frontend/default/default/layout/local.xml
design/frontend/base/myCustomTheme/layout/local.xml

这用于无模块布局自定义。所以不要将文件命名为 local.xml,它只会造成困惑。

其次,当您在 config.xml 中为模块指定自定义布局 XML 文件时,路径应该来自布局文件夹的基础

<!-- BAD -->
<file>myCustomTheme/layout/local.xml</file>

<!-- GOOD -->
<file>my-customer-file.xml</file>

您可以通过在您的 Magento 版本中找到以下行来获取 Magento 使用的所有 XML 文件的路径列表

#File: app/code/core/Mage/Core/Model/Layout/Update.php
$fileStr = file_get_contents($filename);

并添加一些调试代码

var_dump($filename);
$fileStr = file_get_contents($filename);

最后,根据您的更新,您似乎没有将 Magento 设置为使用您的自定义主题。确保主题名称设置为

System -> Configuration -> Design -> Themes

关于php - Magento 自定义布局 local.xml 不适用于自定义模块输出页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16549769/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com