В этой статье я опишу, как добавить видео-ролик в описание продукта.
Все, описанное ниже, тестировалось на версии Opencart 1.4.8b, но должно работать и на любой другой версии ( возможно с некоторыми минимальными отличиями).
Обязательно сделайте резервную копию БД и всех изменяемых файлов.
Надеюсь, напоминать о том, что Вы все делаете на свой страх и риск, не стоит.
Автор не несет ответственность за испорченный сайт, который может стать таковым, если Вы что-то сделаете не так.
И так, поехали.
Для начала нужно внести небольшие изменения в таблицу " oc_product " базы данных MySQL , а именно вставить новый столбец после " stock_status_id " Название нового столбца ' video '
ALTER TABLE oc_product ADD video VARCHAR(60) AFTER stock_status_id;
Далее правим файл /admin/controller/catalog/product.php
Ищем строку 493
$this->data['entry_keyword'] = $this->language->get('entry_keyword');
Добавляем под ней
$this->data['entry_video'] = $this->language->get('entry_video');
Ищем строку 690
$this->data['keyword'] = '';
}
Добавляем после закрывающей скобки (строка 692 )
if (isset($this->request->post['video'])) {
$this->data['video'] = $this->request->post['video'];
} elseif (isset($product_info)) {
$this->data['video'] = $product_info['video'];
} else {
$this->data['video'] = '';
}
Теперь в файле /admin/language/english/catalog/product.php
Находим строку 32
$_['entry_keyword'] = 'SEO Keyword:';
Добавляем ниже
$_['entry_video'] = 'Related Video:';
В файле admin/model/catalog/product.php находим строку 3
public function addProduct($data) {
Чуть ниже ищем
stock_status_id = '" . (int)$data['stock_status_id'] . "',
После запятой вставляем следующее
video = '" . $this->db->escape($data['video']) . "',
Дальше ищем строку 98
public function editProduct
Ниже ищем
stock_status_id = '" . (int)$data['stock_status_id'] . "',
Вставляем после запятой
video = '" . $this->db->escape($data['video']) . "',
Теперь в файле /admin/view/template/catalog/product_form.tpl
Находим </ TR> в строке 159
Ниже вставляем
<tr>
<td><?php echo $entry_video; ?></td>
<td><input type="text" name="video" value="<?php echo $video; ?>" /></td>
</tr>
В файле catalog/controller/product/product.php
Ищем строку 137
Где-то в районе этой строки ищем
$this->data['text_qty'] = $this->language->get('text_qty');
Ниже вставляем
$this->data['text_video'] = $this->language->get('text_video');
Находим строку
$this->data['model'] = $product_info['model'];
Ниже вставляем
$this->data['video'] = $product_info['video'];
Еще не надоело? :-) Тогда продолжаем.
В файле catalog/model/catalog/product.php
Находим строку 3
public function getProduct($product_id) {
Где-то в этом районе ищем
ss.name AS stock FROM
заменяем на
ss.name AS stock, video FROM
Далее в файле catalog/language/english/product/product.php
Ищем строку 21 Вставляем под ней
$_['text_video'] = 'Related Video';
И наконец в файле catalog/view/theme/YOURTHEME/template/product/product.tpl
Найти </ TABLE> в строке 108
Ниже вставляем
<?php if ($video) { ?>
<div align="center"><?php echo $text_video; ?><br>
<object width="425" height="350"><param name="movie" value="<?php echo $video; ?>"></param><param name="wmode" value="transparent"></param><embed src="<?php echo $video; ?>" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object>
</div>
<?php } ?>
Теперь можем идти в админку OpenCart, переходем на вкладку Каталог>Продукты>Данные . И в добавленное нами поле вставляем YouTube ссылку, или любую другую ссылку видео.
После сохранения, на сайте на странице описания товара должен появитьсядобавленный видео-ролик.