BxBaseCmtsForm.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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 UnaBaseView UNA Base Representation Classes
  7. * @{
  8. */
  9. class BxBaseCmtsForm extends BxTemplFormView
  10. {
  11. protected static $_sAttributeMaskId;
  12. protected static $_sAttributeMaskName;
  13. public function __construct($aInfo, $oTemplate)
  14. {
  15. parent::__construct($aInfo, $oTemplate);
  16. if(empty(self::$_sAttributeMaskId))
  17. self::$_sAttributeMaskId = $this->aFormAttrs['id'];
  18. if(empty(self::$_sAttributeMaskName))
  19. self::$_sAttributeMaskName = $this->aFormAttrs['name'];
  20. if(isset($this->aInputs['cmt_image'])) {
  21. $aFormNested = array(
  22. 'params' =>array(
  23. 'nested_form_template' => 'comments_uploader_nfw.html'
  24. ),
  25. 'inputs' => array(),
  26. );
  27. $oFormNested = new BxDolFormNested('cmt_image', $aFormNested, 'cmt_submit');
  28. $this->aInputs['cmt_image']['storage_object'] = 'sys_cmts_images';
  29. $this->aInputs['cmt_image']['images_transcoder'] = 'sys_cmts_images_preview';
  30. $this->aInputs['cmt_image']['uploaders'] = !empty($this->aInputs['cmt_image']['value']) ? unserialize($this->aInputs['cmt_image']['value']) : array('sys_cmts_simple');
  31. $this->aInputs['cmt_image']['upload_buttons_titles'] = array('Simple' => 'camera');
  32. $this->aInputs['cmt_image']['multiple'] = true;
  33. $this->aInputs['cmt_image']['ghost_template'] = $oFormNested;
  34. }
  35. }
  36. public function getAttributeMask($sAttribute)
  37. {
  38. $sName = '_sAttributeMask' . bx_gen_method_name($sAttribute);
  39. return isset(self::$$sName) ? self::$$sName : '';
  40. }
  41. public function getStorageObjectName()
  42. {
  43. return isset($this->aInputs['cmt_image']['storage_object']) ? $this->aInputs['cmt_image']['storage_object'] : '';
  44. }
  45. public function getTranscoderPreviewName()
  46. {
  47. return isset($this->aInputs['cmt_image']['images_transcoder']) ? $this->aInputs['cmt_image']['images_transcoder'] : '';
  48. }
  49. function initChecker ($aValues = array (), $aSpecificValues = array())
  50. {
  51. if (isset($this->aInputs['cmt_anonymous']) && isset($aValues['cmt_author_id']))
  52. $this->aInputs['cmt_anonymous']['checked'] = $aValues['cmt_author_id'] < 0;
  53. parent::initChecker ($aValues, $aSpecificValues);
  54. }
  55. public function insert ($aValsToAdd = array(), $isIgnore = false)
  56. {
  57. $aValsToAdd['cmt_author_id'] *= isset($this->aInputs['cmt_anonymous']) && $this->getCleanValue('cmt_anonymous') ? -1 : 1;
  58. return parent::insert ($aValsToAdd, $isIgnore);
  59. }
  60. function update ($iCmtId, $aValsToAdd = array(), &$aTrackTextFieldsChanges = null)
  61. {
  62. if (isset($this->aInputs['cmt_anonymous'])) {
  63. $aCmt = BxDolCmts::getObjectInstance($this->getCleanValue('sys'), $this->getCleanValue('id'))->getCommentRow($iCmtId);
  64. $aValsToAdd['cmt_author_id'] = ($this->getCleanValue('cmt_anonymous') ? -1 : 1) * abs($aCmt['cmt_author_id']);
  65. }
  66. return parent::update ($iCmtId, $aValsToAdd, $aTrackTextFieldsChanges);
  67. }
  68. }
  69. /** @} */