BxAlbumsFormEntry.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  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 Albums Albums
  7. * @ingroup UnaModules
  8. *
  9. * @{
  10. */
  11. /**
  12. * Create/Edit entry form
  13. */
  14. class BxAlbumsFormEntry extends BxBaseModTextFormEntry
  15. {
  16. public function __construct($aInfo, $oTemplate = false)
  17. {
  18. $this->MODULE = 'bx_albums';
  19. parent::__construct($aInfo, $oTemplate);
  20. $CNF = &$this->_oModule->_oConfig->CNF;
  21. if (isset($CNF['FIELD_PHOTO']) && isset($this->aInputs[$CNF['FIELD_PHOTO']]))
  22. $this->aInputs[$CNF['FIELD_PHOTO']]['init_reordering'] = true;
  23. }
  24. public function processFiles ($sFieldFile, $iContentId = 0, $isAssociateWithContent = false)
  25. {
  26. return parent::_processFilesInAlbumsAndStories($sFieldFile, $iContentId, $isAssociateWithContent);
  27. }
  28. protected function _associalFileWithContent($oStorage, $iFileId, $iProfileId, $iContentId, $sPictureField = '')
  29. {
  30. parent::_associalFileWithContent($oStorage, $iFileId, $iProfileId, $iContentId, $sPictureField);
  31. $CNF = &$this->_oModule->_oConfig->CNF;
  32. $oTranscoder = BxDolTranscoderImage::getObjectInstance($CNF['OBJECT_IMAGES_TRANSCODER_BIG']);
  33. $aInfo = bx_get_image_exif_and_size($oStorage, $oTranscoder, $iFileId);
  34. $aExif = unserialize($aInfo['exif']);
  35. if (false === $this->_oModule->_oDb->associateFileWithContent ($iContentId, $iFileId, $iProfileId, $this->getCleanValue('title-' . $iFileId), $aInfo['size'], $aInfo['exif']))
  36. return;
  37. $aMediaInfo = $this->_oModule->_oDb->getMediaInfoSimpleByFileId($iFileId);
  38. $aContentInfo = $this->_oModule->_oDb->getContentInfoById($iContentId);
  39. if ($aMediaInfo && !empty($CNF['OBJECT_METATAGS_MEDIA'])) {
  40. $oMetatags = BxDolMetatags::getObjectInstance($CNF['OBJECT_METATAGS_MEDIA']);
  41. if ($oMetatags->keywordsIsEnabled())
  42. $oMetatags->keywordsAdd($aMediaInfo['id'], $aMediaInfo['title']);
  43. }
  44. if ($aMediaInfo && isset($aExif['Make']) && !empty($CNF['OBJECT_METATAGS_MEDIA_CAMERA'])) {
  45. $oMetatags = BxDolMetatags::getObjectInstance($CNF['OBJECT_METATAGS_MEDIA_CAMERA']);
  46. if ($oMetatags->keywordsIsEnabled()){
  47. $oMetatags->keywordsAddOne($aMediaInfo['id'], $oMetatags->keywordsCameraModel($aExif));
  48. }
  49. }
  50. /**
  51. * @hooks
  52. * @hookdef hook-bx_albums-media_added 'bx_albums', 'media_added' - hook on new media added in album
  53. * - $unit_name - equals `bx_albums`
  54. * - $action - equals `media_added`
  55. * - $object_id - album_id
  56. * - $sender_id - author's profile_id
  57. * - $extra_params - array of additional params with the following array keys:
  58. * - `object_author_id` - [int] confirmation type can be none/phone/email/email_and_phone/email_or_phone
  59. * - `subobject_id` - [int] id for added media
  60. * - `media_id` - [int] id for added media
  61. * - `media_info` - [array] media info
  62. * @hook @ref hook-bx_albums-media_added
  63. */
  64. bx_alert($this->_oModule->getName(), 'media_added', $iContentId, $iProfileId, array(
  65. 'object_author_id' => $aContentInfo[$CNF['FIELD_AUTHOR']],
  66. 'subobject_id' => $aMediaInfo['id'],
  67. 'media_id' => $aMediaInfo['id'],
  68. 'media_info' => $aMediaInfo,
  69. ));
  70. bx_alert($this->_oModule->getName() . '_media', 'added', $aMediaInfo['id'], $iProfileId, array(
  71. 'object_id' => $iContentId,
  72. 'object_author_id' => $aContentInfo[$CNF['FIELD_AUTHOR']],
  73. 'media_info' => $aMediaInfo
  74. ));
  75. }
  76. function delete ($iContentId, $aContentInfo = array())
  77. {
  78. if (!($bRet = parent::delete ($iContentId, $aContentInfo)))
  79. return $bRet;
  80. if (!($aMediaList = $this->_oModule->_oDb->getMediaListByContentId($iContentId)))
  81. return $bRet;
  82. foreach ($aMediaList as $aMediaInfo)
  83. $this->_oModule->serviceDeleteFileAssociations($aMediaInfo['file_id']);
  84. return $bRet;
  85. }
  86. }
  87. /** @} */