Макеты Magento XML - before = "-" не работают в 1.4.2 - PullRequest
3 голосов
/ 28 декабря 2010

У меня есть несколько пользовательских расширений.Они показаны на правой боковой панели, и ранее я отображал их прямо под корзиной боковой панели, которая отображается сверху, так как в файле checkout.xml указано before = "-" .

После обновления до 1.4.2 мои пользовательские расширения теперь отображаются в верхней части боковой панели.Я добавил after = "cart_sidebar" к макетам расширений xml, но они все равно появляются над корзиной боковой панели независимо от того.

Изменяя порядок расширений, они перемещаются только между собой,всегда вверху - например, если я добавлю after = "-" к любому из них, они просто появятся после других пользовательских расширений, но все еще вверху над корзиной и другими элементами боковой панели по умолчанию.

Кто-нибудь знает, почему?

ОБНОВЛЕНИЕ:

Я включил «Подсказки к шаблонам пути», а для моих пользовательских блоков боковой панели - красныйтекст, показывающий пути к шаблонам, появляется далее вниз по боковой панели, где должен отображаться блок, но фактический HTML-код блока все еще отображается в верхней части боковой панели!

alt text

1 Ответ

1 голос
/ 29 декабря 2010

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

  • Все модули и расширения Magento загружаются в таком порядке, что они соответствуют их требованиям раздела объявлений (xmls в app / etc/ модули /).Таким образом, модули, которые зависят от других модулей, загружаются только после них.
  • Если модули равны по своим потребностям, то приоритет отдается пространству имен 'Mage', а затем пространствам имен пользовательских модулей.Внутренние пространства имен имеют приоритет в алфавитном порядке.
  • Конфигурация модуля создается во время загрузки модуля.Таким образом, результат выполнения инструкций «до» и «после» зависит от блоков, уже добавленных ранее загруженными модулями.Т.е. когда некоторый блок имеет инструкцию 'before = "-"' - он сначала размещает блок, но позже другие блоки из следующих модулей могут использовать свои инструкции для присоединения перед этим блоком.

Теперь давайте вернемся ктвой случай.У вашей проблемы может быть несколько причин, в значительной степени зависящих от вашей конфигурации Magento.

Прежде всего, я рекомендую

  1. Отключить весь кэш - чтобы вы сразу увидели все изменения
  2. Отключите все ваши расширения и протестируйте только один из них
  3. Включите тему и оболочку Magento CE по умолчанию (пакет «default»)

Затем проверьте следующие случаи:

  1. Возможно, ваша схема макета изменена, и ваше расширение не ссылается на правильный блок (такой же, как использует "cart_sidebar"), чтобы вставить self.
  2. Возможно, какое-то расширение удаляет оригинальный блок cart_sidebar изатем помещает его последним в очередь блоков.
  3. Возможно, некоторые правила CSS или JS размещают блок только визуально перед другими блоками (проверьте порядок блоков в исходном html-источнике)
  4. Возможно, какое-то расширение модифицирует композицию макетаправила.Попробуйте включить только один из них.Затем попробуйте включить только другой и проверьте результат.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...