1
0

BxBaseModGroupsFormPrice.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  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->getItemId();
  23. $aMask = array('mask' => "javascript:%s.checkName(this, '%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(this, '%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 setRoleId($iRoleId)
  33. {
  34. $CNF = &$this->_oModule->_oConfig->CNF;
  35. $this->aInputs[$CNF['FIELD_PRICE_ROLE_ID']]['value'] = (int)$iRoleId;
  36. if(empty($this->aInputs[$CNF['FIELD_PRICE_NAME']]['value'])) {
  37. $aRoles = $this->_oModule->_oConfig->getRoles();
  38. $this->aInputs[$CNF['FIELD_PRICE_NAME']]['value'] = $this->_oModule->_oConfig->getPriceName(_t($aRoles[$iRoleId]));
  39. }
  40. }
  41. public function insert ($aValsToAdd = array(), $isIgnore = false)
  42. {
  43. $CNF = &$this->_oModule->_oConfig->CNF;
  44. if(isset($this->aInputs[$CNF['FIELD_PRICE_NAME']])) {
  45. $sName = BxDolForm::getSubmittedValue($CNF['FIELD_PRICE_NAME'], $this->aFormAttrs['method'], $this->_aSpecificValues);
  46. $sName = $this->_oModule->_oConfig->getPriceName($sName);
  47. BxDolForm::setSubmittedValue($CNF['FIELD_PRICE_NAME'], $sName, $this->aFormAttrs['method'], $this->_aSpecificValues);
  48. }
  49. return parent::insert ($aValsToAdd, $isIgnore);
  50. }
  51. function update ($iContentId, $aValsToAdd = array(), &$aTrackTextFieldsChanges = null)
  52. {
  53. $CNF = &$this->_oModule->_oConfig->CNF;
  54. $sNameKey = $CNF['FIELD_PRICE_NAME'];
  55. if(isset($this->aInputs[$sNameKey])) {
  56. $sName = $this->getCleanValue($sNameKey);
  57. $aContentInfo = $this->_oModule->_oDb->getPrices(array('type' => 'by_id', 'value' => $iContentId));
  58. if($aContentInfo[$sNameKey] != $sName) {
  59. $sName = $this->_oModule->_oConfig->getPriceName($sName);
  60. BxDolForm::setSubmittedValue($sNameKey, $sName, $this->aFormAttrs['method'], $this->_aSpecificValues);
  61. }
  62. }
  63. return parent::update ($iContentId, $aValsToAdd, $aTrackTextFieldsChanges);
  64. }
  65. public function getItemId()
  66. {
  67. $iResult = 0;
  68. $aIds = bx_get('ids');
  69. if(!$aIds || !is_array($aIds)) {
  70. $sId = bx_get('id');
  71. if(!empty($sId))
  72. $iResult = $sId;
  73. }
  74. else
  75. $iResult = array_shift($aIds);
  76. return (int)$iResult;
  77. }
  78. }
  79. /** @} */