Совет по Joomla: метод debug() для отладки лейаутов

В Joomla есть понятие layout. Это кусочек вёрстки, который можно многажды использовать в любом месте сайта: как в панели администратора, так и во фронтенде. Можно рассматривать лейауты как оторванные от контекста элементы дизайна. Находятся они в папке layouts в корне сайта. Также, в случае с модулями они могут находиться в папке tmpl модуля. А в случае с плагинами - в tmpl плагина.
Их можно переопределять в шаблонах, в чём и заключается одна из главных фишек Joomla. Лейауты чаще всего рендерятся с помощью классов LayoutHelper или напрямую FileLayout. Писал о них ранее тут и тут.
А вот как увидеть какой именно файл переопределения используется? Сколько их вообще есть и по каким путям идёт поиск макетов? Для этого есть метод debug() (и у LayoutHelper и у FileLayout).
<?php /** * Method to render a layout with debug info * * @param string $layoutFile Dot separated путь к файлу относитеьлно basePath * @param mixed $displayData Объект с данными для рендера * @param string $basePath Base path, где будет поиск файлов лейаутов * @param mixed $options Дополнительные опции для FileLayout * * @return string * * @since 3.5 */ public static function debug($layoutFile, $displayData = null, $basePath = '', $options = null) { // Так проще показать параметры метода. }
То есть мы в можем проверить следующим образом:
<?php /** * Получаем параметры баннера */ $wt_custom_menu_item_banner = $menu->getParams()->get('wt_custom_menu_item_banner'); echo \Joomla\CMS\Layout\LayoutHelper::debug( ($wt_custom_menu_item_banner?->pluginlayout ?? 'default'), ['wt_custom_menu_item_banner' => $wt_custom_menu_item_banner], JPATH_SITE.'/plugins/system/wt_custom_menu_item_banner/tmpl' );
И увидим результат как на скриншоте в начале поста.
