Методы отслеживания слияний XML-макета [дубликат]
Существуют ли какие-либо инструменты или методы для определения переопределений/слияний/потенциальных конфликтов с XML-макетом в Magento?
Я думаю, что я ищу что-то вроде команды n98-magerun dev:module:rewrite:conflicts
.
Я использую модуль Layoutviewer Алана Шторма для ?showlayout=страница для отладки, но это дает мне только общий объединенный макет. Я также знаю, что я может echo
имена файлов по мере их загрузки и объединения в ядре, но мне не нравится подключать это каждый раз.
Мой вопрос возникает из-за случайного разочарования в отслеживании того, какой XML-файл макета из какого пакета или темы загружается, поскольку дескрипторы не всегда логически расположены.
ОБНОВЛЕНИЕ 2014-11-08:
В качестве примера (не реальная ситуация), предположим, мне нужно найти, где блок product.view.extra
настроен в XML-формате макета. Это заканчивается тем, что определяется на дескриптор extra_product_stuff
и вызывается через узел update
в дескрипторе PRODUCT_TYPE_simple
- все это содержится в файле somemodulelayout.xml
или другом файле с неоднозначным именем.
Допустим, чтобы еще больше заточить мои механизмы, файл дублируется, но немного изменен в другом пакете дизайна и в нескольких промежуточных темах.
Я загружаю страницу сведений о продукте и вижу "дополнительный" контент внизу страницы. Откуда это взялось? Я включаю подсказки по шаблону и нахожу блок и шаблон. Там есть начало. Я использую средство просмотра макетов Алана Шторма и вижу имя/псевдоним блока. Я начинаю grep
искать это имя в skin/frontend
и вижу несколько примеров. Я проверяю тот, который, по моему мнению, имеет отношение к моей текущей конфигурации дизайна. Теперь я готов изменить его.
Что я хочу сделать, так это упростить описанные выше шаги, чтобы отследить этот материал. Поэтому, возможно, я хотел бы увидеть, возможно, в функции подсказок по шаблону, XML-файл макета, ИЗ КОТОРОГО был определен и сгенерирован этот блок.
И, возможно, это отвечает моим собственный вопрос: Если для этого нет инструмента, я либо создаю его сам, либо продолжаю использовать обычные методы слежки. Я просто хотел услышать о ДРУГИХ техниках в этой области.
Закроется сегодня на #magestackday, если я не получу ответа:)
2 answers
Как описано на стр.55: http://theslidesareonline.de
Вы можете прокомментировать следующее, чтобы получить больше результатов отладки.
# …/core/Mage/Core/Model/Layout.php:450
…
} elseif (isset($this->_blocks[$name]) && Mage::getIsDeveloperMode()) {
//Mage::throwException(Mage::helper('core')->__('Block with name "%s" already exists', $name));
}
Решаю ответить на свой собственный вопрос. Это широко и субъективно, но я надеялся, что существует какая-то серебряная пуля, о которой знали все, кроме меня.
Поэтому мой ответ заключается в том, чтобы просто использовать общий набор методов отладки, уже установленных в сообществе, для отладки XML-макета, а не искать конкретный инструмент.