Методы отслеживания слияний 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, если я не получу ответа:)

 3
Author: Rick Buczynski, 2014-09-30

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));
} 
 3
Author: Fabian Blechschmidt, 2014-11-08 08:21:03

Решаю ответить на свой собственный вопрос. Это широко и субъективно, но я надеялся, что существует какая-то серебряная пуля, о которой знали все, кроме меня.

Поэтому мой ответ заключается в том, чтобы просто использовать общий набор методов отладки, уже установленных в сообществе, для отладки XML-макета, а не искать конкретный инструмент.

 0
Author: Rick Buczynski, 2014-11-08 21:04:10