Задача не раз подымалась — «Как сделать свой шаблон для категорий?»
И вот тоже столкнулся с такой штукой, но все что пишут в «интернетах» не подходит, так как по тем инструкциям можно назначить шаблон только для категории с определенным ID.
Я решил сделать все по-другому. Может быть не совсем правильно, но все же думаю идея заслуживает внимания.
И так, нам надо вывести категорию (или несколько категорий) с другим шаблоном. Для этого я решил использовать схемы вывода.
Создаем новую схему — Система — Дизайн — Схемы — Назовем ее «Подкатегория» и id у нее — ’12’
В админке у нужной категории на вкладке «Дизайн» выбираете созданную схему «Под категория»
Теперь в папке с шаблоном создаете шаблон для вывода вашей «особенной» категории к примеру catalog/view/theme/…/product/subcategory.tpl — содержимое можно взять с оригинала category.tpl (и изменить под себя)
Теперь в контролере категорий —
1 |
catalog/controller/product/category.php |
Задаем определение схемы отображения:
после 10 строки $this->load->model(‘tool/image’);
добавляем
1 2 3 4 |
if ('product/category' && isset($this->request->get['path'])) { $path = explode('_', (string)$this->request->get['path']); $this->data['layout_id'] = $this->model_catalog_category->getCategoryLayoutId(end($path)); } |
дальше находим примерно 405 строка (в версии 1.5.4.1 — 350 строка)
1 2 3 4 |
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'; } |
И заменяем на
1 2 3 4 5 6 |
if ($this->data['layout_id'] == 12) {$this->template = $this->config->get('config_template') . '/template/product/subcategory.tpl'; } elseif (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'; } |
где 12 это id вашей схемы «Подкатегория», а subcategory.tpl ваш файл с шаблоном вывода категории
Все теперь шаблон для вашей категории будет браться из файла subcategory.tpl
Аналогично можно сделать и для информационных страниц!!!
Не забудьте, что модули тоже придется вывести в схему «Подкатегория»
Спасибо, мне очень помогло!
Рад помочь.
Отличная идея, парень)