[Помогите] Разные шаблоны для разных категорий и товаров с этих категорий

Тема в разделе "OpenCart", создана пользователем Luckas, 29 июн 2014.

  1. Luckas

    Luckas

    Регистрация:
    21 ноя 2012
    Сообщения:
    233
    Симпатии:
    59
    Приветствую, коллеги!
    Подскажите как сделать такую штуку:
    на сайте будут две категории.
    для этих двух категорий, для их подкатегорий и товаров надо 2 разных шаблона. Тоесть для одной стандартное оформление темы, а для другой кастомный шаблон.
    как это реализовать?
     
    Последнее редактирование: 29 июн 2014
  2. nix

    nix php, MySQL, UNIX, MikroTik ROSAPI

    Регистрация:
    16 янв 2013
    Сообщения:
    1.000
    Симпатии:
    890
    например для категорий
    catalog/controller/product/category.php
    почти в конце есть подключения шаблона категорий
    ето catalog/view/theme/default/template/product/category.tpl
    PHP:
    if (file_exists(DIR_TEMPLATE $this->config->get('config_template') . '/template/product/category.tpl')) {
             
    $this->template $this->config->get('config_template') . '/template/product/category.tpl';
           } else {
             
    $this->template 'default/template/product/category.tpl';
           }
    делаем условия взяв за основу ИД категории,меняя старое условия
    PHP:
          if ($category_id == 4) {
             
    $template $this->config->get('config_template') . '/template/product/category_new.tpl';
           } else {
             
    $template $this->config->get('config_template') . '/template/product/category.tpl';
           }

           if (
    file_exists(DIR_TEMPLATE $template)) {
             
    $this->template $template;
           } else {
             
    $this->template 'default/template/product/category.tpl';
           }
    теперь создаем шаблон какой надо в catalog/view/theme/default/template/product/category_new.tpl
    и теперь если ИД категории равно 4 то будем видеть новый шаблон, если нет то стандартный

    по анологии и продукт
     
    sir-knife нравится это.
  3. Luckas

    Luckas

    Регистрация:
    21 ноя 2012
    Сообщения:
    233
    Симпатии:
    59
    А подкатегории будут наследоваться?
     
  4. nix

    nix php, MySQL, UNIX, MikroTik ROSAPI

    Регистрация:
    16 янв 2013
    Сообщения:
    1.000
    Симпатии:
    890
    да
     
  5. Luckas

    Luckas

    Регистрация:
    21 ноя 2012
    Сообщения:
    233
    Симпатии:
    59
    а как это использовать по отношению к контенту в левом блоке?
    тоесть если категория одна, то одно меню, если другая, то иное меню.
     
  6. spec

    spec

    Регистрация:
    8 сен 2014
    Сообщения:
    4
    Симпатии:
    0
    подскажите как для 2.1 сделать

    if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/category.tpl')) {
    $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/product/category.tpl', $data));
    } else {
    $this->response->setOutput($this->load->view('default/template/product/category.tpl', $data));
    }
     
  7. nannka

    nannka

    Регистрация:
    17 янв 2014
    Сообщения:
    1
    Симпатии:
    0
    Надо подключить несколько шаблонов

    Один подключаю так:

    if ($category_id == 67 ) {
    $this->response->setOutput($this->load->view('product/product_67', $data));
    }
    else {
    $this->response->setOutput($this->load->view('product/product', $data));
    }
    Вместо

    $this->response->setOutput($this->load->view('product/product', $data));
    А как сделать несколько?



    Вот так не работает:



    $template = 'product.twig';
    if ($product_id == 67) {
    $template = 'product_67.twig';
    }
    if ($product_id == 28) {
    $template = 'product_28.twig';
    }

    $this->response->setOutput($this->load->view($template, $data));
     
  8. Master2KAZ

    Master2KAZ

    Регистрация:
    25 окт 2014
    Сообщения:
    183
    Симпатии:
    72
    if ($category_id == 67 ) {
    $this->response->setOutput($this->load->view('product/product_67', $data));
    } elseif ($category_id == 28 ) {
    $this->response->setOutput($this->load->view('product/product28', $data));
    } else {
    $this->response->setOutput($this->load->view('product/product', $data));
    }
     
  9. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    У вас на каждую категорию отдельный шаблон или только на некоторые?
    Если на каждую, то условие вообще не нужно, можно просто при подключении шаблона приклеивать id категории к названию.
    Если же отдельные шаблоны только для некоторых категорий, то тогда делаем массив с номерами этих категорий, один раз с помощью in_array() проверяем содержится ли текущая категория в этом массиве и если да, то дальше действуем, как и в первом варианте.