Приветствую, коллеги! Подскажите как сделать такую штуку: на сайте будут две категории. для этих двух категорий, для их подкатегорий и товаров надо 2 разных шаблона. Тоесть для одной стандартное оформление темы, а для другой кастомный шаблон. как это реализовать?
например для категорий 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 то будем видеть новый шаблон, если нет то стандартный по анологии и продукт
а как это использовать по отношению к контенту в левом блоке? тоесть если категория одна, то одно меню, если другая, то иное меню.
подскажите как для 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)); }
Надо подключить несколько шаблонов Один подключаю так: 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));
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)); }
У вас на каждую категорию отдельный шаблон или только на некоторые? Если на каждую, то условие вообще не нужно, можно просто при подключении шаблона приклеивать id категории к названию. Если же отдельные шаблоны только для некоторых категорий, то тогда делаем массив с номерами этих категорий, один раз с помощью in_array() проверяем содержится ли текущая категория в этом массиве и если да, то дальше действуем, как и в первом варианте.