Как задать свой шаблон для определенной категории OpenCart

Приветствую Вас на своем блоге. При разработке интернет-магазина для заказчика мне потребовалось сделать так, чтобы одна категория товаров выглядела по сравнению с другими категориями иначе. В моем случае нужно было сделать так, чтобы в одной из категорий выводились перед списком товаров подкатегории с картинками. Грубо говоря нужно сделать свой шаблон для этой категории.
Задача оказалось для меня не простой так как в PHP я не очень силен и пришлось гуглить. На поиск я потратил огромное количество времени, но решение в интернете я так и не нашел. Поэтому я решил делать все сам. В итоге все получилось. И чтобы помочь другим в решении данной задачи я написал эту статью.
Теперь к делу!
Шаблон для категории OpenCart 3
Стандартный шаблон категории находится в файле: category.twig
размещенный в папке catalog/view/theme/название_темы/template/product
. В этой же директории я создал шаблон который мне необходим и назвал его category1.twig
. Теперь осталось сделать так, чтобы этот шаблон подхватывался к определенной категории. Для этого я в контроллере category.php
, который находится в catalog/controller/product
нашел строку, которая отвечает за подгрузку шаблона категорий:
$this->response->setOutput($this->load->view('product/category', $data));
и заменил ее на:
if ($category_info['category_id'] == 90){ $this->response->setOutput($this->load->view('product/category-1', $data)); } else { $this->response->setOutput($this->load->view('product/category', $data)); }
Данный код выполняет проверку, что если категория имеет id 90, тогда подгружай шаблон category1
, а в другом случае подгрузи шаблон category
.
id категории можно узнать в админке, если зайти в редактирование данной категории в адресной строке браузера будет выводиться ее id:

После данных манипуляций, чтобы изменения вступили в силу необходимо обновить модификаторы.
Это делается в админке в пункте модули и расширения/модификаторы, нажатием на кнопку обновить.
Вот и все, теперь к определенной категории применился свой шаблон.
Если, что-то Вам осталось не понятным пишите в комментариях я обязательно помогу.