Как определить все блоки и дочерние блоки, прикрепленные к дескриптору?
Есть ли способ определить, какие блоки прикреплены к дескриптору и/или какие дочерние блоки есть у блока?
3 answers
Чтобы получить все дескрипторы , см. mage_core_model_layout_update::Получить дескрипторы()
Например, внутри контроллера вы можете использовать его для отладки, например:
Zend_Debug::dump($this->getLayout()->getUpdate()->getHandles());
Примечание: используйте его после вызова loadLayout или loadLayoutUpdates
Чтобы все дети блока видели mage_core_block_abstract::getChild()без параметров Примечание: getChild() возвращает все дочерние блоки в качестве объекта, поэтому используется что-то вроде
Zend_Debug::dump(array_keys($block->getChild()))
И вы получаете массив с дочерним блоком псевдонимы
И если вы хотите узнать больше о блоке, используйте
Zend_Debug::dump($block->getChild($aliasName))
Попробуйте следующее бесплатное расширение, которое очень удобно при отладке: http://www.magentocommerce.com/magento-connect/magento-debug-8676.html
Я думаю, что мог бы найти ответ, и он довольно прост. Просто выполните поиск по имени дескриптора или блока из всех файлов в папке макета:)