1
0

BxBaseModGroupsMenuSnippetMeta.php 2.9 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 BaseGroups Base classes for groups modules
  7. * @ingroup UnaModules
  8. *
  9. * @{
  10. */
  11. class BxBaseModGroupsMenuSnippetMeta extends BxBaseModProfileMenuSnippetMeta
  12. {
  13. public function __construct($aObject, $oTemplate = false)
  14. {
  15. parent::__construct($aObject, $oTemplate);
  16. $CNF = &$this->_oModule->_oConfig->CNF;
  17. $this->_aConnectionToFunctionCheck[$CNF['OBJECT_CONNECTIONS']] = array(
  18. 'add' => 'checkAllowedFanAdd',
  19. 'remove' => 'checkAllowedFanRemove'
  20. );
  21. $this->_aConnectionToFunctionTitle[$CNF['OBJECT_CONNECTIONS']] = '_getMenuItemConnectionsTitle';
  22. }
  23. protected function _getMenuItemJoin($aItem)
  24. {
  25. return $this->_getMenuItemConnection($this->_oModule->_oConfig->CNF['OBJECT_CONNECTIONS'], 'add', $aItem);
  26. }
  27. protected function _getMenuItemLeave($aItem)
  28. {
  29. return $this->_getMenuItemConnection($this->_oModule->_oConfig->CNF['OBJECT_CONNECTIONS'], 'remove', $aItem);
  30. }
  31. protected function _getMenuItemMembers($aItem)
  32. {
  33. $CNF = &$this->_oModule->_oConfig->CNF;
  34. if(!$this->_bContentPublic || !$this->_oContentProfile || empty($CNF['OBJECT_CONNECTIONS']))
  35. return false;
  36. $oConnection = BxDolConnection::getObjectInstance($CNF['OBJECT_CONNECTIONS']);
  37. if(!$oConnection)
  38. return false;
  39. $iFriends = $oConnection->getConnectedInitiatorsCount($this->_oContentProfile->id(), true);
  40. if(!$iFriends)
  41. return false;
  42. return $this->_oTemplate->getUnitMetaItemText(_t('_sys_menu_item_title_sm_members', $iFriends));
  43. }
  44. protected function _getMenuItemConnectionsTitle($sAction, &$oConnection)
  45. {
  46. $iProfile = bx_get_logged_profile_id();
  47. $iContentProfile = $this->_oContentProfile->id();
  48. $aResult = array();
  49. if($oConnection->isConnectedNotMutual($iProfile, $iContentProfile))
  50. $aResult = array(
  51. 'add' => '',
  52. 'remove' => _t('_sys_menu_item_title_sm_leave_cancel'),
  53. );
  54. else if($oConnection->isConnectedNotMutual($iContentProfile, $iProfile))
  55. $aResult = array(
  56. 'add' => _t('_sys_menu_item_title_sm_join_confirm'),
  57. 'remove' => _t('_sys_menu_item_title_sm_leave_reject'),
  58. );
  59. else if($oConnection->isConnected($iProfile, $iContentProfile, true))
  60. $aResult = array(
  61. 'add' => '',
  62. 'remove' => _t('_sys_menu_item_title_sm_leave'),
  63. );
  64. else
  65. $aResult = array(
  66. 'add' => _t('_sys_menu_item_title_sm_join'),
  67. 'remove' => '',
  68. );
  69. return !empty($sAction) && isset($aResult[$sAction]) ? $aResult[$sAction] : $aResult;
  70. }
  71. }
  72. /** @} */