我已设法覆盖magento的默认联系我们表单,其他字段和功能似乎有效。
问题是当我在magento中禁用我的模块时,会显示我的自定义联系人表单而不是默认值。
我的假设是,只有我的模块处于活动状态,我的自定义(操作方法和模板)才会可用/显示。
我认为我的问题与覆盖布局,块,模板有关。
一些建议会很好。
这是我的代码:
应用程序/代码/本地/ MyCompany的/ ContactsExtension的/ etc / config.xml中
<config>
<modules>
<MyCompany_ContactsExtension>
<version>0.1.0</version>
</MyCompany_ContactsExtension>
</modules>
<frontend>
<routers>
<contacts>
<args>
<modules>
<MyCompany_ContactsExtension before="Mage_Contacts">MyCompany_ContactsExtension</MyCompany_ContactsExtension>
</modules>
</args>
</contacts>
</routers>
</frontend>
<global>
<blocks>
<contactsextension>
<class>MyCompany_ContactsExtension_Block</class>
</contactsextension>
</blocks>
<helpers>
<contactsextension>
<class>MyCompany_ContactsExtension_Helper</class>
</contactsextension>
</helpers>
</global>
</config>
基本上,我复制了默认的contacts.xml并添加了我的更改。我想我可能没有正确更新它。
应用程序/设计/前端/企业/ mytheme的/布局/ contactsextension.xml
<layout version="0.1.0">
<default>
<reference name="footer_links">
<action method="addLink" translate="label title" module="contacts" ifconfig="contacts/contacts/enabled"><label>Contact Us</label><url>contacts</url><title>Contact Us</title><prepare>true</prepare></action>
</reference>
</default>
<contacts_index_index translate="label">
<label>Contact Us Form</label>
<reference name="head">
<action method="setTitle" translate="title" module="contacts"><title>Contact Us</title></action>
</reference>
<reference name="root">
<action method="setTemplate"><template>page/2columns-right.phtml</template></action>
<action method="setHeaderTitle" translate="title" module="contacts"><title>Contact Us</title></action>
</reference>
<reference name="content">
<block type="core/template" name="contactForm" template="contactsextension/form.phtml">
<block type="contactsextension/additionalfield" name="contacts.addfields" as="addfields" template="contactsextension/additionalfield.phtml" />
</block>
</reference>
</contacts_index_index>
</layout>
谢谢, duniya。
答案 0 :(得分:1)
有两种方法可以“禁用”扩展名,我将单词disable设置为引号,因为只有一种禁用输出。根据您当前的禁用方式,请确保您也尝试其他方法。
要完全禁用扩展,请转到app / etc / modules / company_module.xml,将标签中的true更改为false:
<config>
<modules>
<company_module>
<active>true</active>
<codePool>local</codePool>
</company_module>
</modules>
答案 1 :(得分:1)
是的,你需要在<frontend>
部分的模块配置中定义你有这样的布局更新:
<layout>
<updates>
<uniquehandle>
<file>module_layout.xml</file>
</uniquehandle>
</updates>
</layout>
然后它会在您禁用模块时正常工作。否则,Magento会加载在主题
的布局文件夹中找到的所有布局更新