
Доброго времени суток уважаемые посетители нашего сайта, все мы знаем что в opencart производители выводятся на отдельной странице, но часто владельцы интернет магазинов хотели бы выводить производителя товара прям в карточку,ну что же если нужно значить будем делать, и так в данной статье мы прикрутим фото нашего производителя именно в карточку товара с возможностью его включения и отключения из административной панели,а так же с возможностью менять размер самого изображения производителя,и так приступим.
1. Для начала давайте создадим нужные нам поля в админ панели.
Изменения будем вносить в следующие файлы:
1
2
3
|
“admin/language/russian/setting/setting.php” – здесь мы добавим перевод языковых переменных.
“admin/controller/setting/setting.php” – а здесь уже мы получим и обработаем языковые переменные и настройки.
“admin/view/template/setting/setting.tpl” – выведем настройки в форму с настройками магазина.
|
1. Файл “admin/language/russian/setting/setting.php”. В любое место файла (между ) вставляем:
1
2
|
$_['entry_manufacturer_image'] = 'Размер логотипа производителя в карточке товара:';
$_['entry_show_manufacturer_image'] = 'Показывать логотип производителя:';
|
Все языковые переменные мы добавили, теперь нам понадобится перенести данные переменные в видимость шаблона ну и соответственно создать/получить и обработать настройки.
2. Файл “admin/controller/setting/setting.php”. В функции index() (~30 строка) после кода:
1
|
$this->data['heading_title'] = $this->language->get('heading_title');
|
Мы добавим:
1
2
|
$this->data['entry_manufacturer_image'] = $this->language->get('entry_manufacturer_image');
$this->data['entry_show_manufacturer_image'] = $this->language->get('entry_show_manufacturer_image');
|
Все мы закончили с языковыми переменными. Далее после кода (~330 строка):
1
2
3
4
5
|
if (isset($this->request->post['config_name'])) {
$this->data['config_name'] = $this->request->post['config_name'];
} else {
$this->data['config_name'] = $this->config->get('config_name');
}
|
Нам нужно добавить:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# Ширина изображения
if (isset($this->request->post['config_manufacturer_image_width'])) {
$this->data['config_manufacturer_image_width'] = $this->request->post['config_manufacturer_image_width'];
} else {
$this->data['config_manufacturer_image_width'] = $this->config->get('config_manufacturer_image_width');
}
# Высота изображения
if (isset($this->request->post['config_manufacturer_image_height'])) {
$this->data['config_manufacturer_image_height'] = $this->request->post['config_manufacturer_image_height'];
} else {
$this->data['config_manufacturer_image_height'] = $this->config->get('config_manufacturer_image_height');
}
# показать/отключить изображение производителя
if (isset($this->request->post['config_show_manufacturer_image'])) {
$this->data['config_show_manufacturer_image'] = $this->request->post['config_show_manufacturer_image'];
} else {
$this->data['config_show_manufacturer_image'] = $this->config->get('config_show_manufacturer_image');
}
|
3. Файл “admin/view/template/setting/setting.tpl”. Все Настройки получены и обработаны, и сейчас у нас в шаблоне уже доступны переменные:
1
2
3
4
5
|
$entry_manufacturer_image; # Размер логотипа производителя в карточке товара:
$entry_show_manufacturer_image; # Показывать изображение производителя:
$config_manufacturer_image_width; # (Настройка) ширина логотипа
$config_manufacturer_image_height; # (Настройка) высота логотипа
$config_show_manufacturer_image; # (Настройка) показать/скрыть логотипы
|
Все настройки мы будем создавать во вкладке “Изображения”. Ищем код (~684 строка):
1
2
3
4
5
6
7
8
9
10
|
<tr>
<td><span class="required">*</span> <?php echo $entry_image_cart; ?></td>
<td><input type="text" name="config_image_cart_width" value="<?php echo $config_image_cart_width; ?>" size="3" />
x
<input type="text" name="config_image_cart_height" value="<?php echo $config_image_cart_height; ?>" size="3" />
<?php if ($error_image_cart) { ?>
<span class="error"><?php echo $error_image_cart; ?></span>
<?php } ?></td>
</tr>
</table>
|
И перед
вставим:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<tr>
<td><?php echo $entry_manufacturer_image; ?></td>
<td><input type="text" name="config_manufacturer_image_width" value="<?php echo $config_manufacturer_image_width; ?>" size="3" />
x
<input type="text" name="config_manufacturer_image_height" value="<?php echo $config_manufacturer_image_height; ?>" size="3" />
</td>
</tr>
<tr>
<td><?php echo $entry_show_manufacturer_image; ?></td>
<td><?php if ($config_show_manufacturer_image) { ?>
<input type="radio" name="config_show_manufacturer_image" value="1" checked="checked" />
<?php echo $text_yes; ?>
<input type="radio" name="config_show_manufacturer_image" value="0" />
<?php echo $text_no; ?>
<?php } else { ?>
<input type="radio" name="config_show_manufacturer_image" value="1" />
<?php echo $text_yes; ?>
<input type="radio" name="config_show_manufacturer_image" value="0" checked="checked" />
<?php echo $text_no; ?>
<?php } ?></td>
</tr>
|
Теперь нам нужно перейти в настройки и ввести значения настроек т.к. по умолчанию они пусты. Пример настроек в админке должен выглядеть так:
На этом работа с административной панелью закончена.
2. Вторым шагом мы будем выводить наш логотип производителя непосредственно в карточке товара.
В какие файлы мы будем вносить изменения:
1
2
3
|
1. “catalog/model/catalog/product.php” – Здесь мы изменим запрос данных товара к базе данных, чтоб он возвращал фото нашего производителя.
2. “catalog/controller/product/product.php” – Здесь мы будем изменять размер фото производителя и добавим его к переменной, которая далее будет доступна в шаблоне.
3. “catalog/view/theme/название шаблона/template/product/product.tpl” – добавим фото, которое получили из контроллера, в сам шаблон.
|
1
|
$query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT price………..
|
1
|
$query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, m.image AS mimage, (SELECT price………..
|
1
|
'sku' => $query->row['sku'],
|
1
|
'mimage' => $query->row['mimage'],
|
2. Файл “catalog/controller/product/product.php”. В функции index() находим код (~199 строка):
1
|
$this->load->model('tool/image');
|
1
2
|
$this->data['mimage'] = $this->model_tool_image->resize($product_info['mimage'], $this->config->get('config_manufacturer_image_width'), $this->config->get('config_manufacturer_image_height'));
$this->data['config_show_manufacturer_image'] = $this->config->get('config_show_manufacturer_image');
|
3. Файл “catalog/view/theme/название шаблона/template/product/product.tpl”. Унас теперь есть доступна переменная $mimage, в ней находится путь к фото производителя (120×50). Так же еще уже доступна переменная $manufacturers, в которой находится ссылка на страницу производителя в магазине и переменная $config_show_manufacturer_image.
Теперь мы перейдем к добавлению самого изображения-ссылки. После кода (~24 строка):
1
|
<div class="right">
|
1
2
3
4
5
|
<?php if ($config_show_manufacturer_image && (!empty($mimage))): ?>
<a href="<?php echo $manufacturers; ?>">
<img style="float:right;margin-top:10px;" width="120" height="50" src="<?php echo $mimage; ?>" title="<?php echo $manufacturer; ?>" />
</a>
<?php endif ?>
|
Всем спасибо за внимание,если есть вопросы задавайте в комментариях.