BxMessengerUploaderHTML5.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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 Files Files
  7. * @ingroup UnaModules
  8. *
  9. * @{
  10. */
  11. class BxMessengerUploaderHTML5 extends BxBaseModFilesUploaderHTML5
  12. {
  13. public function __construct ($aObject, $sStorageObject, $sUniqId, $oTemplate)
  14. {
  15. $this->MODULE = 'bx_messenger';
  16. parent::__construct($aObject, $sStorageObject, $sUniqId, $oTemplate);
  17. }
  18. public function getGhostsWithOrder($iProfileId, $sFormat, $sImagesTranscoder = false, $iContentId = false, $isLatestOnly = false)
  19. {
  20. if ((int)$iContentId){
  21. $oStorage = BxDolStorage::getObjectInstance($this->_sStorageObject);
  22. $aFiles = $this->_oModule->_oDb->getJotFiles($iContentId);
  23. foreach($aFiles as &$aFile)
  24. $oStorage->insertGhost($aFile['id'], $aFile['profile_id'], $iContentId);
  25. }
  26. return parent::getGhostsWithOrder($iProfileId, $sFormat, $sImagesTranscoder, $iContentId, $isLatestOnly);
  27. }
  28. protected function getGhostTemplateVars($aFile, $iProfileId, $iContentId, $oStorage, $oImagesTranscoder)
  29. {
  30. return [
  31. 'file_title' => $aFile['file_name'],
  32. 'file_title_attr' => bx_html_attribute($aFile['file_name'])
  33. ];
  34. }
  35. public function deleteGhost($iFileId, $iProfileId)
  36. {
  37. $oStorage = BxDolStorage::getObjectInstance($this->_sStorageObject);
  38. $aFile = $oStorage->getFile($iFileId);
  39. $CNF = &$this->_oModule->_oConfig->CNF;
  40. if (empty($aFile))
  41. return _t('_error occured');
  42. $sResult = parent::deleteGhost($iFileId, $iProfileId);
  43. if ($sResult !== 'ok')
  44. return $sResult;
  45. if((int)$aFile[$CNF['FIELD_ST_JOT']]) {
  46. $iMessageId = (int)$aFile[$CNF['FIELD_ST_JOT']];
  47. $aJotInfo = $this->_oModule->_oDb->getJotById($iMessageId);
  48. if (empty($aJotInfo))
  49. return _t('_error occured');
  50. $aFilesData = !$aJotInfo[$CNF['FIELD_MESSAGE_AT']] ? @unserialize($aJotInfo[$CNF['FIELD_MESSAGE_AT']]) : [];
  51. $aFilesList = $this->_oModule->_oDb->getJotFiles($iMessageId);
  52. if (!empty($aFilesList)){
  53. foreach($aFilesList as &$aFileItem)
  54. $aFilesData[BX_ATT_TYPE_FILES][] = $aFileItem[$CNF['FIELD_ST_NAME']];
  55. }
  56. $this->_oModule->_oDb->updateJot($iMessageId, $CNF['FIELD_MESSAGE_AT'], !empty($aFilesData) ? @serialize($aFilesData) : '');
  57. }
  58. return 'ok';
  59. }
  60. }
  61. /** @} */