Некоторые из файлов контроллера, которые вы видите в папке catalog / controller / common, являются «контейнерами чего-то еще».Я объясню вам, что происходит, например, в файле home.php
Если вы откроете этот файл, вы увидите только несколько строк кода, некоторые из них выглядят так:
$ data ['column_left'] = $ this-> load-> controller ('common / column_left') ;
С этой единственной строкой кода Opencart загружает все модули, назначенные столбцу слева отДомашняя страница (от администратора, перейдите на страницу Дизайн -> макеты -> Главная ).
$ data ['column_left'] - это большой объект со списком модулей внутри:
( Это простопсевдокод, чтобы дать вам представление о том, как работают вещи ):
$data['column_left'] {
module 1 {...} controller + template
module 2 {...} controller + template
module 3 {...} controller + template
}
каждый модуль имеет свой собственный контроллер + (модель) + шаблон
Чтобы быстро получить контроллер, который отображает ваш шаблон, сначала вы должны взглянуть на макет домашней страницы (из панели администратора).Вы увидите четыре основных раздела: содержимое вверху , содержимое внизу , столбец слева , столбец справа".
Проверьте на своей домашней странице, где распечатывается ваш контент. Если, например, он находится в левом столбце, модуль, отображающий файл tpl, является одним из модулей, перечисленных в левом столбце вашего (Admin) домашнего макета.
Обычно имен модулей достаточно, чтобы узнать, какие модули (затем какие контроллеры) отображают tpl (обычно вам нужно только заглянуть в каталог catalog / controller / extension / module, чтобы найти имя файла, совпадающее с именем модуля).на странице макета).
Метод, который я описал вам, работает в большинстве случаев без необходимости использования какого-либо инструмента отладки.
Я встречал сторонние расширения, написанные как кубики Рубика.В случаях, когда вы должны использовать debug_backtrace () .
Эта функция, особенно на больших платформах, может выводить тонны данных.t функция, я советую вам:
найти, в каком разделе страницы отображается содержимое ( верх сверху , низ снизу , столбец слева , столбец справа ), затем откройте файл каталог / контроллер / общий / [ your_section ]. Php
скопируйте следующий код внизу этого файла (я вставляю вам модифицированную версию debug_backtrace (), она форматирует вывод, чтобы вы могли легко прочитать ее из браузера):
// PHP < 5.3.6
foreach (debug_backtrace() as $trace) {
echo sprintf("\n%s:%s %s::%s", (isset($trace['file'])? $trace['file'] : '') , (isset($trace['line'])? $trace['line'] : ''), (isset($trace['class'])? $trace['class'] : ''), (isset($trace['function'])? $trace['function'] : ''));
}
die;
// PHP >= 5.3.6
debug_print_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
die;