OCMarket

Новая вкладка для товаров "Видео"

1 сообщение в этой теме

Создаём на странице товара дополнительную вкладку "Видео".
(если в админке поле с кодом видео не заполнено - вкладка не выводится)

 

video_tab.png

 

Вкладка в админке:

 

video_tab_admin.png

Решение описанное ниже подходит только для версии 1.5.Х OpenCart (или ocStore)

Перед правкой - не забываем про резервное копирование файлов!

 

1). В файле admin/controller/catalog/product.php находим строку:

$this->data['tab_image'] = $this->language->get('tab_image');

Перед ней добавляем:

$this->data['tab_video'] = $this->language->get('tab_video');

Ниже (в этом же файле) находим строку:

$this->load->model('catalog/download');

Перед ней добавляем:

if (isset($this->request->post['youtube_code'])) {	    $this->data['youtube_code'] = $this->request->post['youtube_code'];	 } elseif (isset($product_info)) {   $this->data['youtube_code'] = $product_info['youtube_code'];  } else {	    $this->data['youtube_code'] = '';	 }

2). В файле admin/language/english/english.php добавляем (в любом месте) строку:
(тоже самое проделываем и со всеми остальными файлами локализации)

$_['tab_video']	    = 'Video';

3). В файле admin/model/catalog/product.php находим код:

$this->db->query("INSERT INTO " . DB_PREFIX . "product SET model = '" . $this->db->escape($data['model']) . "', sku = '" . $this->db->escape($data['sku']) . "', upc = '" . $this->db->escape($data['upc']) . "', ean = '" . $this->db->escape($data['ean']) . "', jan = '" . $this->db->escape($data['jan']) . "', isbn = '" . $this->db->escape($data['isbn']) . "', mpn = '" . $this->db->escape($data['mpn']) . "', location = '" . $this->db->escape($data['location']) . "', quantity = '" . (int)$data['quantity'] . "', minimum = '" . (int)$data['minimum'] . "', subtract = '" . (int)$data['subtract'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "', date_available = '" . $this->db->escape($data['date_available']) . "', manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', price = '" . (float)$data['price'] . "', points = '" . (int)$data['points'] . "', weight = '" . (float)$data['weight'] . "', weight_class_id = '" . (int)$data['weight_class_id'] . "', length = '" . (float)$data['length'] . "', width = '" . (float)$data['width'] . "', height = '" . (float)$data['height'] . "', length_class_id = '" . (int)$data['length_class_id'] . "', status = '" . (int)$data['status'] . "', tax_class_id = '" . $this->db->escape($data['tax_class_id']) . "', sort_order = '" . (int)$data['sort_order'] . "', date_added = NOW()");

Меняем на этот:

$this->db->query("INSERT INTO " . DB_PREFIX . "product SET model = '" . $this->db->escape($data['model']) . "', sku = '" . $this->db->escape($data['sku']) . "', upc = '" . $this->db->escape($data['upc']) . "', ean = '" . $this->db->escape($data['ean']) . "', jan = '" . $this->db->escape($data['jan']) . "', isbn = '" . $this->db->escape($data['isbn']) . "', mpn = '" . $this->db->escape($data['mpn']) . "', location = '" . $this->db->escape($data['location']) . "', quantity = '" . (int)$data['quantity'] . "', minimum = '" . (int)$data['minimum'] . "', subtract = '" . (int)$data['subtract'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "', date_available = '" . $this->db->escape($data['date_available']) . "', manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', price = '" . (float)$data['price'] . "', points = '" . (int)$data['points'] . "', weight = '" . (float)$data['weight'] . "', weight_class_id = '" . (int)$data['weight_class_id'] . "', length = '" . (float)$data['length'] . "', width = '" . (float)$data['width'] . "', height = '" . (float)$data['height'] . "', length_class_id = '" . (int)$data['length_class_id'] . "', status = '" . (int)$data['status'] . "', tax_class_id = '" . $this->db->escape($data['tax_class_id']) . "', sort_order = '" . (int)$data['sort_order'] . "', date_added = NOW(), youtube_code='".$data['youtube_code']."'");

Ниже (в этом же файле) находим код:

$this->db->query("UPDATE " . DB_PREFIX . "product SET model = '" . $this->db->escape($data['model']) . "', sku = '" . $this->db->escape($data['sku']) . "', upc = '" . $this->db->escape($data['upc']) . "', ean = '" . $this->db->escape($data['ean']) . "', jan = '" . $this->db->escape($data['jan']) . "', isbn = '" . $this->db->escape($data['isbn']) . "', mpn = '" . $this->db->escape($data['mpn']) . "', location = '" . $this->db->escape($data['location']) . "', quantity = '" . (int)$data['quantity'] . "', minimum = '" . (int)$data['minimum'] . "', subtract = '" . (int)$data['subtract'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "', date_available = '" . $this->db->escape($data['date_available']) . "', manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', price = '" . (float)$data['price'] . "', points = '" . (int)$data['points'] . "', weight = '" . (float)$data['weight'] . "', weight_class_id = '" . (int)$data['weight_class_id'] . "', length = '" . (float)$data['length'] . "', width = '" . (float)$data['width'] . "', height = '" . (float)$data['height'] . "', length_class_id = '" . (int)$data['length_class_id'] . "', status = '" . (int)$data['status'] . "', tax_class_id = '" . $this->db->escape($data['tax_class_id']) . "', sort_order = '" . (int)$data['sort_order'] . "', date_modified = NOW() WHERE product_id = '" . (int)$product_id . "'");

Меняем на этот:

$this->db->query("UPDATE " . DB_PREFIX . "product SET model = '" . $this->db->escape($data['model']) . "', sku = '" . $this->db->escape($data['sku']) . "', upc = '" . $this->db->escape($data['upc']) . "', ean = '" . $this->db->escape($data['ean']) . "', jan = '" . $this->db->escape($data['jan']) . "', isbn = '" . $this->db->escape($data['isbn']) . "', mpn = '" . $this->db->escape($data['mpn']) . "', location = '" . $this->db->escape($data['location']) . "', quantity = '" . (int)$data['quantity'] . "', minimum = '" . (int)$data['minimum'] . "', subtract = '" . (int)$data['subtract'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "', date_available = '" . $this->db->escape($data['date_available']) . "', manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', price = '" . (float)$data['price'] . "', points = '" . (int)$data['points'] . "', weight = '" . (float)$data['weight'] . "', weight_class_id = '" . (int)$data['weight_class_id'] . "', length = '" . (float)$data['length'] . "', width = '" . (float)$data['width'] . "', height = '" . (float)$data['height'] . "', length_class_id = '" . (int)$data['length_class_id'] . "', status = '" . (int)$data['status'] . "', tax_class_id = '" . $this->db->escape($data['tax_class_id']) . "', sort_order = '" . (int)$data['sort_order'] . "', date_modified = NOW(), youtube_code='".$data['youtube_code']."' WHERE product_id = '" . (int)$product_id . "'");

4). В файле admin/view/template/catalog/product_form.tpl находим:

<div id="tabs" class="htabs"><a href="#tab-general"><?php echo $tab_general; ?></a><a href="#tab-data"><?php echo $tab_data; ?></a><a href="#tab-links"><?php echo $tab_links; ?></a><a href="#tab-attribute"><?php echo $tab_attribute; ?></a><a href="#tab-option"><?php echo $tab_option; ?></a><a href="#tab-profile"><?php echo $tab_profile; ?></a><a href="#tab-discount"><?php echo $tab_discount; ?></a><a href="#tab-special"><?php echo $tab_special; ?></a><a href="#tab-image"><?php echo $tab_image; ?></a><a href="#tab-reward"><?php echo $tab_reward; ?></a><a href="#tab-design"><?php echo $tab_design; ?></a></div>

Меняем на:

<div id="tabs" class="htabs"><a href="#tab-general"><?php echo $tab_general; ?></a><a href="#tab-data"><?php echo $tab_data; ?></a><a href="#tab-links"><?php echo $tab_links; ?></a><a href="#tab-attribute"><?php echo $tab_attribute; ?></a><a href="#tab-option"><?php echo $tab_option; ?></a><a href="#tab-profile"><?php echo $tab_profile; ?></a><a href="#tab-discount"><?php echo $tab_discount; ?></a><a href="#tab-special"><?php echo $tab_special; ?></a><a href="#tab-image"><?php echo $tab_image; ?></a><a tab="#tab_video"><?php echo $tab_video; ?></a><a href="#tab-reward"><?php echo $tab_reward; ?></a><a href="#tab-design"><?php echo $tab_design; ?></a></div>

Ниже (в этом же файле) находим:

<div id="tab-reward">

Выше добавляем:

<div id="tab_video">    <table>   <tr>	 <td class="left">    <textarea name="youtube_code" cols="120" rows="10"><?php echo $youtube_code; ?></textarea>	 </td>   </tr>    </table>  </div>

5). В файле catalog/controller/product/product.php находим строку:

$this->data['tab_description'] = $this->language->get('tab_description');

Ниже добавляем:

$this->data['tab_youtube'] = $this->language->get('tab_youtube');

Находим:

$this->data['products'] = array();

Перед ней добавляем:

$this->data['youtube_code'] = html_entity_decode($product_info['youtube_code'], ENT_QUOTES, 'UTF-8');

5). В файле catalog/model/catalog/product.php находим код:

'model'            => $query->row['model'],

После него добавляем:

'youtube_code'	   => $query->row['youtube_code'],

6). В файле catalog/language/english/english.php добавляем (в любом месте) строку:
(тоже самое проделываем и со всеми остальными файлами локализации)

