OpenCart - Как вручную отобразить модуль внутри файла шаблона?
Вопрос
Допустим, я хочу отобразить модуль Specials на домашней странице в положении, отличной от $ content_top, $ content_bottom, $ column_left или $ column_right. Как я могу это сделать? Если у вас есть какой -то опыт с этим, не могли бы вы дать мне несколько указателей?
Модуль будет отображаться в home.tpl, но я предполагаю, что мне нужно будет отредактировать файл контроллера home.php
Решение
Для этого вам нужно будет внести изменения в два файла
Во -первых, вам нужно будет отредактировать контроллер. В этом примере я собираюсь добавить специальные предложения на домашнюю страницу
Так что откройте файл контроллера catalog/controller/common/home.php
. Анкет Где -то перед этой линией $this->response->setOutput($this->render());
Добавьте следующее
$this->data['special_block'] = $module = $this->getChild('module/special', array(
'limit' => 5,
'image_width' => 80,
'image_height' => 80
));
Массив - это настройки для модуля. Обратите внимание, что макет, положение, статус и сортировка не включены, так как они здесь не имеют значения. Я также использовал special_block
В качестве уникального ключа для контента, чтобы избежать его противоречия с любыми другими элементами, которые могут потребовать рендеринга
Затем в вашем шаблоне вам просто нужно использовать <?php echo $special_block; ?>
Куда бы вы ни хотели, чтобы модуль ушел