Всё о web

Для чайников и не только


Создание контроллера и шаблона на opencart 2

Ноябрь 4, 2015

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

Создаём файл в с именем newcat.php в каталоге /catalog/controller/product/. Копируем туда содержимое файла category.php из этого же каталога.

В самом начале файла есть объявление класса: "class ControllerProductCategory extends Controller {". Заголовок класса должен содержать имя нашего файла, и для нашего контроллера будет иметь вид: "class ControllerProductNewcat".

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

			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));
			}

Меняем все "category.tpl" на "newcat.tpl".

Мы клонировали стандартный контроллер категорий, далее создаём новый шаблон "newcat.tpl" в каталоге: /catalog/view/theme/default/template/product/ и копируем в него содержимое шаблона category.tpl.

Находим место вывода списка категорий вверху странички и удаляем всё лишнее.

Теперь по url: /index.php?route=product/newcat мы попадём в наш новый шаблон.

Напоследок выведем модуль "категории" в левой колонке. Открываем админку, система->дизайн->макеты.

new_contr_and_tmpl

Добавляем новый макет с именем "Newcat":

new_contr_and_tmpl2

Всё готово. Пример можно посмотреть здесь: opencart.allwebstuff.info/index.php?route=product/newcat



Комментарии

8 комментариев | “Создание контроллера и шаблона на opencart 2

  1. Аватар Sputnik:

    Всё работает! Огромное спасибо!

  2. Аватар Александр:

    Здравствуйте! Как вывести кнопочку в админке (при редактировании товара или в списке всех товаров) с ссылкой на товар. Чтобы например отредактировав какой-либо товар можно было нажать на ссылку и перейти на страничку товара для просмотра. Сейчас приходится для просмотра искать товар на сайте

  3. А подскажите как можно организовать например 2 группы опций, которые можно выводить на разных карточках товара. чтобы один набор опций выводился например на продукте по умолчанию а второй набор опций для другого товара но уже с другим оформлением

  4. Попробовал некоторые советы с вашего сайта, всё рабочее. Спасибо, что помогаете новичкам. Совет-идея — как вариант делать более широкий обзор той же темы, т.е. для OpenCart и OCStore, для 1.5 2.0 3.х… было бы круто

    1. Илья Илья:

      К счастью, я уже очень давно не работаю ни с opencart, ни с php вообще… Эти статьи про опенкарт уже стали достоянием истории)
      Но я очень рад, что они до сих пор кому-то полезны, СПАСИБО!

  5. Аватар Дмитрий:

    Приветствую!
    На ocStore 2.3.0.2.3 в /catalog/controller/product создал файл categoryabout.php, в него перенес содержимое файла /catalog/controller/product/category.php и в начале файла поправил: class ControllerProductCategoryabout extends Controller.

    Далее в контроллере нужно указать, что мы будем использовать новый шаблон. Находим строчки, где подключается шаблон:… не могу найти строчки, где подключается шаблон:
    if (file_exists(DIR_TEMPLATE . $this->config->get(‘config_template’)… в файле categoryabout.php, который я продублировал этого нет, подскажи пожалуйста, где нужно искать эти сточки?

  6. Илья Илья:

    Уже не могу помочь, Опенкартом не занимаюсь очень давно. Да, скорее всего за 4 года что-то изменилось, но что я не знаю.

Оставить комментарий:

Ваш e-mail не будет опубликован. Обязательные поля помечены *