Главная » Статьи » Как создать модуль для Опенкарт. Часть 2

Как создать модуль для Опенкарт. Часть 2

Как создать модуль для Опенкарт

От автора: приветствую вас, друзья. Итак, мы продолжаем цикл статей, посвященных знакомству с одной из популярнейших CMS для создания интернет-магазинов – OpenCart (Оперкарт). В этой статье мы поговорим о том, как вывести артикул в OpenCart.

Итак, в предыдущей статье мы с вами познакомились с основами создания модулей для Опенкарт. Пришло время написать модификатор OCMOD, который будет выполнять полезную функцию. В данном случае мы хотим, чтобы в карточке товара выводился артикул просматриваемого продукта. Начнем.

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

Начнем с контроллера товара. В него мы добавили 2 строки кода:

$data['sku'] = $product_info['sku'];
$data['text_sku'] = $this->language->get('text_sku');

Добавили мы их после вот этой строки:

$data['model'] = $product_info['model'];

Эта строка в файле находится в единственном экземпляре, поэтому мы смело можем описать первую операцию модификатора:

<file path="catalog/controller/product/product.php"> <operation> <search> <![CDATA[$data['model'] = $product_info['model'];]]> </search> <add position="after"> <![CDATA[ $data['sku'] = $product_info['sku']; $data['text_sku'] = $this->language->get('text_sku');]]> </add> </operation>
</file>

Само собой, не забудьте удалить эти строки из оригинального файла product.php. Идем дальше, следующий файл – вид продукта. И операция будет такой:

<file path="catalog/view/theme/*/template/product/product.tpl"> <operation> <search> <![CDATA[<?php if ($reward) { ?>]]> </search> <add position="before"> <![CDATA[ <?php if($sku): ?> <li><?= $text_sku; ?> <?=$sku;?></li> <?php endif; ?>]]> </add> </operation>
</file>

Здесь мы ищем строку и в позицию перед ней добавляем нужный код, который, опять-таки, не забудьте удалить из шаблона темы. Также обратите внимание на то, что в пути к файлу название темы мы заменили звездочкой: catalog/view/theme/*/template/product/product.tpl

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

<file path="catalog/language/en-gb/product/product.php"> <operation> <search> <![CDATA[<?php]]> </search> <add position="after"> <![CDATA[$_['text_sku'] = 'Vendor Code:';]]> </add> </operation>
</file> <file path="catalog/language/ru-ru/product/product.php"> <operation> <search> <![CDATA[<?php]]> </search> <add position="after"> <![CDATA[$_['text_sku'] = 'Артикул:';]]> </add> </operation>
</file>

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

После этого повторно установим только что написанный модуль и обновим кэш. Если вы нигде не ошиблись, тогда в карточке товара мы увидим вывод артикула.

На всякий случай приведу итоговый код модификатора sku_wfm.ocmod.xml:

<?xml version="1.0" encoding="utf-8"?>
<modification> <name>Вывод артикула</name> <code>sku_wfm</code> <version>1.0</version> <author>Andrey</author> <link>https://webformyself.com </link> <file path="catalog/controller/product/product.php"> <operation> <search> <![CDATA[$data['model'] = $product_info['model'];]]> </search> <add position="after"> <![CDATA[ $data['sku'] = $product_info['sku']; $data['text_sku'] = $this->language->get('text_sku');]]> </add> </operation> </file> <file path="catalog/view/theme/*/template/product/product.tpl"> <operation> <search> <![CDATA[<?php if ($reward) { ?>]]> </search> <add position="before"> <![CDATA[ <?php if($sku): ?> <li><?= $text_sku; ?> <?=$sku;?></li> <?php endif; ?>]]> </add> </operation> </file> <file path="catalog/language/en-gb/product/product.php"> <operation> <search> <![CDATA[<?php]]> </search> <add position="after"> <![CDATA[$_['text_sku'] = 'Vendor Code:';]]> </add> </operation> </file> <file path="catalog/language/ru-ru/product/product.php"> <operation> <search> <![CDATA[<?php]]> </search> <add position="after"> <![CDATA[$_['text_sku'] = 'Артикул:';]]> </add> </operation> </file>
</modification>

На этом, пожалуй, остановимся. Больше об OpenCart вы можете узнать из наших бесплатных или платных уроков.