Добрый день! Подскажите, как можно добавить дополнительные вкладки на странице товара? Модули все доступные перепробовал, не отображается на шаблоне (fastor). Может вручную добавить как нибудь или подстроить модуль под шаблон, подскажите плз!
Сравните файлы своего шаблона со стандартным, скорее всего просто надо прописать вывод. Есть еще платный модуль Если надо сделать статичную (одинаковую) вкладку (например доставка), то можно и без модуля в коде (для этого нужен код product.tpl и адрес сайта). Вообще можно и вручную настроить вывод доп вкладки, где-то выдел мануал.
Нужно что бы для разных товаров разные вкладки можно было создавать.. А не вспомните где мануал можно найти? --- Добавлено, 17 авг 2016 --- Может подскажете как этот код под сторонний шаблон настроить. Это файл install модуля http://www.opencart.com/index.php?r..._id=27209&filter_search=tabs&filter_license=0 Код: <modification> <name>New tab</name> <version>1.1</version> <link>http://store.cartbinder.com/</link> <author>cartbinder.com</author> <code>newtab</code> <file path="admin/controller/catalog/product.php"> <operation> <search><![CDATA[if (isset($this->request->post['points'])) {]]> </search> <add position="before"> <![CDATA[ if ($this->db->query("SHOW TABLES LIKE '". DB_PREFIX ."product_newtabcontent'")->num_rows == 0) { $sql = "CREATE TABLE IF NOT EXISTS `" . DB_PREFIX . "product_newtabcontent` ( `product_id` int(11) NOT NULL, `language_id` int(11) NOT NULL, `newtabcontent`text NOT NULL, `name`varchar(255) NOT NULL ) ENGINE=MyISAM COLLATE=utf8_general_ci"; $this->db->query($sql); } if (isset($this->request->post['product_newtabcontent'])) { $data['product_newtabcontent'] = $this->request->post['product_newtabcontent']; } elseif (isset($this->request->get['product_id'])) { $data['product_newtabcontent'] = $this->model_catalog_product->getProductExtraContent($this->request->get['product_id']); } else { $data['product_newtabcontent'] = array(); } $data['version'] = str_replace(".","",VERSION); ]]></add> </operation> </file> <file path="admin/model/catalog/product.php"> <operation> <search><![CDATA[foreach ($data['product_description'] as $language_id => $value) {]]> </search> <add position="before"> <![CDATA[ $this->db->query("DELETE FROM " . DB_PREFIX . "product_newtabcontent WHERE product_id = '" . (int)$product_id . "'"); foreach ($data['product_newtabcontent'] as $language_id => $value) { $this->db->query("INSERT INTO " . DB_PREFIX . "product_newtabcontent SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', newtabcontent = '" . $this->db->escape($value['newtabcontent']) . "', name = '" . $this->db->escape($value['name']) . "'"); } ]]></add> </operation> <operation> <search><![CDATA[public function getProductOptions($product_id) {]]> </search> <add position="before"> <![CDATA[ public function getProductExtraContent($product_id) { $product_newtabcontent_data = array(); $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_newtabcontent WHERE product_id = '" . (int)$product_id . "'"); foreach ($query->rows as $result) { $product_newtabcontent_data[$result['language_id']] = array( 'newtabcontent' => $result['newtabcontent'], 'name' => $result['name'] ); } return $product_newtabcontent_data; } ]]></add> </operation> </file> <file path="admin/view/template/catalog/product_form.tpl"> <operation> <search><![CDATA[<label class="col-sm-2 control-label" for="input-tag<?php echo $language['language_id']; ?>"><span data-toggle="tooltip" title="<?php echo $help_tag; ?>"><?php echo $entry_tag; ?></span></label>]]> </search> <add position="before"> <![CDATA[ <label class="col-sm-2 control-label" for="input-newtabname<?php echo $language['language_id']; ?>"><span data-toggle="tooltip" title="Tab Name will be shown on product page">New Tab Name</span></label> <div class="col-sm-10"> <input type="text" name="product_newtabcontent[<?php echo $language['language_id']; ?>][name]" value="<?php echo isset($product_newtabcontent[$language['language_id']]) ? $product_newtabcontent[$language['language_id']]['name'] : ''; ?>" placeholder="Enter New Tab Name" id="input-newtabname<?php echo $language['language_id']; ?>" class="form-control" /> </div> </div> <div class="form-group"> <?php if($version < 2200) { ?> <label class="col-sm-2 control-label" for="input-newtabcontent<?php echo $language['language_id']; ?>">New Tab Content</label> <div class="col-sm-10"> <textarea name="product_newtabcontent[<?php echo $language['language_id']; ?>][newtabcontent]" placeholder="Enter New Tab Content" id="input-newtabcontent<?php echo $language['language_id']; ?>"><?php echo isset($product_newtabcontent[$language['language_id']]) ? $product_newtabcontent[$language['language_id']]['newtabcontent'] : ''; ?></textarea> </div> </div> <?php } else { ?> <label class="col-sm-2 control-label" for="input-newtabcontent<?php echo $language['language_id']; ?>">New Tab Content</label> <div class="col-sm-10"> <textarea class="form-control summernote" name="product_newtabcontent[<?php echo $language['language_id']; ?>][newtabcontent]" placeholder="Enter New Tab Content" id="input-newtabcontent<?php echo $language['language_id']; ?>"><?php echo isset($product_newtabcontent[$language['language_id']]) ? $product_newtabcontent[$language['language_id']]['newtabcontent'] : ''; ?></textarea> </div> </div> <?php } ?> <div class="form-group"> ]]></add> </operation> <operation> <search><![CDATA[<?php echo $footer; ?>]]> </search> <add position="before"> <![CDATA[ <?php if($version < 2200) { ?> <script type="text/javascript"><!-- <?php foreach ($languages as $language) { ?> $('#input-newtabcontent<?php echo $language['language_id']; ?>').summernote({height: 300}); <?php } ?> //--></script> <?php } ?> ]]></add> </operation> </file> <file path="catalog/controller/product/product.php"> <operation> <search><![CDATA[$data['points'] = $product_info['points'];]]> </search> <add position="before"> <![CDATA[ $data['newtabcontent'] = html_entity_decode($product_info['newtabcontent'], ENT_QUOTES, 'UTF-8'); $this->load->language('product/newtab'); $data['text_newtabcontent'] = $product_info['newtabcontentname']; ]]></add> </operation> </file> <file path="catalog/model/catalog/product.php"> <operation> <search><![CDATA[return array(]]> </search> <add position="before"> <![CDATA[ $newtabcontent_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_newtabcontent WHERE product_id = '" . (int)$product_id . "' AND language_id = '" . (int)$this->config->get('config_language_id') . "'"); if($newtabcontent_query->num_rows) { $newtabcontent = $newtabcontent_query->row['newtabcontent']; $newtabcontentname = $newtabcontent_query->row['name']; } else { $newtabcontent = ""; $newtabcontentname = ""; } ]]></add> </operation> <operation> <search><![CDATA[return array(]]> </search> <add position="after"> <![CDATA[ 'newtabcontent' => $newtabcontent, 'newtabcontentname' => $newtabcontentname, ]]></add> </operation> </file> <file path="catalog/view/theme/*/template/product/product.tpl"> <operation> <search><![CDATA[<li class="active"><a href="#tab-description" data-toggle="tab"><?php echo $tab_description; ?></a></li>]]> </search> <add position="after"> <![CDATA[ <?php if(isset($newtabcontent) && $newtabcontent) { ?> <li><a href="#tab-newtabcontent" data-toggle="tab"><?php echo $text_newtabcontent; ?></a></li> <?php } ?> ]]></add> </operation> <operation> <search><![CDATA[<div class="tab-pane active" id="tab-description"><?php echo $description; ?></div>]]> </search> <add position="after"> <![CDATA[ <?php if(isset($newtabcontent) && $newtabcontent) { ?> <div class="tab-pane" id="tab-newtabcontent"><?php echo $newtabcontent; ?></div> <?php } ?> ]]></add> </operation> </file> </modification> --- Добавлено, 17 авг 2016 --- А еще большая просьба глянуть на этот модуль. Если не сложно установить. Я установил, и там ошибка. Не пойму зачем там в архиве файл sql. Думаю что это мне знаний не хватает.. А модуль то что надо, и бесплатный.
Например, вот Код: http://www.opencart.com/index.php?route=extension/extension/info&extension_id=5557&filter_username=bull5-i&page=2 У fastor вывод табов в товаре нестандартный, поэтому не заводится. По идее, в product.tpl (читайте комментарии в коде) Код: <div id="tabs" class="htabs"> <?php $i = 0; foreach($tabs as $tab) { $i++; $id = 'tab_'.$i; if($tab['content'] == 'description') { $id = 'tab-description'; } if($tab['content'] == 'attribute') { $id = 'tab-attribute'; } if($tab['content'] == 'review') { $id = 'tab-review'; } echo '<a href="#'.$id.'">'.$tab['heading'].'</a>'; } ?> </div> И перед </div> вставляем <?php if(isset($newtabcontent) && $newtabcontent) { ?> <li><a href="#tab-newtabcontent" data-toggle="tab"><?php echo $text_newtabcontent; ?></a></li> <?php } ?> Дальше, после <div id="tab-description" class="tab-content" itemprop="description"><?php echo $description; ?></div> вставляем <?php if(isset($newtabcontent) && $newtabcontent) { ?> <div class="tab-pane" id="tab-newtabcontent"><?php echo $newtabcontent; ?></div> <?php } ?> Должно работать
Найти можно тут, правда тут вкладка видео, но и для контента ее тоже можно использовать. Правильно samuel_L написал, Вам надо вызовы табов в Ваш шаблон подставить.
Действительно работает! спс! А еще большая просьба рассмотреть этот вопрос: "просьба глянуть на этот модуль. Если не сложно установить. Я установил, и там ошибка. Не пойму зачем там в архиве файл sql. Думаю что это мне знаний не хватает.. А модуль то что надо, и бесплатный." Уж очень модуль удобный!
Наконец то нашел модуль нужной версии Custom Product Tabs PRO 2,4. Разместил его здесь, надеюсь будет полезен. Но! Опять не отображается в нужном шаблоне (fastor). Пробовал тот же код вставить в product.tpl как вы советовали раньше, но в этом случае не помогает. Подскажите еще раз, пожалуйста, какие необходимо внести правки, для корректного отображения данного модуля. Заранее благодарен!
открываете файл vqmod. во втором случае custom_product_tab_default_theme_patch.xml ищете строку, которая вносит изменения в product.tpl <search position="replace"> означает что нужно заменить фрагмент кода, на тот, который указан ниже после <add><![CDATA[ вручную вносите изменения и все заработает. в файлах ocmod,vqmod нет ничего сложного, все изменения на уровне пользователя блокнота обычно
А что конкретно нужно править? Там строка <search position="replace"><![CDATA[ встречается 3 раза и непонятно что на что нужно исправить. --- Добавлено, 18 авг 2016 --- Правлю, но к сожалению пока что ошибки.. Спасибо за советы! Все работает!)