Доброго часу доби шановні відвідувачі нашого сайту, всі ми знаємо що в 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 ?> |
Ось і все, кілька хвилин вашого часу і терпіння і у нас тепер є фото виробника в картці товару.
Дякую всім за увагу, якщо є питання задавайте в коментарях.
Немає коментарів
Ви можете залишити коментар першим.