Как новой статьи (information page) присвоить свой макет (layout) с кастумной страницей в Opencart?

Доброго времени суток. Нуждаюсь в совете. ocstore 2.3.
Хочу создать страницу "Доставка", на которой будет часть информации введенной с админ панели статьи "Доставка" и часть кастумной информации в виде html + php уже в самом коде вьюхи.
У меня есть статья "Доставка" с ЧПУ "dostavka". В своей теме я создал новую простую кастумную страницу вот по этому туториалу, находится она в infomation/delivery (controller/information/delivery.php, view/theme/mytheme/template/information/delivery.tpl). Проверил её зайдя по адресу site.ru/index.php?route=information/delivery - пашет нормально, мой контроллер срабатывает. Дальше в админке я захожу в Дизайн->Схемы и там добавляю новую схему под названием "ДоставкаLayout", где нужно прописывать путь пишу "information/delivery", сохраняю. Перехожу в Статьи -> "Доставка" -> Редактировать, дальше иду во вкладку Дизайн и выбираю макет "ДоставкаLayout" и сохраняю статью. По идеи, если я все верно понимаю, теперь перейдя по адресу site.ru/dostavka у меня должен срабатывать мой контроллер information/delivery.php, но в итоге, по неизвестной мне причине срабатывает контроллер information/information.php. Вопрос: почему и как это исправить?
Буду благодарен за помощь!

P.S. Даже если статье присвоить макет главной страницы, то все равно будет срабатывать контроллер information/information.php. Как так?)
  • Вопрос задан
  • 2532 просмотра
Решения вопроса 1
zoozag
@zoozag
Opencart
Дальше в админке я захожу в Дизайн->Схемы и там добавляю новую схему под названием "ДоставкаLayout", где нужно прописывать путь пишу "information/delivery", сохраняю.

Это значит, что страницам с таким route будет назначена эта дизайн схема, а не наоборот.

Перехожу в Статьи -> "Доставка" -> Редактировать, дальше иду во вкладку Дизайн и выбираю макет "ДоставкаLayout" и сохраняю статью.

Таким образом вы выбрали вручную дизайн схему для статьи.

Я бы вам посоветовал не писать свой контроллер controller/information/delivery.php, а дописать information/information.php

Вот код отвечающий за выбор шаблона статьи. Добавьте туда проверку по $information_id вашей статьи про доставку и замените tpl
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/information/information.tpl')) {
				$this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/information/information.tpl', $data));
			} else {
				$this->response->setOutput($this->load->view('default/template/information/information.tpl', $data));
			}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@freelancer1114
Добрый день, может поможет
https://opencartforum.com/files/file/1986-personal...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы