релиZ OpenCart

Кто подскажет как сделать два разных header? Или два разных диза на разные страницы?
получить из шаблона роут (можно из шаблона, можно из контроллера и передать в шаблон так правильнее) и в зависимости от роута менять дизайн. Можно например в зависимости от роута добавить отдельный css класс напр. в тег body после чего в css прописать что-то типа:
.header {
background: такой-то
}
.new_design .header {
background: какой-то другой
}
 
получить из шаблона роут (можно из шаблона, можно из контроллера и передать в шаблон так правильнее) и в зависимости от роута менять дизайн. Можно например в зависимости от роута добавить отдельный css класс напр. в тег body после чего в css прописать что-то типа:
.header {
background: такой-то
}
.new_design .header {
background: какой-то другой
}

Подробнее можете объяснить? С контроллером я понял. Дальше... мрак. Ответ наилучший мне дали, через мультимагазин на форуме опенкарт
 
Подробнее можете объяснить? С контроллером я понял. Дальше... мрак. Ответ наилучший мне дали, через мультимагазин на форуме опенкарт
ага, создавать мультимагазин для того, чтобы изменить фон шапки это конечно наилучший вариант))))


Что конкретно вам не ясно?
получить текущий роут можно так:
$this->request->get['route']
дальше в зависимости от результата делает то что нужно.
 
Для просмотра ссылки Войди или Зарегистрируйся
Для меня Php по большому счету филькина грамота. Не сложилось. Есть проект который не могу доделать только по причине не готовой шапки, т.е. не могу сделать шапку для внутренних страниц. Для главной все ок. Вот.

Можете подсказать, что на что и где заменить изменить?
 
Для просмотра ссылки Войди или Зарегистрируйся
Для меня Php по большому счету филькина грамота. Не сложилось. Есть проект который не могу доделать только по причине не готовой шапки, т.е. не могу сделать шапку для внутренних страниц. Для главной все ок. Вот.

Можете подсказать, что на что и где заменить изменить?
откройте файл catalog/view/default(или название вашей темы)/template/common/header.tpl
и замените строчку
<body>
на, например
PHP:
<body class="<?php echo isset($this->request->get['route']) ? str_replace('/', '-', $this->request->get['route']) : 'common-home'; ?>" >
тогда у вас на главной странице в body будет class="common-home", на странице категории class="product-category", в корзине class="checkout-cart" итд
 
...и соответственно в css правим под свои нужды. Так?
 
а не логичнее в \catalog\controller\common\header.php определить другой файл шаблона вместо
PHP:
$this->template = $this->config->get('config_template') . '/template/common/header.tpl';
и разрендерить именно его. Имхо это гибче.
 
а не логичнее в \catalog\controller\common\header.php определить другой файл шаблона вместо
PHP:
$this->template = $this->config->get('config_template') . '/template/common/header.tpl';
и разрендерить именно его. Имхо это гибче.
Если нужно очень сильно менять шапку, например менять структуру html и одним css не обойтись то да, такой способ лучше подходит. Плюс это более правильно с позиции MVC - вся логика в контроллере.
Но если нужно просто поменять какую-то мелочь, например фон, то мой способ более простой (все делается всего одной строчкой кода) + в моем способе можно менять не только шапку, а и любой элемент на любой странице (например левую колонку или футер), так как css с названием страницы будет создаваться для каждой страницы. В вашем же способе для изменения например футера придется дополнительно еще править контроллер футера, для изменения левой колонки - контроллер левой колонки итд.
 
В вашем же способе для изменения например футера придется дополнительно еще править контроллер футера, для изменения левой колонки - контроллер левой колонки итд.
согласен, насчет мелких правок, хотя, добавлю, что в моем варианте можно использовать и ваш способ, т.е. для всех не титульных (нужных) страниц ввести класс CSS и т.д.
 
Назад
Сверху