Переопределение расположения Magento!

Я довольно плохо знаком с Magento, поэтому простите мне за мой глупый вопрос! Поскольку я понимаю, что целое понятие Magento является основой при переопределении основных компонентов, которые это, доступны с в Magento.

Таким образом на основе моего понимания я решил обновить расположение onepage контроля в Magento. Я создал свое собственное расположение и в наборе файла конфигурации, что мое расположение обновляет расположение модуля контроля. Но проблема, это, на самом деле не обновляет основное расположение, это заменяет его сам основным расположением! Это должно быть действием как это или является мной неправильно?!

10
задан Farid 29 May 2010 в 07:11
поделиться

2 ответа

Фактически, узел в вашем файле config.xml не выполняет «обновление». На самом деле, я думаю, вы сделали это в своем config.xml:

<config>
    <frontend>
        <layout>
             <updates>
                  <checkout>
                        <file>mylayout.xml</file>
                  </checkout>
             </updates>
        </layout>
    </frontend>
</config>

и внесли изменения в mylayout.xml.

Фактически, вы должны сделать:

<config>
    <frontend>
        <layout>
             <updates>
                  <mymodule>
                        <file>mylayout.xml</file>
                  </mymodule>
             </updates>
        </layout>
    </frontend>
</config>

А затем, в mylayout.xml:

<checkout_cart_index> <!-- this corresponds to the section where you want to add your block (or modify an existing block -->
       <reference name="content">
            <reference name="checkout.cart">
                <block type="mymodule/myblock" name="checkout.mymodule.myblock"></block>
            </reference>
        </reference>
</checkout_cart_index>

Посмотрев на мой код и сравнив файлы друг с другом, вы лучше поймете, как это работает.

На самом деле, не забывайте, что все файлы xml объединены в magento. Таким образом, все узлы во всех файлах конфигурации, соблюдая тот же порядок, будут объединены.

Например, в нашем случае файлы config.xml Magento будут объединены, и в результате получится ОДИН файл, содержащий:

<config>
<!-- some nodes... -->
<!-- some nodes... -->
<!-- some nodes... -->
    <frontend>
        <layout>
             <updates>
                  <mymodule>
                        <file>mylayout.xml</file>
                  </mymodule>
                  <checkout> <!-- this is the node from the config.xml of the Checkout Module-->
                        <file>checkout.xml</file>
                  </checkout>
                  <!-- some layout updates nodes from other config files... -->
             </updates>
        </layout>
    </frontend>
<!-- some nodes... -->
<!-- some nodes... -->
</config>

Если вы заменили на < checkout> получившийся файл выглядел бы так:

<config>
<!-- some nodes... -->
<!-- some nodes... -->
<!-- some nodes... -->
    <frontend>
        <layout>
             <updates>
                  <checkout>
                        <file>mylayout.xml</file>
                  </checkout>
                  <!-- some layout updates nodes from other config files... -->
             </updates>
        </layout>
    </frontend>
<!-- some nodes... -->
<!-- some nodes... -->
</config>

Обратите внимание на mylayout.xml. Это причина того, почему исходный файл макета полностью заменен вашим собственным макетом :)

Надеюсь, это понятно, мне было бы легче объяснить по-французски;)

Hugues.

19
ответ дан 3 December 2019 в 19:32
поделиться

Я думаю, это зависит от того, как вы назовете свой макет. Если вы назвали его checkout.xml, я думаю, он заменит себя базовым макетом. Если вы выберете другое имя, я думаю, что оно должно переопределить только указанные вами части. РЕДАКТИРОВАТЬ: не забудьте очистить кеш. И, кстати, как узнать, что файл xml действительно заменен? Лучший способ узнать об этом - проверить кеш после его регенерации.

1
ответ дан 3 December 2019 в 19:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: