Ver Fonte

Ticket #4971 - Build-in API support: Pricing in Contexts.

AntonLV há 10 meses atrás
pai
commit
51c2acdafe

+ 2 - 2
modules/base/groups/classes/BxBaseModGroupsGridPrices.php

@@ -65,7 +65,7 @@ class BxBaseModGroupsGridPrices extends BxTemplGrid
                 $mixedValue = _t($CNF['T']['txt_n_unit'], $mixedValue, _t($this->_aPeriodUnits[$aRow['period_unit']]));
                 $mixedValue = _t($CNF['T']['txt_n_unit'], $mixedValue, _t($this->_aPeriodUnits[$aRow['period_unit']]));
         }
         }
         else
         else
-            $mixedValue = ['period' => $mixedValue, 'unit' => $aRow['period_unit']];
+            $mixedValue = ['type' => 'period', 'period' => $mixedValue, 'unit' => $aRow['period_unit']];
 
 
         return parent::_getCellDefault($mixedValue, $sKey, $aField, $aRow);
         return parent::_getCellDefault($mixedValue, $sKey, $aField, $aRow);
     }
     }
@@ -83,7 +83,7 @@ class BxBaseModGroupsGridPrices extends BxTemplGrid
                 $mixedValue = _t('_free');
                 $mixedValue = _t('_free');
         }
         }
         else
         else
-            $mixedValue = ['value' => $mixedValue, 'currency' => $aCurrency['code']];
+            $mixedValue = ['type' => 'price', 'value' => $mixedValue, 'currency' => $aCurrency['code']];
 
 
         return parent::_getCellDefault($mixedValue, $sKey, $aField, $aRow);
         return parent::_getCellDefault($mixedValue, $sKey, $aField, $aRow);
     }
     }

+ 8 - 2
modules/base/groups/classes/BxBaseModGroupsModule.php

@@ -1218,10 +1218,16 @@ class BxBaseModGroupsModule extends BxBaseModProfileModule
 
 
         $oGrid->setProfileId($iProfileId);
         $oGrid->setProfileId($iProfileId);
 
 
-        if($this->_bIsApi)
+        if($this->_bIsApi) {
+            $aContentInfo = $this->_oDb->getContentInfoByProfileId($iProfileId);
+
             return [
             return [
-                bx_api_get_block('pricing', array_merge_recursive($oGrid->getCodeAPI(true), ['settings' => ['unit' => 'productlist']]))
+                bx_api_get_block('pricing', array_merge_recursive($oGrid->getCodeAPI(true), ['settings' => [
+                    'context_name' => $aContentInfo[$CNF['FIELD_TITLE']],
+                    'unit' => 'productlist'
+                ]]))
             ];
             ];
+        }
 
 
         return $oGrid->getCode();
         return $oGrid->getCode();
     }
     }

+ 10 - 2
template/scripts/BxBaseGrid.php

@@ -733,8 +733,16 @@ class BxBaseGrid extends BxDolGrid
 
 
     protected function _getCellDefault ($mixedValue, $sKey, $aField, $aRow)
     protected function _getCellDefault ($mixedValue, $sKey, $aField, $aRow)
     {
     {
-        if($this->_bIsApi)
-            return ['type' => 'text', 'value'=> (int)$aField['translatable'] ? _t($mixedValue) : $mixedValue];    
+        if($this->_bIsApi) {
+            $sType = $mixedValue['type'] ?? 'text';
+            if(isset($mixedValue['type']))
+                unset($mixedValue['type']);
+
+            return [
+                'type' =>  $sType, 
+                'value'=> (int)$aField['translatable'] ? _t($mixedValue) : $mixedValue
+            ];
+        }
 
 
         $sAttr = $this->_convertAttrs(
         $sAttr = $this->_convertAttrs(
             $aField, 'attr_cell',
             $aField, 'attr_cell',