Карточка товара в Virtuemart ограничен только Описанием и кратким описанием. Это не очень удобно, когда, например, нужно вывести разные блоки, редактируемые через админку, в нескольких позициях товара.
Как пример реализации — вывод еще одного описания в категории:
В категории добавили новое поле, которое не отображается на странице товара. В карточке — краткое описание и полное описание.
Для того, чтобы добавить новое поле в Virtuemart 3, сначала нужно добавить поле в вашей БД в таблицу `ваш_префикс_virtuemart_products_ru_ru`:
ALTER TABLE `ваш_префикс
_virtuemart_products_ru_ru` ADD `product_newfield` TEXT NOT NULL
Следующий шаг — оторазить поле в админке: administrator\components\com_virtuemart\views\product\tmpl\product_edit_description.php
Это шаблон страницы редактирования описания товара. Можно добавить в любом в папке tmpl, если в этом есть необходимость.
Нужно добавить:
<fieldset> <legend><?php echo JText::_('Название поля') ?></legend> <?php echo $this->editor->display('product_newfield
', $this->product->product_newfield
, '100%;', '550', '75', '20', array('pagebreak', 'readmore') ) ; ?> </fieldset>
Дальше — в файле /administrator/components/com_virtuemart/tables/products.php нужно добавить переменную для нового поля:
var $product_sizes = ''; В строчке
$this->setTranslatable(array('product_name','product_s_desc','product_desc','metadesc','metakey','customtitle'));
дописываем наше поле. В итоге должно быть так:
$this->setTranslatable(array('product_name','product_s_desc','product_desc','product_newfield','metadesc','metakey','customtitle'));
Теперь осталось вывести новое поле в шаблоне товара на сайте.
Для того, чтобы вывести на странице товара, вам нужно в файле /components/com_virtuemart/views/productdetails/tmpl/default.php
добавить
<?php // Новое поле if (!empty($this->product->product_newfield)) { ?> <div> <?php echo $this->product->product_newfield; ?> </div> <?php } // Новое поле конец ?>