Пользовательские контроллеры в OpenCart 2

Пользовательские контроллеры в OpenCart 2

От автора: сегодня мы рассмотрим контроллеры OpenCart 2.x, их общую концепцию. В версию OpenCart 2.x они внедрили изменения фреймворка, требующие обновления, на случай если вы сделали какие-либо пользовательские модули в более ранней версии — например, OpenCart 1.x. Сегодня мы рассмотрим практический пример того, что называется Guestbook (гостевая книга).

Почему пользовательский контроллер?

Кое-что, что вы можете спросить в первую очередь — почему именно пользовательский контроллер? Давайте разберёмся как можно быстрее, что такое контроллер в OpenCart, прежде чем мы им займемся.

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

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

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

Интернет-магазин на OpenCart!

Создайте интернет-магазин на самой популярной CMS – OpenCart с нуля!

Приступить к созданию

В двух словах, когда нужно создать функцию, которая не находится в ядре OpenCart, и, если она использует новый URL-адрес в терминологии OpenCart, нужно перейти на пользовательский контроллер. Он даст полный контроль над процессом создания страницы — и тем, какие элементы вы хотите отобразить на странице.

Создание пользовательского контроллера

Сегодня мы реализуем базовую функциональность Guestbook, которая демонстрирует концепцию пользовательских контроллеров. В процессе этого мы создадим интерфейс во front-end, который позволит гостевым пользователям отправлять свои отзывы, введя их имя и текст сообщения.

Прежде чем продолжить, убедитесь, что у вас установлена рабочая версия OpenCart 2.3.x. Этого более чем достаточно, чтобы начать работу над функцией Guestbook.

Для тех, кто не знаком со структурой OpenCart, нужно искать front-end контроллеры в catalog/controller. Это каталог, который управляет всеми контроллерами по группам, основываясь на предоставляемых функциях.

В нашем случае мы создадим отдельную группу под названием guestbook. Затем создадим каталог catalog/controller/guestbook. Внутри этого каталога создадим entry.php файл со следующим содержимым. Это файл контроллера, который обрабатывает логику приложения и отправки функций гостевой книги.

Согласно соглашениям OpenCart об именах, имя класса начинается с ключевого слова Controller, за которым следует имя каталога Guestbook в нашем случае, в котором находится файл класса. Кроме того, в конце добавляется имя файла класса Entry.

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

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

Прежде чем двигаться дальше, давайте создадим соответствующий языковой файл, чтобы наш контроллер мог его найти. Создайте catalog/language/en-gb/guestbook/guestbook.php файл со следующим содержимым.

Как можно увидеть, мы просто назначаем метки со своими значениями в массиве языков. Вернемся к нашему контроллеру. Следующая наша задача — настроить тег заголовка HTML для страницы.

Внимательные пользователи заметили, что мы использовали языковую переменную heading_title, определенную в языковом файле, созданном минуту назад.

Чтобы понять следующий фрагмент кода, нам нужно создать файл модели. Поэтому на мгновение я отвлеку вас на создание файла модели catalog/model/guestbook/guestbook.php со следующим содержимым.

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

Соглашение об именовании класса модели аналогично с классом контроллера. Чтобы все было проще, мы внедрили метод, processGuestbookEntry, который уведомляет администратора магазина по электронной почте, когда пользователь добавляет запись в гостевой книге. Довольно просто, да?

Вернемся к контроллеру и рассмотрим следующий фрагмент кода в очереди.

Он проверяет действительный POST запрос и выполняет базовую проверку данных, отправленных пользователем, вызывая validate метод.

Код $this->load->model(‘guestbook/guestbook’) используется для загрузки модели, которую мы определили мгновение назад. Сразу же после этого мы готовим $data массив на основе ввода пользователя и вызываем processGuestbookEntry метод, который уведомляет администратора магазина о записи в гостевой книге. Наконец, мы перенаправляем пользователя обратно на страницу записи.

Интернет-магазин на OpenCart!

Создайте интернет-магазин на самой популярной CMS – OpenCart с нуля!

Приступить к созданию

Следующий фрагмент устанавливает сообщение об успешном завершении, которое будет отображаться при отправке формы.

Далее есть фрагмент, который используется для создания палитры ссылок для страницы.

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

Аналогично назначению переменных OpenCart инициализирует общие элементы page-header, footer и тп, как показано в следующем фрагменте.

Наконец, он вызывает шаблон представления, чтобы отобразить фактическую страницу!

Мы еще не создали шаблон представления, и сейчас идеальное время для этого! Идем дальше и создаем catalog/view/theme/default/template/guestbook/entry.tpl файл со следующим содержимым.

Это основной файл шаблона представления, который отвечает за отображение содержимого страницы гостевой книги. В этом файле мы только что использовали переменные, которые были настроены в index методе контроллера.

Важно отметить, что отзывчивость — это то, что поставляется с новейшими версиями OpenCart, поддерживаемыми платформой Bootstrap. Помимо прочего, это довольно обычный материал HTML, который легко понять.

Итак, это то, что касается настройки файла.

У нас есть все готово, но как вы получите доступ к файлу из front-end?

Во front-end вы можете получить доступ к странице Guestbook, добавив переменную переадресации маршрута , поэтому URL-адрес должен быть похож на http: //your-opencart-store-url/index.php? Route = guestbook / entry .

Давайте разберёмся, как OpenCart сопоставляет URL-адрес с конкретным файлом контроллера. Формат переменной маршрута — {directory}/{filename}/{methodname}.

Компонент {directory} отображает в каталоге под catalog/controller.

В {filename}отображает имя файла контроллера под catalog/controller/{directory}.

Наконец, ищет метод контроллера {methodname}, если он указан в маршруте, иначе он вызовет index метод по умолчанию.

Так выглядит конечный результат.

Конечно, вы можете пойти дальше и протестировать его, отправив форму, и тогда придёт уведомление по электронной почте на адрес, зарегистрированный в качестве администратора магазина.

Вывод

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

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

Автор: Sajal Soni

Источник: http://code.tutsplus.com/

Редакция: Команда webformyself.

Интернет-магазин на OpenCart!

Создайте интернет-магазин на самой популярной CMS – OpenCart с нуля!

Приступить к созданию

Интернет-магазин на OpenCart

Создание магазина с уникальным шаблоном на CMS OpenCart

Научиться

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

Комментарии (1)

  1. Pocherk

    То, что нужно! Как раз интересовала работа с пользовательскими функциями в OpenCart.

Добавить комментарий

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

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Я не робот.

Spam Protection by WP-SpamFree