1
0

BxBaseModGroupsFormPrice.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <?php defined('BX_DOL') or die('hack attempt');
  2. /**
  3. * Copyright (c) UNA, Inc - https://una.io
  4. * MIT License - https://opensource.org/licenses/MIT
  5. *
  6. * @defgroup BaseGroups Base classes for groups modules
  7. * @ingroup UnaModules
  8. *
  9. * @{
  10. */
  11. class BxBaseModGroupsFormPrice extends BxTemplFormView
  12. {
  13. protected $_sModule;
  14. protected $_oModule;
  15. public function __construct($aInfo, $oTemplate = false)
  16. {
  17. parent::__construct($aInfo, $oTemplate);
  18. $this->_oModule = BxDolModule::getInstance($this->_sModule);
  19. $CNF = &$this->_oModule->_oConfig->CNF;
  20. if(isset($this->aInputs[$CNF['FIELD_PRICE_ROLE_ID']])) {
  21. $aRoles = $this->_oModule->_oConfig->getRolesPurchasable();
  22. $this->aInputs[$CNF['FIELD_PRICE_ROLE_ID']]['values'][] = ['key' => '', 'value' => _t('_sys_please_select')];
  23. foreach($aRoles as $iId => $sTitle)
  24. $this->aInputs[$CNF['FIELD_PRICE_ROLE_ID']]['values'][] = [
  25. 'key' => 'r' . $iId,
  26. 'value' => _t($sTitle)
  27. ];
  28. }
  29. if(isset($this->aInputs[$CNF['FIELD_PRICE_NAME']])) {
  30. $sJsObject = $this->_oModule->_oConfig->getJsObject('prices');
  31. $iId = $this->getItemId();
  32. $aMask = array('mask' => "javascript:%s.checkName(this, '%s');", $sJsObject, $CNF['FIELD_PRICE_NAME']);
  33. if(!empty($iId) && $this->aParams['display'] == $CNF['OBJECT_FORM_PRICE_DISPLAY_EDIT']) {
  34. $aMask['mask'] = "javascript:%s.checkName(this, '%s', %d);";
  35. $aMask[] = $iId;
  36. }
  37. $sOnBlur = call_user_func_array('sprintf', array_values($aMask));
  38. $this->aInputs[$CNF['FIELD_PRICE_NAME']]['attrs']['onblur'] = $sOnBlur;
  39. }
  40. }
  41. public function setRoleId($iRoleId)
  42. {
  43. if($iRoleId === false)
  44. return;
  45. $CNF = &$this->_oModule->_oConfig->CNF;
  46. $this->aInputs[$CNF['FIELD_PRICE_ROLE_ID']]['value'] = $this->_oModule->_oConfig->roleIdI2S($iRoleId);
  47. if(empty($this->aInputs[$CNF['FIELD_PRICE_NAME']]['value'])) {
  48. $aRoles = $this->_oModule->_oConfig->getRoles();
  49. $this->aInputs[$CNF['FIELD_PRICE_NAME']]['value'] = $this->_oModule->_oConfig->getPriceName(_t($aRoles[$iRoleId]));
  50. }
  51. }
  52. public function insert ($aValsToAdd = [], $isIgnore = false)
  53. {
  54. $CNF = &$this->_oModule->_oConfig->CNF;
  55. if(isset($this->aInputs[$CNF['FIELD_PRICE_NAME']])) {
  56. $sName = BxDolForm::getSubmittedValue($CNF['FIELD_PRICE_NAME'], $this->aFormAttrs['method'], $this->_aSpecificValues);
  57. $sName = $this->_oModule->_oConfig->getPriceName($sName);
  58. BxDolForm::setSubmittedValue($CNF['FIELD_PRICE_NAME'], $sName, $this->aFormAttrs['method'], $this->_aSpecificValues);
  59. }
  60. return parent::insert ($aValsToAdd, $isIgnore);
  61. }
  62. function update ($iContentId, $aValsToAdd = array(), &$aTrackTextFieldsChanges = null)
  63. {
  64. $CNF = &$this->_oModule->_oConfig->CNF;
  65. $sNameKey = $CNF['FIELD_PRICE_NAME'];
  66. if(isset($this->aInputs[$sNameKey])) {
  67. $sName = $this->getCleanValue($sNameKey);
  68. $aContentInfo = $this->_oModule->_oDb->getPrices(array('type' => 'by_id', 'value' => $iContentId));
  69. if($aContentInfo[$sNameKey] != $sName) {
  70. $sName = $this->_oModule->_oConfig->getPriceName($sName);
  71. BxDolForm::setSubmittedValue($sNameKey, $sName, $this->aFormAttrs['method'], $this->_aSpecificValues);
  72. }
  73. }
  74. return parent::update ($iContentId, $aValsToAdd, $aTrackTextFieldsChanges);
  75. }
  76. public function getItemId()
  77. {
  78. $iResult = 0;
  79. $aIds = bx_get('ids');
  80. if(!$aIds || !is_array($aIds)) {
  81. $sId = bx_get('id');
  82. if(!empty($sId))
  83. $iResult = $sId;
  84. }
  85. else
  86. $iResult = array_shift($aIds);
  87. return (int)$iResult;
  88. }
  89. }
  90. /** @} */