Как добавить логотип производителя в карточку товара Opencart 2.x-3.x

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

Изменим файлы движка (не рекомендуется)

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

Перейдите в catalog/view/theme/ваша_тема/template/product/product.tpl и найдите следующую строку:

<li><?php echo $text_manufacturer; ?> <a href="<?php echo $manufacturers; ?>"><?php echo $manufacturer; ?></a></li>

Замените строку следующим кодом:

<?php if($manufacturers_img) { ?>
  <li><a href="<?php echo $manufacturers; ?>">
  <?php echo ($manufacturers_img) ? '<img src="'.$manufacturers_img.'" title="'.$manufacturer.'" />' : '' ;?></a></li>
  <?php } else { ?>
  <li><?php echo $text_manufacturer; ?> <a href="<?php echo $manufacturers; ?>"><?php echo $manufacturer; ?></a></li>
<?php } ?>

Сохраните документ и убедитесь, что он загружен на ваш сервер. Затем перейдите в catalog/controller/product/product.php и найдите следующую строку:

$this->load->model('tool/image');

Добавьте после нее:

$manufacturer_image = $this->model_catalog_manufacturer->getManufacturer($product_info['manufacturer_id']);
  if($manufacturer_image){
  $data['manufacturers_img'] = $this->model_tool_image->resize($manufacturer_image['image'], 50, 50);
  } else {
  $data['manufacturers_img'] = false;
}

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

resize($manufacturer_image['image'], 50, 50);

Убедитесь, что вы сохранили и загрузили этот файл на сервер.

Поздравляем! Теперь вы добавили логотип производителя в карточку товара!

Создадим ocmod-файл (рекомендуется)

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

Создайте файл с помощью любого текстового редактора (Sublime, VS code), скопируйте и вставьте следующий код:

<modification>
<name>Добавляет лого производителя в карточку товара</name>
<version>0.1</version>
<code>addlogomanufacturer</code>
<file path="catalog/view/theme/*/template/product/product.tpl">
<operation>
<search><![CDATA[
<li><?php echo $text_manufacturer; ?> <a href="<?php echo $manufacturers; ?>"><?php echo $manufacturer; ?></a></li>
]]>
</search>

<add position="replace"><![CDATA[
<?php if($manufacturers_img) { ?>
<li><a href="<?php echo $manufacturers; ?>">
<?php echo ($manufacturers_img) ? '<img src="'.$manufacturers_img.'" title="'.$manufacturer.'" />' : '' ;?></a></li>
<?php } else { ?>
<li><?php echo $text_manufacturer; ?> <a href="<?php echo $manufacturers; ?>">
<?php echo $manufacturer; ?></a></li>
<?php } ?>
]]>
</add>
</operation>
</file>
<file path="catalog/controller/product/product.php">
<operation>
<search><![CDATA[
$this->load->model('tool/image');
]]>
</search>
<add position="after"><![CDATA[
$manufacturer_image = $this->model_catalog_manufacturer->getManufacturer($product_info['manufacturer_id']);

if($manufacturer_image){
$data['manufacturers_img'] = $this->model_tool_image->resize($manufacturer_image['image'], 50, 50);
} else {
$data['manufacturers_img'] = false;
}
]]>
</add>
</operation>
</file>
</modification>

Затем сохраняем этот файл с любым именем и расширением «.ocmod.xml». Имейте в виду, что расширение .ocmod.xml является обязательным, если вы хотите, чтобы OpenCart правильно интерпретировал вашу модификацию.

После того как вы создали файл, перейдите на страницу админки, затем «Модули / Расширения»>«Установка расширений» и загрузите файл. После того как вы получите сообщение «Модуль успешно установлен!», перейдите в «Модификаторы» и нажмите кнопку «Обновить», чтобы применить новые изменения.

После этого легко задать положение логотипа используя css.

Вариант для OpenCart 3.x

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

Загрузите файл ocmod

Просто скачайте этот файл ocmod и загрузите его на странице «Модули / Расширения»>«Установка расширений»:

Установка расширений

Загрузите файл sql

Теперь скачайте этот файл SQL (предварительно разархивируйте его) и загрузите его внутрь своей базы данных . Сделать это можно вот тут: «Система»> «Обслуживание»> «Бэкап/Восстановление».

Бэкап/Восстановление

Меняем размеры изображения

Вы можете изменить размеры логотипа производителя, отредактировав файл события, который вы загрузили самым первым. Переходим по адресу catalog/controller/extension/common/product_manufacturer_image.php

Размеры изображения устанавливаются в строке 5 и строке 6 в .php файле.

Готово! Теперь вы добавили логотип производителя на страницу товара!

Результат

Результат

Adblock
detector