BxAdsFormOffer.php 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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 Ads Ads
  7. * @ingroup UnaModules
  8. *
  9. * @{
  10. */
  11. class BxAdsFormOffer extends BxTemplFormView
  12. {
  13. protected $_sModule;
  14. protected $_oModule;
  15. protected $_iContentId;
  16. protected $_aContentInfo;
  17. public function __construct($aInfo, $oTemplate = false)
  18. {
  19. $this->_sModule = 'bx_ads';
  20. $this->_oModule = BxDolModule::getInstance($this->_sModule);
  21. parent::__construct($aInfo, $oTemplate);
  22. $CNF = &$this->_oModule->_oConfig->CNF;
  23. if(($iContentId = bx_get('content_id')) !== false) {
  24. $this->_iContentId = (int)$iContentId;
  25. if($this->_iContentId)
  26. $this->_aContentInfo = $this->_oModule->_oDb->getContentInfoById($this->_iContentId);
  27. }
  28. if($this->_aContentInfo && (int)$this->_aContentInfo[$CNF['FIELD_SINGLE']] == 1) {
  29. if(isset($this->aInputs[$CNF['FIELD_OFR_QUANTITY']]))
  30. $this->aInputs[$CNF['FIELD_OFR_QUANTITY']] = array_merge($this->aInputs[$CNF['FIELD_OFR_QUANTITY']], [
  31. 'type' => 'hidden',
  32. 'value' => 1
  33. ]);
  34. if(isset($this->aInputs[$CNF['FIELD_OFR_TOTAL']]))
  35. unset($this->aInputs[$CNF['FIELD_OFR_TOTAL']]);
  36. }
  37. if(isset($this->aInputs[$CNF['FIELD_OFR_AMOUNT']], $this->aInputs[$CNF['FIELD_OFR_QUANTITY']]) && $this->aInputs[$CNF['FIELD_OFR_QUANTITY']]['type'] != 'hidden') {
  38. $sJsObject = $this->_oModule->_oConfig->getJsObject('form_offer');
  39. $aMask = ['mask' => "javascript:%s.updateTotal(this, '%s', '%s', '%s');", $sJsObject, $CNF['FIELD_OFR_AMOUNT'], $CNF['FIELD_OFR_QUANTITY'], $CNF['FIELD_OFR_TOTAL']];
  40. $sOnBlur = call_user_func_array('sprintf', array_values($aMask));
  41. $this->aInputs[$CNF['FIELD_OFR_AMOUNT']]['attrs']['onblur'] = $sOnBlur;
  42. $this->aInputs[$CNF['FIELD_OFR_QUANTITY']]['attrs']['onblur'] = $sOnBlur;
  43. }
  44. }
  45. public function getCode($bDynamicMode = false)
  46. {
  47. $sJs = $this->_oModule->_oTemplate->addJs(['form_offer.js'], $bDynamicMode);
  48. $sCode = '';
  49. if($bDynamicMode)
  50. $sCode .= $sJs;
  51. $sCode .= $this->_oModule->_oTemplate->getJsCode('form_offer');
  52. $sCode .= parent::getCode($bDynamicMode);
  53. return $sCode;
  54. }
  55. public function insert($aValsToAdd = [], $isIgnore = false)
  56. {
  57. $CNF = &$this->_oModule->_oConfig->CNF;
  58. if(!isset($aValsToAdd[$CNF['FIELD_OFR_AUTHOR']]))
  59. $aValsToAdd[$CNF['FIELD_OFR_AUTHOR']] = bx_get_logged_profile_id();
  60. if(!isset($aValsToAdd[$CNF['FIELD_OFR_ADDED']]))
  61. $aValsToAdd[$CNF['FIELD_OFR_ADDED']] = time();
  62. return parent::insert ($aValsToAdd, $isIgnore);
  63. }
  64. public function update($iContentId, $aValsToAdd = [], &$aTrackTextFieldsChanges = null)
  65. {
  66. $CNF = &$this->_oModule->_oConfig->CNF;
  67. if(!isset($aValsToAdd[$CNF['FIELD_OFR_CHANGED']]))
  68. $aValsToAdd[$CNF['FIELD_OFR_CHANGED']] = time();
  69. return parent::update ($iContentId, $aValsToAdd, $aTrackTextFieldsChanges);
  70. }
  71. }
  72. /** @} */