Доброго часу доби шановні відвідувачі нашого сайту, всі ми знаємо що в 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. Файл “catalog/model/catalog/product.php”. За замовчуванням на сторінці товару вже є змінні, які містять назву і посилання на виробника. Тепер нам потрібно додати шлях до зображення. У функції getProduct($product_id) (~7 рядок) в код запиту:
1
|
$query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT price………..
|
Після “manufacturer,” ми додамо новий стовпець “m.image AS mimage,”, щоб вийшло ось так:
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'],
|
Тепер наша змінна $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 ?>
|
Ось і все, кілька хвилин вашого часу і терпіння і у нас тепер є фото виробника в картці товару.
Дякую всім за увагу, якщо є питання задавайте в коментарях.
Немає коментарів
Ви можете залишити коментар першим.