Я хочу изменить часть файла checkout.xml (этот файл находится в основной папке-макете). Я создаю собственное расширение и ссылку на свой собственный layout-xml-File в моем файле config.xml.Magento: переопределить только часть макета xml-файла
<layout>
<updates>
<checkout>
<file>mymodule_checkout.xml</file>
</checkout>
</updates>
</layout>
Там нет никаких проблем, когда я скопировать весь файл checkout.xml и сохранить его как mymodule_checkout.xml. Но я только хочу, чтобы переопределить небольшую часть этого большого файла между
<reference name="content">
и
</reference>
В этом случае, когда я пишу только те части, которые мне были нужны, Magento только читать мой файл с этим частей. Так что magento не получает оставшиеся части оригинального checkout.xml.
Возможно ли изменить только часть основного макета xml-файла без копирования всего файла или изменения ядра.
Кодекс mymodule.xml выглядит следующим образом:
<layout version="0.1.0">
<checkout_onepage_index translate="label">
<reference name="content">
<block type="checkout/onepage" name="checkout.onepage" template="checkout/onepage.phtml">
<block type="checkout/onepage_login" name="checkout.onepage.login" as="login" template="checkout/onepage/login.phtml">
<block type="page/html_wrapper" name="checkout.onepage.login.before" as="login_before" translate="label">
<label>Login/Registration Before</label>
<action method="setMayBeInvisible">
<value>1</value>
</action>
</block>
<block type="checkout/onepage_billing" name="checkout.onepage.billing" as="billing" template="checkout/onepage/billing.phtml"/>
<block type="checkout/onepage_shipping" name="checkout.onepage.shipping" as="shipping" template="checkout/onepage/shipping.phtml"/>
</block>
<block type="checkout/onepage_shipping_method" name="checkout.onepage.shipping_method" as="shipping_method" template="checkout/onepage/shipping_method.phtml">
<block type="checkout/onepage_shipping_method_available" name="checkout.onepage.shipping_method.available" as="available" template="checkout/onepage/shipping_method/available.phtml"/>
<block type="checkout/onepage_shipping_method_additional" name="checkout.onepage.shipping_method.additional" as="additional" template="checkout/onepage/shipping_method/additional.phtml"/>
</block>
<block type="checkout/onepage_payment" name="checkout.onepage.payment" as="payment" template="checkout/onepage/payment.phtml">
<block type="checkout/onepage_payment_methods" name="checkout.payment.methods" as="methods" template="checkout/onepage/payment/methods.phtml">
<action method="setMethodFormTemplate">
<method>purchaseorder</method>
<template>payment/form/purchaseorder.phtml</template>
</action>
</block>
</block>
<block type="checkout/onepage_review" name="checkout.onepage.review" as="review" template="checkout/onepage/review.phtml"/>
</block>
</reference>
</checkout_onepage_index>
</layout>
Вот часть мне нужно. В этом случае magento принимает только этот код, а не оставшийся код основного xml-файла.
Я отправляю код в свой вопрос – Marco
Спасибо за обновление. Код, который вы опубликовали, кажется прекрасным, за исключением закрытого блока на неправильной странице. Я не знаю, было ли это намерение, но ваши разделы выставления счетов и доставки в вышеуказанном коде назначены на страницу входа в систему. Эти два объявления, 'checkout.onepage.billing' и' checkout.onepage.shipping' должны появиться * после *. Можете ли вы рассказать мне, что не хватает в одной странице с вашим замененным кодом, по сравнению с тем, что есть с кодом по умолчанию? Возможно, вы также можете указать URL-адрес страницы, для иллюстрации? Благодаря! – WildWorx
Предложен блок биллинга и доставки в этом положении в качестве дочернего элемента блока входа. Это те изменения, которые мне нужны. Отсутствует все остальное из одной страницы. Magento получает только мой код. – Marco