OpenCart от новичка до профессионала: создаем еще один модуль

29 Мая 2022г. в 05:07

Как вы помните, мы создали простой модуль, который берет входные данные из back-end и сохраняет их в базе данных.



Конфигурация модуля
Поместите контент в поле «HelloWorldCode». Задайте для параметров Макет, Позиция, Статус и Порядок сортировки значения, приведенные на рисунке ниже.

Создание контроллера магазина
Перейдите в папку catalog/controller/module и создайте в ней пустой PHP-файл.

Задайте для файла имя helloworld.php.

Откройте файл в своей IDE и следуйте Конвенцию о присвоении имен OpenCart , т.е. classControllerModuleHelloworldextendsController {}.

Создайте внутри класса функцию OpenCart по умолчанию publicfunctionindex() {}.

Внутри функции index() добавьте приведенный ниже код:

$this->language->load('module/helloworld'); // загружаем языковой файл helloworld
$this->data['heading_title'] = $this->language->get('heading_title'); // задаем heading_title для модуля
$this->data['helloworld_value'] = html_entity_decode($this->config->get('helloworld_text_field')); // получаем сохраненное значение текстового поля helloworld и передаем его в переменную для использования внутри представления нашего модуля
$this->template = $this->config->get('config_template') . '/template/module/helloworld.tpl'; // Путь к шаблону модуля магазина helloworld
$this->render(); // выводим результат
$this->language->load('module/helloworld'); // загружаем языковой файл helloworld
$this->data['heading_title'] = $this->language->get('heading_title'); // задаем heading_title для модуля
$this->data['helloworld_value'] = html_entity_decode($this->config->get('helloworld_text_field')); // получаем сохраненное значение текстового поля helloworld и передаем его в переменную для использования внутри представления нашего модуля
$this->template = $this->config->get('config_template') . '/template/module/helloworld.tpl'; // Путь к шаблону модуля магазина helloworld
$this->render(); // выводим результат
И мы закончили создание нашего контроллера. Обратите внимание на комментарии после каждой строки, чтобы вы понимали что делает этот код.

Создание представления магазина
Перейдите в папку шаблонов магазина по умолчанию; в моем случае это: catalog/view/theme/default/template/module.

Создайте новый файл шаблона.

Задайте для него имя helloworld.tpl.

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

<div class="box">
<div class="box-heading"><?php echo $heading_title; ?></div>
<div class="box-content" style="text-align: center;"><?php echo $helloworld_value; ?></div>
</div>
<div class="box">
<div class="box-heading"><?php echo $heading_title; ?></div>
<div class="box-content" style="text-align: center;"><?php echo $helloworld_value; ?></div>
</div>
Создание языкового файла
Создайте файл языка helloworld.php в папке catalog/language/(language)/module.

Добавьте данные в файл языков, в моем случае:

<?php
// Heading
$_['heading_title'] = 'Hello World Title';
?>
<?php
// Heading
$_['heading_title'] = 'Hello World Title';
?>
Если ваш сайт является многоязычным, добавьте языковые файлы для каждого языка.

Что мы сделали?
В принципе, наш модуль работает просто потому, что он берет данные из панели управления и отображает их через интерфейс магазина. В связи с этим мы добавили некоторые условные данные из внешнего модуля HelloWorld и задали макет для отображения модуля. В нашем случае эти макеты — Contact и Account, а их позиции находятся — в столбце слева и в столбце справа, соответственно.

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

Вы можете либо перейти на страницу «Contact Us » в нижней части магазина, либо открыть в браузере следующий адрес //localhost/OpencartStore/index.php?route=information/contact.

Ваш модуль должен располагаться, так как приведено на скриншоте ниже.



Замечательно! Модуль располагается, так как нужно. Это означает, что всё в порядке. Вы также можете проверить, отображается ли корректно ваш модуль в Accounts Layout. Если вы сделали все правильно, модуль также должен появиться на странице магазина.

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