Не парсинг макета XML в Magento - PullRequest
1 голос
/ 11 января 2010

Я слежу за книгой "Php Architects Guide to Programming Magento", где я пытаюсь включить функцию вознаграждений в magento.

Моя проблема в том, что файл rewardpoints.xml не анализируется. Что запускает Magento для анализа XML-файлов (обновлений) из папки Layout? Почему он не разбирает файл rewardpoints.xml? Я знаю, что это не анализ, потому что я оставил ошибку в XML-файле, и он не отображается

Вот файл rewardpoints.xml с ошибкой (закрывающий тег

rewardpoints / dashboard_points.phtml

Любое объяснение поможет. Благодарю вас Margots

Ответы [ 2 ]

8 голосов
/ 11 января 2010

Несколько быстрых догадок. Если это не сработает, дайте мне знать, и мы сможем попробовать другие вещи.

Сначала убедитесь, что вы сообщаете Magento, что макет существует. В конфигурации вашего модуля убедитесь, что существует следующий XML. Возможно, вам придется изменить значение с <frontend> на <adminhtml>, если вы в данный момент разрабатываете бэкэнд. Убедитесь, что файл макета находится в соответствующем каталоге макета (adminhtml или frontend).

<config>
    <frontend>
        <layout>
            <updates>
            <rewardpoints>
                <file>rewardpoints.xml</file>
            </rewardpoints>
            </updates>
        </layout>
    </frontend>
</config>

Затем убедитесь, что проблема не в кэшированном файле. Зайдите в вашу админ-панель и нажмите System > Cache Management. Либо обновите, либо отключите кеш для «Макетов». При разработке модуля часто помогает полностью отключить кэш, чтобы вы могли сразу увидеть свои изменения.

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

Надеюсь, это поможет.

Спасибо, Джо

0 голосов
/ 08 августа 2010

Я пытаюсь сделать то же самое, но макет работает, только если я помещаю в один из следующих каталогов:

app/design/frontend/base/defaut/layout/[MYMODULE].xml
app/design/frontend/[PACKAGE]/defaut/layout/[MYMODULE].xml

Я не хочу помещать это в первое, потому что я прочитал, что base / default должен оставаться неизменным, всегда. Я не хочу помещать это в последний, потому что это моя папка пакета темы, которая не является правильным местом для несвязанного модуля.

Я работаю 1.4.1.1. Где я должен положить этот файл?

РЕДАКТИРОВАТЬ: Получил ответ на # magento

<Groenleer> mattalexx: you should not modify wiles in app/design/frontend/base  i (personally) see no problems in adding XML files. Hence it is the only directory you can trust on is present on the user system.
<rooty> mattalexx: place it in base (or default if your still coding 1.3)
<mattalexx> rooty, 1.4.1.1
<rooty> it will bubble up
<mattalexx> I've heard I should completely not touch that folder, as if it were part of the core.
<rooty> well thats true if your writing a customer module
<rooty> but if its a community module your planning on releasing to everyone
<rooty> thats the place to put it in
<mattalexx> rooty, I like to write customer modules as if I am to be releasing it to the world later. Usually it means that they're more portable
<mattalexx> Hm, okay, that's great. Thanks rooty 
<Groenleer> then go with the base/default
<Groenleer> but don't change any existing files to make yours work.

TL; DR: использовать приложение / дизайн / внешний интерфейс / база / по умолчанию / макет / [MYMODULE] .xml

...