Мне удалось переопределить формуляр по умолчанию для контакта с magento, с дополнительными полями и функциональностью, и, похоже, он работает.Проблемы с переопределением основного ядра magento свяжитесь с нами. Форма
Проблема заключается в том, что когда я отключу свой модуль в magento, моя настраиваемая форма контакта отображается, а не по умолчанию.
Мое предположение заключается в том, что только если мой модуль активен, тогда моя настройка (методы действий и шаблон) будет доступна/отображена.
Я думаю, что моя проблема связана с переопределением макета, блока, шаблона.
Некоторые советы были бы хорошими.
Вот мой код:
приложение/код/местные/MyCompany/ContactsExtension/и т.д./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.
Спасибо, имеет смысл. Я ранее пробовал это, когда нашел другое сообщение stackoverflow о layout.xml. Я добавил обновление макета, как вы сказали. Однако теперь, когда я загружаю страницу контакта в браузере, форма отображается дважды на странице. 2.если я отключу модуль в приложении/etc/modules/company_module.xml, он отобразит форму по умолчанию. Однако, если я отключу модуль в admin, он использует мою модифицированную форму. Есть идеи? Кроме того, что является лучшим способом переопределить макет xml. Должен ли я скопировать contacts.xml в мою тему и внести некоторые изменения. Есть ли какие-либо специальные теги, которые мне нужно использовать в скопированном файле? Приветствия. – user1136431
Я думаю, вам нужно удалить форму по умолчанию, используя директиву ' ', чтобы избежать дублирования. Во второй части вашего вопроса: отключить вывод модуля не отключает инструкции компоновки макета, поэтому вам нужно добавить дополнительную проверку для этого случая с помощью инструкции ifconfig. Некоторая проницательность здесь http://stackoverflow.com/questions/5596193/magento-xml-layouts-specify-value-for-ifconfig –
Zifius