BxAclFormPrice.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  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 PaidLevels Paid Levels
  7. * @ingroup UnaModules
  8. *
  9. * @{
  10. */
  11. class BxAclFormPrice extends BxTemplFormView
  12. {
  13. protected $_sModule;
  14. protected $_oModule;
  15. public function __construct($aInfo, $oTemplate = false)
  16. {
  17. $this->_sModule = 'bx_acl';
  18. $this->_oModule = BxDolModule::getInstance($this->_sModule);
  19. parent::__construct($aInfo, $oTemplate);
  20. $CNF = &$this->_oModule->_oConfig->CNF;
  21. if(isset($this->aInputs[$CNF['FIELD_NAME']])) {
  22. $sJsObject = $this->_oModule->_oConfig->getJsObject('form');
  23. $iId = $this->getId();
  24. $aMask = array('mask' => "javascript:%s.checkName('%s');", $sJsObject, $CNF['FIELD_NAME']);
  25. if(!empty($iId) && $this->aParams['display'] == $CNF['OBJECT_FORM_PRICE_DISPLAY_EDIT']) {
  26. $aMask['mask'] = "javascript:%s.checkName('%s', %d);";
  27. $aMask[] = $iId;
  28. }
  29. $sOnBlur = call_user_func_array('sprintf', array_values($aMask));
  30. $this->aInputs[$CNF['FIELD_NAME']]['attrs']['onblur'] = $sOnBlur;
  31. }
  32. }
  33. public function setAction($sAction)
  34. {
  35. $this->aFormAttrs['action'] = $sAction;
  36. }
  37. public function setLevelId($iLevelId)
  38. {
  39. $CNF = &$this->_oModule->_oConfig->CNF;
  40. $this->aInputs[$CNF['FIELD_LEVEL_ID']]['value'] = $iLevelId;
  41. if(!empty($iLevelId) && empty($this->aInputs[$CNF['FIELD_NAME']]['value'])) {
  42. $aLevel = $this->_oModule->_oDb->getLevels(array('type' => 'by_id', 'value' => $iLevelId));
  43. $this->aInputs[$CNF['FIELD_NAME']]['value'] = $this->_oModule->_oConfig->getPriceName(_t($aLevel['name']));
  44. }
  45. }
  46. public function getCode($bDynamicMode = false)
  47. {
  48. $sJs = $this->_oModule->_oTemplate->addJs(array('form.js'), $bDynamicMode);
  49. $sCode = '';
  50. if($bDynamicMode)
  51. $sCode .= $sJs;
  52. $sCode .= $this->_oModule->_oTemplate->getJsCode('form');
  53. $sCode .= parent::getCode($bDynamicMode);
  54. return $sCode;
  55. }
  56. /*
  57. public function initChecker ($aValues = array (), $aSpecificValues = array())
  58. {
  59. $CNF = &$this->_oModule->_oConfig->CNF;
  60. $bValues = $aValues && !empty($aValues[$CNF['FIELD_ID']]);
  61. if(isset($this->aInputs[$CNF['FIELD_NAME']])) {
  62. if ($bValues)
  63. $this->aInputs[$CNF['FIELD_POLL']]['content_id'] = $aValues['id'];
  64. }
  65. parent::initChecker ($aValues, $aSpecificValues);
  66. }
  67. */
  68. public function insert ($aValsToAdd = array(), $isIgnore = false)
  69. {
  70. $CNF = &$this->_oModule->_oConfig->CNF;
  71. if(isset($this->aInputs[$CNF['FIELD_NAME']])) {
  72. $sName = BxDolForm::getSubmittedValue($CNF['FIELD_NAME'], $this->aFormAttrs['method'], $this->_aSpecificValues);
  73. $sName = $this->_oModule->_oConfig->getPriceName($sName);
  74. BxDolForm::setSubmittedValue($CNF['FIELD_NAME'], $sName, $this->aFormAttrs['method'], $this->_aSpecificValues);
  75. }
  76. return parent::insert ($aValsToAdd, $isIgnore);
  77. }
  78. function update ($iContentId, $aValsToAdd = array(), &$aTrackTextFieldsChanges = null)
  79. {
  80. $CNF = &$this->_oModule->_oConfig->CNF;
  81. $sNameKey = $CNF['FIELD_NAME'];
  82. if(isset($this->aInputs[$sNameKey])) {
  83. $sName = $this->getCleanValue($sNameKey);
  84. $aContentInfo = $this->_oModule->_oDb->getPrices(array('type' => 'by_id', 'value' => $iContentId));
  85. if($aContentInfo[$sNameKey] != $sName) {
  86. $sName = $this->_oModule->_oConfig->getPriceName($sName);
  87. BxDolForm::setSubmittedValue($sNameKey, $sName, $this->aFormAttrs['method'], $this->_aSpecificValues);
  88. }
  89. }
  90. return parent::update ($iContentId, $aValsToAdd, $aTrackTextFieldsChanges);
  91. }
  92. public function getId()
  93. {
  94. $iResult = 0;
  95. $aIds = bx_get('ids');
  96. if(!$aIds || !is_array($aIds)) {
  97. $sId = bx_get('id');
  98. if(!empty($sId))
  99. $iResult = $sId;
  100. }
  101. else
  102. $iResult = array_shift($aIds);
  103. return (int)$iResult;
  104. }
  105. }
  106. /** @} */