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

Тема в разделе "Opencart", создана пользователем CoderW, 15 май 2013.

Информация :
Внимание форумчане! При создании тем, или выкладывании какой-либо информации проверьте в какой ветке форума вы находитесь! Не путайте Opencart и Opencart2. При несоблюдении данного условия выносится соответствующее наказание! И потом не говорите что вас НЕ ПРЕДУПРЕЖДАЛИ! По возможности используйте обменники mail, yandex, google, dropbox, rghost Дабы избежать просьб перезалить и проблем с рекламой!
Модераторы: ZiX
  1. CoderW

    CoderW Постоялец

    Регистр.:
    17 янв 2013
    Сообщения:
    125
    Симпатии:
    55
    Всем день добрый,

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

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

    Как это реализовать если конечно можно?
     
    risk_plus нравится это.
  2. Maybe

    Maybe

    Moderator
    Регистр.:
    7 июл 2008
    Сообщения:
    1.158
    Симпатии:
    1.198
    Надо в "Дизайне" добавить новую "Схему"-макет. При создании категории, во вкладке "Дизайн", указать эту схему.
     
    TestDriver, risk_plus и CoderW нравится это.
  3. sitecreator

    sitecreator

    Регистр.:
    1 май 2013
    Сообщения:
    209
    Симпатии:
    17
    Для страниц категорий можно сделать разные шаблоны. но без сторонних методов не обойтись никак.
    сам реализовывал.
    сейчас поищу ссылочку для модификации.

    читайте здесь: Перейти по ссылке
     
    CoderW нравится это.
  4. White_S

    White_S

    Регистр.:
    27 май 2009
    Сообщения:
    477
    Симпатии:
    95
    Насколько я понимаю, если я захочу сделать для всех товаров в категоии иной шаблон, то для каждого товара придется отдельный макет делать? Насколько мне позволили понять мои скудные знания английского (автоматический перевод ясности не добавляет) мы в контроллере показа товара или категории к имени шаблона добавляем идентификатор, и если не находится такого шаблона, то используется стандартный для вашей темы, так? выходит для каждого товара отдельный макет (для тех для которых не хочу использовать стандартный).
    Если я все правильно понимаю, то может можно вместо айди товара, дописывать айди категории, чтоб контроллер искал шаблон "product_(идентификатор категории).tpl"? тогда скажем для всех товаров категории с идентификатором 15, можно создать шаблон "product_15.tpl".
    Подскажите нубу как получить айди родительской категории "$category_id" в контроллере товара (product.php)? я проверил эта колбаса работает.:)
     
    risk_plus нравится это.
  5. COLOBOCman

    COLOBOCman Постоялец

    Регистр.:
    26 апр 2013
    Сообщения:
    122
    Симпатии:
    30
    Код:
    $product_cat = $this->model_catalog_product->getCategories($product_id);
    
     
    White_S нравится это.
  6. White_S

    White_S

    Регистр.:
    27 май 2009
    Сообщения:
    477
    Симпатии:
    95
    Сделал так:
    Код:
    $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 В результате все товары категории будут выводиться через этот макет. Всем спасибо.
     
    CoderW нравится это.
  7. COLOBOCman

    COLOBOCman Постоялец

    Регистр.:
    26 апр 2013
    Сообщения:
    122
    Симпатии:
    30
    Красивое решение, может у vqmod упаковать, пригодится кому?
     
  8. CoderW

    CoderW Постоялец

    Регистр.:
    17 янв 2013
    Сообщения:
    125
    Симпатии:
    55
    Если можно, было бы не плохо. Думаю, что пригодится!
     
  9. White_S

    White_S

    Регистр.:
    27 май 2009
    Сообщения:
    477
    Симпатии:
    95
    Обнаружил проблему, на отдельном шаблоне не работают отзывы, т.е. при клике на "оставить отзыв" оказываюсь на главной странице, у кого-нибудь есть мысли почему?
     
  10. COLOBOCman

    COLOBOCman Постоялец

    Регистр.:
    26 апр 2013
    Сообщения:
    122
    Симпатии:
    30
    а как у тебя route в урле выглядит, когда открыт продукт с специфическим шаблоном категории?