BxBaseModProfileTemplate.php 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <?php defined('BX_DOL') or die('hack attempt');
  2. /**
  3. * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  4. * CC-BY License - http://creativecommons.org/licenses/by/3.0/
  5. *
  6. * @defgroup BaseProfile Base classes for profile modules
  7. * @ingroup DolphinModules
  8. *
  9. * @{
  10. */
  11. bx_import('BxBaseModGeneralTemplate');
  12. /*
  13. * Profile based modules representation.
  14. */
  15. class BxBaseModProfileTemplate extends BxBaseModGeneralTemplate
  16. {
  17. function __construct(&$oConfig, &$oDb)
  18. {
  19. parent::__construct($oConfig, $oDb);
  20. }
  21. /**
  22. * Get profile unit
  23. */
  24. function unit ($aData, $isCheckPrivateContent = true, $sTemplateName = 'unit.html')
  25. {
  26. $CNF = &$this->_oConfig->CNF;
  27. // TODO: add privacy checking here
  28. // get profile's url
  29. bx_import('BxDolPermalinks');
  30. $sUrl = BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=' . $CNF['URI_VIEW_ENTRY'] . '&id=' . $aData[$CNF['FIELD_ID']]);
  31. // generate html
  32. $aVars = array (
  33. 'id' => $aData[$CNF['FIELD_ID']],
  34. 'thumb_url' => $this->thumb ($aData),
  35. 'content_url' => $sUrl,
  36. 'title' => $aData[$CNF['FIELD_NAME']],
  37. 'module_name' => _t($CNF['T']['txt_sample_single']),
  38. 'ts' => $aData[$CNF['FIELD_ADDED']],
  39. );
  40. return $this->parseHtmlByName($sTemplateName, $aVars);
  41. }
  42. /**
  43. * Get profile cover
  44. */
  45. function cover ($aData, $sTemplateName = 'cover.html')
  46. {
  47. $CNF = &$this->_oConfig->CNF;
  48. bx_import('BxDolPermalinks');
  49. $oModule = BxDolModule::getInstance($this->MODULE);
  50. $sUrl = BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=' . $CNF['URI_VIEW_ENTRY'] . '&id=' . $aData[$CNF['FIELD_ID']]);
  51. $sUrlPicture = $this->urlPicture ($aData);
  52. $sUrlAvatar = $this->urlAvatar ($aData);
  53. $sUrlPictureChange = BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=' . $CNF['URI_EDIT_ENTRY'] . '&id=' . $aData[$CNF['FIELD_ID']]);
  54. $sUrlCover = $this->urlCover ($aData);
  55. $sUrlCoverChange = BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=' . $CNF['URI_EDIT_COVER'] . '&id=' . $aData[$CNF['FIELD_ID']]);
  56. $sCoverPopup = '';
  57. $sCoverPopupId = $this->MODULE . '-popup-cover';
  58. if ($aData[$CNF['FIELD_COVER']]) {
  59. bx_import('BxTemplFunctions');
  60. $sCoverPopup = BxTemplFunctions::getInstance()->transBox($sCoverPopupId, $this->parseHtmlByName('image_popup.html', array (
  61. 'image_url' => $sUrlCover,
  62. 'bx_if:owner' => array (
  63. 'condition' => CHECK_ACTION_RESULT_ALLOWED === $oModule->checkAllowedChangeCover($aData),
  64. 'content' => array (
  65. 'change_image_url' => $sUrlCoverChange,
  66. ),
  67. ),
  68. )), true, true);
  69. }
  70. $sPicturePopup = '';
  71. $sPicturePopupId = $this->MODULE . '-popup-picture';
  72. if ($aData[$CNF['FIELD_PICTURE']]) {
  73. bx_import('BxTemplFunctions');
  74. $sPicturePopup = BxTemplFunctions::getInstance()->transBox($sPicturePopupId, $this->parseHtmlByName('image_popup.html', array (
  75. 'image_url' => $sUrlPicture,
  76. 'bx_if:owner' => array (
  77. 'condition' => CHECK_ACTION_RESULT_ALLOWED === $oModule->checkAllowedEdit($aData),
  78. 'content' => array (
  79. 'change_image_url' => $sUrlPictureChange,
  80. ),
  81. ),
  82. )), true, true);
  83. }
  84. // generate html
  85. $aVars = array (
  86. 'id' => $aData[$CNF['FIELD_ID']],
  87. 'content_url' => $sUrl,
  88. 'title' => $aData[$CNF['FIELD_NAME']],
  89. 'picture_avatar_url' => $sUrlAvatar,
  90. 'picture_popup' => $sPicturePopup,
  91. 'picture_popup_id' => $sPicturePopupId,
  92. 'picture_url' => $sUrlPicture,
  93. 'picture_href' => !$aData[$CNF['FIELD_PICTURE']] && CHECK_ACTION_RESULT_ALLOWED === $oModule->checkAllowedEdit($aData) ? $sUrlPictureChange : 'javascript:void(0);',
  94. 'cover_popup' => $sCoverPopup,
  95. 'cover_popup_id' => $sCoverPopupId,
  96. 'cover_url' => $sUrlCover,
  97. 'cover_href' => !$aData[$CNF['FIELD_COVER']] && CHECK_ACTION_RESULT_ALLOWED === $oModule->checkAllowedChangeCover($aData) ? $sUrlCoverChange : 'javascript:void(0);',
  98. );
  99. return $this->parseHtmlByName($sTemplateName, $aVars);
  100. }
  101. /**
  102. * Get profile picture thumb url
  103. */
  104. function thumb ($aData, $bSubstituteNoImage = true)
  105. {
  106. $CNF = &$this->_oConfig->CNF;
  107. return $this->_image ($CNF['FIELD_PICTURE'], $CNF['OBJECT_IMAGES_TRANSCODER_THUMB'], 'no-picture-thumb.png', $aData, $bSubstituteNoImage);
  108. }
  109. /**
  110. * Get profile picture icon url
  111. */
  112. function icon ($aData, $bSubstituteNoImage = true)
  113. {
  114. $CNF = &$this->_oConfig->CNF;
  115. return $this->_image ($CNF['FIELD_PICTURE'], $CNF['OBJECT_IMAGES_TRANSCODER_ICON'], 'no-picture-icon.png', $aData, $bSubstituteNoImage);
  116. }
  117. /**
  118. * Get profile picture preview url
  119. */
  120. function urlAvatar ($aData, $bSubstituteNoImage = true)
  121. {
  122. $CNF = &$this->_oConfig->CNF;
  123. return $this->_image ($CNF['FIELD_PICTURE'], $CNF['OBJECT_IMAGES_TRANSCODER_AVATAR'], 'no-picture-preview.png', $aData, $bSubstituteNoImage);
  124. }
  125. /**
  126. * Get profile picture url
  127. */
  128. function urlPicture ($aData, $bSubstituteNoImage = true)
  129. {
  130. $CNF = &$this->_oConfig->CNF;
  131. return $this->_image ($CNF['FIELD_PICTURE'], $CNF['OBJECT_IMAGES_TRANSCODER_PICTURE'], 'no-picture-preview.png', $aData, $bSubstituteNoImage);
  132. }
  133. /**
  134. * Get profile cover image url
  135. */
  136. function urlCover ($aData, $bSubstituteNoImage = true)
  137. {
  138. $CNF = &$this->_oConfig->CNF;
  139. return $this->_image ($CNF['FIELD_COVER'], $CNF['OBJECT_IMAGES_TRANSCODER_COVER'], 'no-picture-cover.png', $aData, $bSubstituteNoImage);
  140. }
  141. /**
  142. * Get profile picture icon url
  143. */
  144. function _image ($sField, $sTranscodeObject, $sNoImage, $aData, $bSubstituteNoImage = true)
  145. {
  146. $sImageUrl = false;
  147. if ($aData[$sField]) {
  148. bx_import('BxDolTranscoderImage');
  149. $oImagesTranscoder = BxDolTranscoderImage::getObjectInstance($sTranscodeObject);
  150. if ($oImagesTranscoder)
  151. $sImageUrl = $oImagesTranscoder->getFileUrl($aData[$sField]);
  152. }
  153. return $bSubstituteNoImage && !$sImageUrl ? $this->getImageUrl($sNoImage) : $sImageUrl;
  154. }
  155. }
  156. /** @} */