cs50 info
Логика OpenCart Layouts

Логика OpenCart Layouts

Дата: 08.06.2022 Просмотров: 312

Что такое макеты OpenCart?

Макеты OpenCart — это динамический способ отображения расширений на OpenCart Frontend. Это очень гибкая функция и краеугольный камень OpenCart CMS, однако многие пользователи плохо понимают, как она работает.

Каждая страница, которую вы открываете в магазине OpenCart, привязана к макету. Каждый макет определяет 4 возможных положения, в которых вы можете разместить модуль. Это означает, что вы можете разместить модуль «Категории» только на макете категорий в позиции «левая колонка».

OpenCart имеет 2 типа страниц:

  1. Статические страницы (например, домашняя страница с маршрутом общий/домашний)
  2. Динамические страницы (например, страница категории с маршрутом продукта/категории)


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

Что такое позиции OpenCart?

Прежде чем погрузиться в макеты, нам сначала нужно узнать о позициях.


OpenCart позволяет пользователям отображать модули в 4 жестко запрограммированных позициях: вверху содержимого, внизу содержимого, столбце слева и столбце справа.

Существуют сторонние расширения, которые позволят вам увеличить количество позиций, например  Extra Positions Unlimited .

На эти позиции можно размещать только модули типа Extensions.

Как работают макеты OpenCart?

Итак, теперь вы знаете, что такое макеты и позиции OpenCart, и как они на самом деле работают.



Поскольку OpenCart представляет собой структуру шаблонов MVC, controllerдля каждой позиции существует файл. Вы можете найти эти файлы в папке catalog/controller/common. Каждый файл контроллера положения выполняет следующие действия:

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

Примерно такая идея лежит в основе макетов и позиций OpenCart. Если бы там не было раскладок, вы бы увидели одинаковые расширения на всех позициях. Например, в WordPress нет динамических макетов, и когда вы размещаете виджет в нужной позиции, он отображается на всех страницах. Чтобы решить эту проблему, WordPress позволяет разработчикам создавать отдельные файлы для поста или страницы и просто удалять или добавлять код для соответствующих позиций.

Код и логика OpenCart Layouts?

Хотите точно знать, как работает код макета OpenCart? Действительно? Вот оно.


  1. В файле контроллера положения (например catalog/controller/common/column_left.php)
  2. Далее line 14 through 32мы сравниваем параметр маршрута, чтобы определить одну из трех динамических страниц.
  3. Если к динамической странице не подключен макет, эта страница рассматривается как статическая страница, и line 34параметр маршрута используется для поиска подключенного макета для этой статической страницы.
  4. Если к этой статической странице не подключен макет, line 38код возвращается к макету по умолчанию, который определен в system/settingsмагазине. (обычно "По умолчанию")
  5. Теперь, когда макет определен, он используется для извлечения всех модулей, подключенных к этому макету, и в line 46конечном итоге отображается во внешнем интерфейсе.







Комментарии