【问题标题】:Local custom module not recognized in magento 1.9.1.0magento 1.9.1.0 中无法识别本地自定义模块
【发布时间】:2015-07-11 00:36:45
【问题描述】:

我在代码/本地代码池文件夹中为 magento 自定义列布局、magento 自定义价格和 magento 自定义文件扩展名(这个扩展名应该允许任何视频文件)创建了三个不同的模块。

我遵循了代码/核心代码池中每个模块的文件夹结构。但是,这些模块无法识别。

为了测试我的代码是否正确,我将 magento 自定义列布局 config.xml 代码粘贴到 app/code/core/Mage/Page/etc 以更新它并且它可以工作。

问题: 我的代码如何在代码/本地代码池中工作?

这是我的工作 magento 自定义列布局 config.xml 文件的一部分。

<layouts>
    <empty module="page" translate="label">
        <label>Empty</label>
        <template>page/empty.phtml</template>
        <layout_handle>page_empty</layout_handle>
    </empty>
    <one_column module="page" translate="label">
        <label>1 column</label>
        <template>page/1column.phtml</template>
        <layout_handle>page_one_column</layout_handle>
        <is_default>1</is_default>
    </one_column>
    <full_column module="page" translate="label">
        <label>Full 1 column</label>
        <template>page/full1column.phtml</template>
        <layout_handle>page_one_column_full</layout_handle>
        <is_default>1</is_default>
    </full_column>
    <two_columns_left module="page" translate="label">
        <label>2 columns with left bar</label>
        <template>page/2columns-left.phtml</template>
        <layout_handle>page_two_columns_left</layout_handle>
    </two_columns_left>
    <two_columns_right module="page" translate="label">
        <label>2 columns with right bar</label>
        <template>page/2columns-right.phtml</template>
        <layout_handle>page_two_columns_right</layout_handle>
    </two_columns_right>
    <three_columns module="page" translate="label">
        <label>3 columns</label>
        <template>page/3columns.phtml</template>
        <layout_handle>page_three_columns</layout_handle>
    </three_columns>
</layouts>

谢谢!

【问题讨论】:

  • IIRC app/code/core/Mage/Page/etc/config.xml 有特殊的处理规则,所以你不能那样测试它。在任何情况下,您都不应该更改这些核心文件夹中的数据,即使是为了测试也不应该。所以我想说它只会对 magento 问题做出不好的描述,对解决您的问题没有帮助。
  • 您有什么理由不考虑使用 etc/theme.xml 而不是 ect/config.xml 进行布局更新?相关:Layout updates in theme.xml (on the Magento Stackexchange site)

标签: php html xml magento content-management-system


【解决方案1】:

Config.xml 只是模块的配置文件,它不用于(直接)布局更新。为此,您必须为每个模块创建一个 config.xml 文件,并在此文件中创建 XML 指令,通过 XML 节点“更新”,对 magento 说“这是此模块的布局文件的路径” :

...
<frontend>
    ...
    <layout>
        <updates>
            <(modulename)>
                <file>(name_of_layout_file.xml)</
            </(modulename)>
        </updates>
    </layout>
</frontend>

发件人:Frontend (Magento - Wiki - config.xml Reference)

现在,您必须在模板的布局文件夹中创建该文件,将更新全局布局所需的所有代码放入其中。

更多信息:

【讨论】:

    【解决方案2】:

    对不起,我发布这个问题已经有一段时间了。过去几周我一直在度假,所以我没有时间访问此页面。

    我已经想出了解决这类问题的办法。

    开发人员将创建的每个自定义模块都应首先将其注册到 app/etc/modules 文件夹。

    第1步:我按照app/code/core中的文件夹结构,放到app/code/local。结构如下 app/code/local/Mage/Page/etc/config.xml

    第 2 步:注册我的新模块。我在 app/etc/modules 中创建了一个 .xml 文件并将其命名为我想要的任何名称。

    第 3 步:我打开我创建的 .xml 文件并添加这段代码

    <?xml version="1.0"?>
    <config>
            <modules>
                <Mage_Page><!-- <Mage_Page> tag came from two folders. Mage is my namespace from app/code/local/Mage and Page is my module name from app/code/local/Mage/Page. -->
                    <active>true</active>
                    <codePool>local</codePool>
                </Mage_Page>
            </modules>
    </config>
    

    第 4 步:保存您创建/更新的所有文件。

    第 5 步:我刷新管理页面并检查我的工作是否正常,是的,它正在工作。

    由于缺乏开发 magento 的知识和经验,这花了我一段时间。不过谢谢你的帮助。

    谢谢!

    【讨论】:

      猜你喜欢
      • 2016-01-30
      • 1970-01-01
      • 2012-08-04
      • 2015-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多