Как добавить новое поле в админку Virtuemart
Автор статьи Владимир Порохин - comnara[at]mail.ru
10.06.2010
Как создать галочку export в настройках товара VirtueMart
1. Нужно создать поле в базе данных выполнив этот запрос зайдя в админку phpMyAdmin закладка SQL
ALTER TABLE jos_vm_product ADD export CHAR( 1 ) NOT NULL ;
или чтобы не заходить в админку phpMyAdmin можно добавить строки в php и он автоматом создаст это поле но после одного запуска нужно их удалить
administrator\components\com_virtuemart\html\product.product_form.php в 126 строку добавить
перед строками
// Get category IDs
добавить это
$db5 = new ps_DB;
$q = "ALTER TABLE `#__{vm}_product` ADD `export` CHAR( 1 ) NOT NULL ;";
$db5->query($q);
2. Создаем галочку (checkbox) в админку по товару.
Находим этот код в
administrator\components\com_virtuemart\html\product.product_form.php приблизительно 203 строка
<tr class="row0">
<td width="21%" ><div style="text-align:right;font-weight:bold;">
_('PHPSHOP_PRODUCT_FORM_PUBLISH') ?>:</div>
</td>
<td width="79%" > <?php
if ($db->sf("product_publish")=="Y") {
echo "<input type=\"checkbox\" name=\"product_publish\" value=\"Y\" checked=\"checked\" />";
}
else {
echo "<input type=\"checkbox\" name=\"product_publish\" value=\"Y\" />";
}
?></td>
</tr>
после него добавляем код это и есть наша галочка
<tr class="row0">
<td width="21%" ><div style="text-align:right;font-weight:bold;">
_('PHPSHOP_PRODUCT_FORM_EXPORT') ?>:</div>
</td>
<td width="79%" > <?php
if ($db->sf("export")=="1") {
echo "<input type=\"checkbox\" name=\"export\" value=\"1\" checked=\"checked\" />";
}
else {
echo "<input type=\"checkbox\" name=\"export\" value=\"1\" />";
}
?></td>
</tr>
3. Делаем проверку состояния галочки в админке ВМ по товару
administrator\components\com_virtuemart\classes\ps_product.php приблизительно после строки 170
$d["product_publish"] = empty($d["product_publish"]) ? "N" : "Y";
добавляем нашу строку
$d["export"] = empty($d["export"]) ? "0" : "1";
4. Добавляем строку для добавления нового товара в функии add( &$d )
administrator\components\com_virtuemart\classes\ps_product.php примерно после строки 283
'product_publish' => $d['product_publish'],
добавляем нашу строку
'export' => $d['export'],
5. Добавлчем строку для изменения товара в функии update( &$d )
administrator\components\com_virtuemart\classes\ps_product.php примерно после строки 484
'product_publish' => $d['product_publish'],
добавляем нашу строку
'export' => $d['export'],
6. Делаем перевод описания параметра в админке ВМ по товару
administrator\components\com_virtuemart\languages\product\russian.php после строки 57
'PHPSHOP_PRODUCT_FORM_PUBLISH' => 'Опубликовать?',
добавляем нашу строку
'PHPSHOP_PRODUCT_FORM_EXPORT' => 'В наличии - для экспорта на торговые площадки',
Все желаю удачи можно пользоваться
От администрации сайта Inetta.RU:
Инструкция пошагово проверена. Работает 100%.
