Opencart имеет mvc архитектуру. MVC это model view controller (модель представление контроллер) это такая страктура в которой файлы шаблонов (html верстки) отделены от логики и обработки информации, которая в свою очередь отделена от механизма выборки данных из базы MySQL.

Мoдель (model) – файлы этой директории отвечают за выборку значений из базы данных. Находятся они в папках admin/model и catalog/model соответственно выборка идет для админки и для сайта. Для обращения к функции в модели надо прописать

$this->model_catalog_product->функция;

где catalog это директория product файл в которой есть необходимая функция.

Контроллер (controller) – это файлы, которые отвечают за логику работы всего сайта, это как бы посредник между выборкой данных из базы и выводом на экран посетителю. Его работа заключается в том, что он выбирает необходимые поля из базы данных, далее их обрабатывает и передает в удобном виде на файлы шаблона. Удобный вид это или же переменная или массив, который как правило формируется циклом после обработки данных, которые были в базе.

Для передачи переменной или массива на представление (view) на шаблон надо прописать

$this->data['переменная']; или $this->data['массив'] = array(данные в массиве);

Представление (view) – это не что иное, как файлы шаблонов, которые находятся в каталоге view. Сам шаблон находится по адресу catalog/view/theme/название_темы/файлы. В которых находится html разметка сайта. Для вставки переменной которая подготавливается в контроллере нам надо прописать лишь ее название например

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

При заходе на карточку товара, мы отсылаем через контроллер (catalog/controller/product/product.php) запрос на выборку значений из базы данных через модель (catalog/model/catalog/product.php) строкой кода в контроллере:

$product_info = $this->model_catalog_product->getProduct($product_id);

где getProduct это функция, которая находится в модели и делает выборку значений всех полей товара (model, name, description, sku, price и т.д.). ($product_id) – это обязательный параметр для этой функции, это id товара.

После выборки всех данных нам надо некоторые из них присвоить переменным что бы с помощью их можно было показать значение в карточке товара. Присваивать будем sku (артикул) таким кодом

$this->data['sku'] = $product_info['sku'];

Далее дело за малым, вывести переменные в шаблоне. Для этого открываем файл карточки товара catalog/view/theme/тема/template/product/product.tpl и в нужном месте вставляем

Все готово! Как видите для того что бы вывести артикул sku в карточку товара надо затронуть три файла и наглядно видно как работает архитектура mvc в Opencart.


02.11.2015 11229
Новости из этой категории
08.09.2019 3538
Приятно иметь дело с хорошими людьми. Небольшая история с автором фильтра filter vier Виталием
Небольшая предыстория. Я уже не занимаюсь заказами и работой по техническим заданиям, правками и т.п. Я сейчас полностью перешел на разработку своих модулей.Посмотреть мо..
14.04.2019 11377
Депозит монобанк- обзор и отзывы
Уважаемые посетители, это статья создана для жителей Украины, для гостей с других стран эта статья не будет актуальная. Банк работает только на территории УкраиныДля нача..
19.03.2019 5037
Google против добавления лишнего текста на страницы категорий интернет-магазинов
Сотрудник Google Джон Мюллер (John Mueller) предостерег владельцев сайтов электронной коммерции от добавления ненужного текста на страницы категорий.По его мнению, добавл..
18.03.2019 5278
Как сделать автоматические якори в тексте
Была одна интересная доработка недавно. Надо было создать автоматическое содержание статьи на основании его h1-h6 заголовков.Зачем это нужно и как выглядитЭто нужно что б..
30.12.2018 7285
Google page speed обновился - обзор обновленного сервиса от google
Добро пожаловать в обзор и небольшие наблюдения о трансформации сервиса от гугл - скорость загрузки страниц 'google page speed'. Для начала небольшое отступление.Еще давн..
Вся информация, представленная на сайте, является демонстрационной и оставляя информацию о своих персональных данных, вы добровольно делаете их общедоступными.
Рекомендуем использовать обезличенные данные. Мы используем файлы cookie для вашего удобства пользования сайтом и повышения качества рекомендаций. Подробнее