При кажкой категории изменение в шаблоне

CoderW

Гуру форума
Регистрация
17 Янв 2013
Сообщения
132
Реакции
59
Всем день добрый,

у меня вопрос:
Можно ли сделать так, чтобы в при выборе категории менялся допустим цвет в шаблоне или менялся стиль. Если возможно сделать так, чтобы каждая категория имела свой шаблон или отличия.

Задумка в том, чтобы допустим при продаже телевизоров, кнопки и рамочки в шаблоне были цвета синего (допустим) а при выборе наушников кнопки и рабочки были другого цвета.

Как это реализовать если конечно можно?
 
Надо в "Дизайне" добавить новую "Схему"-макет. При создании категории, во вкладке "Дизайн", указать эту схему.
 
Для страниц категорий можно сделать разные шаблоны. но без сторонних методов не обойтись никак.
сам реализовывал.
сейчас поищу ссылочку для модификации.

читайте здесь: Для просмотра ссылки Войди или Зарегистрируйся
 
Насколько я понимаю, если я захочу сделать для всех товаров в категоии иной шаблон, то для каждого товара придется отдельный макет делать? Насколько мне позволили понять мои скудные знания английского (автоматический перевод ясности не добавляет) мы в контроллере показа товара или категории к имени шаблона добавляем идентификатор, и если не находится такого шаблона, то используется стандартный для вашей темы, так? выходит для каждого товара отдельный макет (для тех для которых не хочу использовать стандартный).
Если я все правильно понимаю, то может можно вместо айди товара, дописывать айди категории, чтоб контроллер искал шаблон "product_(идентификатор категории).tpl"? тогда скажем для всех товаров категории с идентификатором 15, можно создать шаблон "product_15.tpl".
Подскажите нубу как получить айди родительской категории "$category_id" в контроллере товара (product.php)? я проверил эта колбаса работает.:)
 
Код:
$product_cat = $this->model_catalog_product->getCategories($product_id);
 
Сделал так:
Код:
$this->load->model('catalog/category');   
       
        if (isset($this->request->get['path'])) {
            $path = '';
               
            foreach (explode('_', $this->request->get['path']) as $path_id) {
                if (!$path) {
                    $path = $path_id;
                } else {
                    $path .= '_' . $path_id;
                }
               
                $category_info = $this->model_catalog_category->getCategory($path_id);
               
                if ($category_info) {
                    $this->data['breadcrumbs'][] = array(
                        'text'      => $category_info['name'],
                        'href'      => $this->url->link('product/category', 'path=' . $path),
                        'separator' => $this->language->get('text_separator')
                    );
                }
            }
        }
заменил на
Код:
$this->load->model('catalog/category');   
       
        if (isset($this->request->get['path'])) {
            $path = '';
       
            $parts = explode('_', (string)$this->request->get['path']);
       
            foreach ($parts as $path_id) {
                if (!$path) {
                    $path = $path_id;
                } else {
                    $path .= '_' . $path_id;
                }
                                   
                $category_info = $this->model_catalog_category->getCategory($path_id);
               
                if ($category_info) {
                      $this->data['breadcrumbs'][] = array(
                          'text'      => $category_info['name'],
                        'href'      => $this->url->link('product/category', 'path=' . $path),
                        'separator' => $this->language->get('text_separator')
                    );
                }
            }       
       
            $category_id = array_pop($parts);
        } else {
            $category_id = 0;
        }
а так же:
Код:
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/product.tpl')) {
    $this->template = $this->config->get('config_template') . '/template/product/product.tpl';
} else {
    $this->template = 'default/template/product/product.tpl';
}
заменил на
Код:
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/product_' . $category_id . '.tpl')) {
    $this->template = $this->config->get('config_template') . '/template/product/product_' . $category_id . '.tpl';
} elseif (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/product.tpl')) {
    $this->template = $this->config->get('config_template') . '/template/product/product.tpl';
} else {
    $this->template = 'default/template/product/product.tpl';
}
Это в файле catalog/controller/product.php В результате можем создать макет с именем product_(номер категории для которой подключаем уникальный макет).tpl В результате все товары категории будут выводиться через этот макет. Всем спасибо.
 
Красивое решение, может у vqmod упаковать, пригодится кому?
 
Обнаружил проблему, на отдельном шаблоне не работают отзывы, т.е. при клике на "оставить отзыв" оказываюсь на главной странице, у кого-нибудь есть мысли почему?
 
а как у тебя route в урле выглядит, когда открыт продукт с специфическим шаблоном категории?
 
Назад
Сверху