Печать

Дополнительное поле в Virtuemart 3

 

Подготовка БД:

Первое что надо сделать это добавить колонку в таблицу префикс_virtuemart_products_ru_ru. Выполним запрос

ALTER TABLE  `j_virtuemart_products_ru_ru` ADD  `dop_pole` TEXT( 1000 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `product_desc`

Нужно не забыть заменить префикс в названии таблицы на свой! (префикс_virtuemart_products_ru_ru)

Добавляем поле в админку Virtuemart:

Находим в начале файла \administrator\components\com_virtuemart\views\ product\tmpl\product_edit_description.php

<fieldset>
<legend><?php echo JText::_ (‘COM_VIRTUEMART_PRODUCT_FORM_S_DESC’) ?></legend>
<textarea class="inputbox" name="product_s_desc" id="product_s_desc" cols="65" rows="3″ ><?php echo $this->product->product_s_desc; ?></textarea>
</fieldset>

После него вставляем

<fieldset>
<legend>Название поля или языковая переменная</legend>
<textarea class="inputbox" name="dop_pole" id="dop_pole" cols="65" rows="3" ><?php echo $this->product->dop_pole; ?></textarea>
</fieldset>

Теперь нужно объявить переменную. В файле /administrator/components/com_virtuemart/ tables/products.php после

var $product_desc = NULL;

вставляем

var $dop_pole = NULL;

в конце файла находим строку

$this->setTranslatable(array('product_name', 'product_s_desc','product_desc','metadesc','metakey', 'customtitle'));

добавляем в него значение своего дополнительного поля чтобы получилось так

$this->setTranslatable(array('product_name', 'product_s_desc','product_desc','dop_pole','metadesc','metakey', 'customtitle'));

После этих действий поле будет сохраняться в бд и выводиться в админке. 

Добавляем позицию в шаблон Virtuemart:

В нужном месте шаблона /components/com_virtuemart/ views/productdetails/tmpl/default.php нужно вставить

<?php if (!empty($this->product->dop_pole)) { ?>
<?php echo $this->product->dop_pole; ?>
<?php } ?>

Добавить комментарий


Защитный код
Обновить