$_['tab_youtube'] = 'Video';

7). В файле catalog/view/theme/ВАША_ТЕМА/template/product/product.tpl находим код:

<?php if ($images) { ?>   <a href="#tab-images"><?php echo $tab_images; ?>  (<?php echo count($images); ?>)</a><?php } ?>

После него добавляем:

<?php if ($youtube_code) { ?>	<a href="#tab_youtube"><?php echo $tab_youtube; ?></a><?php } ?>

Ниже (в этом же файле) находим код:

<?php if ($products) { ?>  <div id="tab-related" class="tab-content">

Перед ним добавляем:

<?php if ($youtube_code) { ?>	  <div id="tab_youtube" class="tab-content">  <?php echo $youtube_code; ?>   </div><?php } ?>

8). В заключении, у себя на сервере в "phpMyAdmin", необходимо выполнить запрос в базе:

ALTER TABLE `product` ADD `youtube_code` TEXT NOT NULL ;

После этого будет создано новое поле в таблице product, в котором будет храниться ссылка на видео...
(отредактируйте запрос, изменив название таблицы "
product" - если Вы используете префикс)
 
Данный метод будет работать для любого хостинга видео файлов, будь то Vimeo.com или VK.com:

 

video_tab_vimeo.png  video_tab_vk.png

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Оставлять комментарии могут только зарегистрированные пользователи

Пожалуйста, не создавайте новую учетную запись - если Вы ранее уже регистрировались!

Новый пользователь

Зарегистрироваться указав новые Логин и Пароль


Регистрация

Существующий пользователь

Войти используя существующие Логин и Пароль


Авторизация

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу