Как добавить пользовательскую вкладку на странице сведений о продукте на стороне администратора (Opencart)
3 ответа
Чтобы добавить новую вкладку в форму редактирования продукта с помощью OCmod -
Создайте новый файл и скопируйте в него код ниже. Сохраните этот файл с расширением.ocmod.xml (пример - addtab.ocmod.xml)
<modification> <name>Add tab</name> <version>1.0</version> <link>test</link> <author>test</author> <code>add_tab_to_product</code> <file path="admin/view/template/catalog/product_form.tpl"> <operation> <search><![CDATA[<li><a href="#tab-design" data-toggle="tab"><?php echo $tab_design; ?></a></li>]]></search> <add position="after"><![CDATA[<li><a href="#tab-shipping" data-toggle="tab"><?php echo $tab_shipping; ?></a></li>]]></add> </operation> <operation> <search><![CDATA[<div class="tab-pane" id="tab-design">]]></search> <add position="before"><![CDATA[<div class="tab-pane" id="tab-shipping">Write contents of tab Shipping here...</div>]]></add> </operation> </file> <file path="admin/controller/catalog/product.php"> <operation> <search><![CDATA[$data['tab_design'] = $this->language->get('tab_design');]]></search> <add position="after"><![CDATA[$data['tab_shipping'] = $this->language->get('tab_shipping');]]></add> </operation> </file> </modification>
Перейдите в Extension > Extension Installer, нажмите кнопку загрузки и загрузите вышеуказанный сохраненный файл.
Убедитесь, что расширение присутствует и включено в списке изменений. Обновить кеш (Расширение> Модификация> Обновить кеш).
Обновите свою страницу, и вы увидите вкладку Доставка в форме редактирования продукта.
Это проверено с OpenCart версии 2.1.x
Aki,
Если вы используете opencart2.x, то вы будете использовать ocmod для создания настраиваемой вкладки в product_form.tpl, а также в файле контроллера и модели. Вы не хотите менять основные файлы для opencart. поэтому, когда вы будете обновлять OpenCart, то ваши файлы данных не будут потеряны.
OCMOD Ref.
И если вы не используете opencart2.x, то вы будете использовать vqmod для создания расширения.
Ну, есть еще кое-что, поскольку вы забыли добавить tab_shipping в файл "admin/language/en-gb/en-gb.php". Теперь он будет работать, но вместо вкладки будет отображаться "tab_shipping" на вкладке.
<?xml version="1.0" encoding="UTF-8"?>
<modification
xmlns="https://github.com/vqmod/vqmod"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://github.com/vqmod/vqmod https://raw.githubusercontent.com/vqmod/vqmod/master/vqmod.xsd">
>
<id>Add Shipping tab Product Page</id>
<version>1.0</version>
<vqmver>2.X</vqmver>
<author>Your Name</author>
<code>add_tab_to_product</code>
<file path="admin/view/template/catalog/product_form.tpl">
<operation>
<search><![CDATA[<li><a href="#tab-design" data-toggle="tab"><?php echo $tab_design; ?></a></li>]]></search>
<add position="after"><![CDATA[<li><a href="#tab-shipping" data-toggle="tab"><?php echo $tab_shipping; ?></a></li>]]></add>
</operation>
<operation>
<search><![CDATA[<div class="tab-pane" id="tab-design">]]></search>
<add position="before"><![CDATA[<div class="tab-pane" id="tab-shipping">Write contents of tab Customize here...</div>]]></add>
</operation>
</file>
<file path="admin/controller/catalog/product.php">
<operation>
<search><![CDATA[$data['tab_design'] = $this->language->get('tab_design');]]></search>
<add position="after"><![CDATA[$data['tab_shipping'] = $this->language->get('tab_shipping');]]></add>
</operation>
</file>
<file path="admin/language/en-gb/en-gb.php">
<operation>
<search><![CDATA[$_['tab_design'] = 'Design';]]></search>
<add position="after"><![CDATA[$_['tab_shipping'] = 'Shipping';]]></add>
</operation>
</file>
</modification>