opencart - Как вручную отобразить модуль внутри файла шаблона? - PullRequest
5 голосов
/ 11 января 2012

Допустим, я хочу отобразить специальный модуль на домашней странице в позиции, отличной от $ content_top, $ content_bottom, $ column_left или $ column_right.Как я могу это сделать?Если у вас есть некоторый опыт в этом, не могли бы вы дать мне несколько указателей?

Модуль будет отображаться в home.tpl, но я предполагаю, что мне нужно будет отредактировать файл контроллера home.php

1 Ответ

10 голосов
/ 13 января 2012

Для этого вам нужно будет отредактировать два файла

Во-первых, вам нужно будет отредактировать контроллер.В этом примере я собираюсь добавить специальные предложения на домашнюю страницу

Итак, откройте файл контроллера 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; ?> везде, где выхочу, чтобы модуль пошел

...