BxBaseModGroupsFormPrice.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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_NAME']])) {
  21. $sJsObject = $this->_oModule->_oConfig->getJsObject('prices');
  22. $iId = $this->getId();
  23. $aMask = array('mask' => "javascript:%s.checkName('%s');", $sJsObject, $CNF['FIELD_PRICE_NAME']);
  24. if(!empty($iId) && $this->aParams['display'] == $CNF['OBJECT_FORM_PRICE_DISPLAY_EDIT']) {
  25. $aMask['mask'] = "javascript:%s.checkName('%s', %d);";
  26. $aMask[] = $iId;
  27. }
  28. $sOnBlur = call_user_func_array('sprintf', array_values($aMask));
  29. $this->aInputs[$CNF['FIELD_PRICE_NAME']]['attrs']['onblur'] = $sOnBlur;
  30. }
  31. }
  32. public function setAction($sAction)
  33. {
  34. $this->aFormAttrs['action'] = $sAction;
  35. }
  36. public function setRoleId($iRoleId)
  37. {
  38. $CNF = &$this->_oModule->_oConfig->CNF;
  39. $this->aInputs[$CNF['FIELD_PRICE_ROLE_ID']]['value'] = (int)$iRoleId;
  40. if(empty($this->aInputs[$CNF['FIELD_PRICE_NAME']]['value'])) {
  41. $aRoles = $this->_oModule->_oConfig->getRoles();
  42. $this->aInputs[$CNF['FIELD_PRICE_NAME']]['value'] = $this->_oModule->_oConfig->getPriceName(_t($aRoles[$iRoleId]));
  43. }
  44. }
  45. public function insert ($aValsToAdd = array(), $isIgnore = false)
  46. {
  47. $CNF = &$this->_oModule->_oConfig->CNF;
  48. if(isset($this->aInputs[$CNF['FIELD_PRICE_NAME']])) {
  49. $sName = BxDolForm::getSubmittedValue($CNF['FIELD_PRICE_NAME'], $this->aFormAttrs['method'], $this->_aSpecificValues);
  50. $sName = $this->_oModule->_oConfig->getPriceName($sName);
  51. BxDolForm::setSubmittedValue($CNF['FIELD_PRICE_NAME'], $sName, $this->aFormAttrs['method'], $this->_aSpecificValues);
  52. }
  53. return parent::insert ($aValsToAdd, $isIgnore);
  54. }
  55. function update ($iContentId, $aValsToAdd = array(), &$aTrackTextFieldsChanges = null)
  56. {
  57. $CNF = &$this->_oModule->_oConfig->CNF;
  58. $sNameKey = $CNF['FIELD_PRICE_NAME'];
  59. if(isset($this->aInputs[$sNameKey])) {
  60. $sName = $this->getCleanValue($sNameKey);
  61. $aContentInfo = $this->_oModule->_oDb->getPrices(array('type' => 'by_id', 'value' => $iContentId));
  62. if($aContentInfo[$sNameKey] != $sName) {
  63. $sName = $this->_oModule->_oConfig->getPriceName($sName);
  64. BxDolForm::setSubmittedValue($sNameKey, $sName, $this->aFormAttrs['method'], $this->_aSpecificValues);
  65. }
  66. }
  67. return parent::update ($iContentId, $aValsToAdd, $aTrackTextFieldsChanges);
  68. }
  69. public function getId()
  70. {
  71. $iResult = 0;
  72. $aIds = bx_get('ids');
  73. if(!$aIds || !is_array($aIds)) {
  74. $sId = bx_get('id');
  75. if(!empty($sId))
  76. $iResult = $sId;
  77. }
  78. else
  79. $iResult = array_shift($aIds);
  80. return (int)$iResult;
  81. }
  82. }
  83. /** @} */