Моля, влезте или се регистрирайте.
Изгубен регистрационен е-мейл?

136,849 Общо мнения в 17,186 Теми от 3,040 Потребители
Последен член: hip_hop_party
Джумла! България  |  Компоненти, модули, шаблони  |  Компоненти  |  VirtueMart (ВиртюеМарт),модули и ботове  |  Добавяне на нова променлива към продукт във VirtueMart « назад напред »
Страници: [1]
Печат
Автор Тема: Добавяне на нова променлива към продукт във VirtueMart  (Прочетена 180 пъти)
assun
За малко е тук
*

Karma: +104/-0
Offline Offline

Публикации: 7



Ел. поща
« : Юли 29, 2010, 21:14:16 »

Във PDF-a по-долу е малко по четливо.

Ще разгледам два варианта за добавяне на атрибут.
Единият ще е от вида:
Размер: 15/15-20/15см – променливата ще се казва $product_ size
втория ще е чекбокс - променливата ще се казва $product_sq

\administrator\components\com_virtuemart\languages\common\bulgarian.php
19   $langvars = array (
20   'PHPSHOP_PRODUCT_SIZE'  => 'Размер',  //add this
21   'PHPSHOP_PRODUCT_SIZE_TIP'  => 'Въведи размер до 40 символа',
22   'PHPSHOP_PRODUCT_SQ'  => 'Показва м/кв',
23   'PHPSHOP_PRODUCT_SQ_P'  => '*Цената е за квадратен метър',
Добаваме няколко реда в bulgarian.php и в english.php за да имаме превод на съответния език.

\administrator\components\com_virtuemart\html\product.product_form.php
При нов продукт дали да е чекнат „чекбокса” (ако този ред го няма „чекбокса” няма да е чекнат)
152   $default["product_unit"] = $VM_LANG->_('PHPSHOP_PRODUCT_FORM_UNIT_DEFAULT');
153   $default["product_sq"] = "Y";  //add this

Мястото кадето ще въвеждате стойностите
782   <table class="adminform">
783   <tr class="row0">  <!-- add this -->
784   <td width="21%" valign="top" >
785   <div style="text-align:right;font-weight:bold;"><?php echo $VM_LANG->_('PHPSHOP_PRODUCT_SIZE') ?>:</div>
786   </td>
787   <td width="79%" >
788   <input type="text" class="inputbox"  name="product_size" value="<? $db->sp("product_size"); ?>" size="40" maxlength="40" /><?php echo vmToolTip( $VM_LANG->_('PHPSHOP_PRODUCT_SIZE_TIP') ) ?>
789   </td>
790   </tr>
791    <tr class="row0">
792    <td width="29%" ><div style="text-align:right;font-weight:bold;">
793    <?php echo $VM_LANG->_('PHPSHOP_PRODUCT_SQ') ?>:</div></td>
794    <td width="71%" ><?php
795    if ($db->sf("product_sq")=="Y") {
796    echo "<input type=\"checkbox\" name=\" product_sq\" value=\"Y\" checked=\"checked\" />";
797    }
798    else {
799    echo "<input type=\"checkbox\" name=\" product_sq\" value=\"Y\" />";
800    }
801    ?></td>
802   </tr>

\administrator\components\com_virtuemart\html\product.product_display.php
Показва атрибутите на продукта след „Запис”
160   <legend><strong><?php echo $dim_weight_label ?></strong></legend>
161   
162   <div class="formLabel"> <?php echo $VM_LANG->_('PHPSHOP_PRODUCT_SIZE') ?>:</div>
163   <div class="formField" > <?php echo $db->f("product_size"); ?></div>
164   <div class="formLabel"> <?php echo $VM_LANG->_('PHPSHOP_PRODUCT_SQ') ?>:</div>
165   <div class="formField" > <?php echo vmCommonHTML::getYesNoIcon( $db->f("product_sq") ); ?></div>

\administrator\components\com_virtuemart\classes\ps_product.php
171   $d["product_special"] = empty($d["product_special"]) ? "N" : "Y";
172   $d["product_sq"] = empty($d["product_sq"]) ? "N" : "Y";  //add this
173    //parse quantity and child options
...
273   // Insert into DB
274   $fields = array ( 'vendor_id' => $vendor_id,
275    'product_size' => vmGet($d,'product_size'),  //add this
276   'product_sq' => vmGet($d,'product_sq'), //add this
...
476   // Insert into DB
477   $fields = array ( 'vendor_id' => $vendor_id,
478    'product_size' => vmGet($d,'product_size'), //add this
479   'product_sq' => vmGet($d,'product_sq'), //add this


\administrator\components\com_virtuemart\sql\sql.virtuemart.php
443   $db->query( "INSERT INTO `#__{vm}_csv` VALUES (1, 'product_sku', '', 1, 'Y'),
...   
467    (25, 'attribute_values', '', 25, 'N'),
468    (26, 'product_size', '', 26, 'N'),
469   (27, 'product_sq', '', 27, 'N'); " );
 
Няколко промени в базата данни( MySQL)
Във таблица jos_vm_product в края на таблицата добавяте ново поле:
Поле         product_size
Тип         VARCHAR
Дължина/Стойност*1   40
Колация   
Атрибути   
Празно         null

и за втората променлива:
Поле         product_sq
Тип         CHAR
Дължина/Стойност*1   1
Колация   
Атрибути   
Празно         null
 
До този момент тези две променливи са видими само в flypage_images.tpl.php
30    <td rowspan="1" colspan="2">
31    <?php echo $VM_LANG->_('PHPSHOP_PRODUCT_SIZE') .': ' .$product_size .'</br>' ;
32    if ($product_sq == 'Y'){
33    echo $VM_LANG->_('PHPSHOP_PRODUCT_SQ_P');}
34    ?>
35   </td>

Тези променливи не се виждат във browse_1.php:
28    <td align="left" valign="top"><?php echo $VM_LANG->_('PHPSHOP_PRODUCT_SIZE') .': '
29    .$product_size .'</br>' ;
30    if ($product_sq == 'Y'){
31   echo $VM_LANG->_('PHPSHOP_PRODUCT_SQ_P');} ?></td>

За да направим и там видими тези променливи:
administrator\components\com_virtuemart\html\shop.browse.php
439   // Unset these for the next product
440   unset($full_image_width);
441   unset($full_image_height);
442   $products[$i]['product_size'] = $db_browse->f("product_size"); //add this
443   $products[$i]['product_sq'] = $db_browse->f("product_sq"); //add this

administrator\components\com_virtuemart\html\ shop_browse_queries.php
36   // These are the names of all fields we fetch data from
37   $fieldnames = "`product_name`,`products_per_row`,`category_browsepage`,`category_flypage`, `#__{vm}_category`.`category_id`,
38   `#__{vm}_product`.`product_id`,`product_full_image`,`product_thumb_image`,`product_s_desc`,`product_parent_id`,`product_publish`,`product_in_stock`,`product_sku`, `product_url`,`product_size`,`product_sq`,
 

* new_var.pdf (201.46 КВ - свалено 9 пъти.)
« Последна редакция: Юли 29, 2010, 21:40:45 от assun » Активен
kamen_nenov
Задържал се
*

Karma: +106/-0
Offline Offline

Публикации: 147



« Отговор #1 : Юли 29, 2010, 23:01:41 »

Не знам дали работи, не ми се налага да го използвам, но адмирации за положения труд  Одобрявам
Активен
Copyman
Загряващ
*

Karma: +341/-0
Offline Offline

Публикации: 229



WWW Ел. поща
« Отговор #2 : Юли 31, 2010, 17:18:08 »

Работи !! , по почти същия начин и аз съм решил проблема  Намигване ... Сложих  4-5 допълнителни полета .  Адмирации за Венци Генчев  Одобрявам
http://forum.virtuemart.net/index.php?topic=59343.msg208801
« Последна редакция: Юли 31, 2010, 17:21:00 от Copyman » Активен

Никога не карай по бързо от колкото може да лети твоя ангел хранител !
Венци Генчев
Загряващ
*

Karma: +251/-5
Offline Offline

Публикации: 234



« Отговор #3 : Юли 31, 2010, 20:29:27 »

Благодаря Copyman.  Усмивка
Все пак същото съм го писал и тук на български.  Намигване
http://forum.joomla-bg.com/index.php?topic=17967.msg112328#msg112328
Активен
Иво Апостолов
/Командва парада/
Администратор
Секс Гуру
*

Karma: +19302/-0
Offline Offline

Публикации: 15,142


Джумла! България


WWW
« Отговор #4 : Юли 31, 2010, 22:55:44 »

Айде вкарайте го и у фака...
Активен

Страници: [1]
Печат
Джумла! България  |  Компоненти, модули, шаблони  |  Компоненти  |  VirtueMart (ВиртюеМарт),модули и ботове  |  Добавяне на нова променлива към продукт във VirtueMart « назад напред »
Отиди на: