BxCoursesMenuSnippetMeta.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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 Courses Courses
  7. * @ingroup UnaModules
  8. *
  9. * @{
  10. */
  11. class BxCoursesMenuSnippetMeta extends BxBaseModGroupsMenuSnippetMeta
  12. {
  13. public function __construct($aObject, $oTemplate = false)
  14. {
  15. $this->_sModule = 'bx_courses';
  16. parent::__construct($aObject, $oTemplate);
  17. unset($this->_aConnectionToFunctionCheck['sys_profiles_friends']);
  18. }
  19. protected function _getMenuItemReports($aItem, $aParams = [])
  20. {
  21. $bShowAsObject = isset($aParams['show_as_object']) && (bool)$aParams['show_as_object'] === true;
  22. if($bShowAsObject || $this->_bIsApi) //--- API: Object base votes are used by default
  23. return $this->_getMenuItemReportObject($aItem, $aParams);
  24. $CNF = &$this->_oModule->_oConfig->CNF;
  25. if(empty($CNF['FIELD_REPORTS']) || (empty($this->_aContentInfo[$CNF['FIELD_REPORTS']]) && !$this->_bShowZeros))
  26. return false;
  27. $sTitle = _t('_report_n_reports', $this->_aContentInfo[$CNF['FIELD_REPORTS']]);
  28. if($this->_bIsApi)
  29. return $this->_getMenuItemAPI($aItem, 'text', [
  30. 'title' => $sTitle
  31. ]);
  32. return $this->getUnitMetaItemText($sTitle);
  33. }
  34. protected function _getMenuItemReportObject($aItem, $aParams = [])
  35. {
  36. $CNF = &$this->_oModule->_oConfig->CNF;
  37. if(empty($CNF['OBJECT_REPORTS']))
  38. return false;
  39. $oObject = BxDolReport::getObjectInstance($CNF['OBJECT_REPORTS'], $this->_aContentInfo[$CNF['FIELD_ID']]);
  40. if(!$oObject || !$oObject->isEnabled())
  41. return false;
  42. $aObjectOptions = [
  43. 'show_do_report_as_button' => true,
  44. 'show_do_report_label' => true,
  45. 'show_counter' => true
  46. ];
  47. if(!empty($aParams['object_options']) && is_array($aParams['object_options']))
  48. $aObjectOptions = array_merge($aObjectOptions, $aParams['object_options']);
  49. if($this->_bIsApi)
  50. return $this->_getMenuItemElementAPI($aItem, $oObject->getElementApi($aObjectOptions));
  51. return $this->getUnitMetaItemCustom($oObject->getElementInline($aObjectOptions));
  52. }
  53. protected function _getMenuItemPass($aItem, $aParams = [])
  54. {
  55. $CNF = &$this->_oModule->_oConfig->CNF;
  56. $iProfileId = bx_get_logged_profile_id();
  57. if(!$this->_oContentProfile || !$this->_oModule->serviceIsFan($this->_oContentProfile->id(), $iProfileId))
  58. return false;
  59. list($iPassPercent, $aPassDetails, $sPassStatus, $sPassTitle) = $this->_oModule->getEntryPass($iProfileId, $this->_iContentId);
  60. if(empty($sPassTitle))
  61. return false;
  62. $sLink = bx_absolute_url(BxDolPermalinks::getInstance()->permalink('page.php?i=' . $CNF['URI_VIEW_ENTRY'], [
  63. 'id' => $this->_iContentId
  64. ]));
  65. if($this->_bIsApi)
  66. return $this->_getMenuItemAPI($aItem, ['display' => 'button'], [
  67. 'title' => $sPassTitle,
  68. 'link' => bx_api_get_relative_url($sLink)
  69. ]);
  70. return [
  71. $this->getUnitMetaItemButton($sPassTitle, [
  72. 'class' => !empty($aItem['primary']) ? 'bx-btn-primary' : '',
  73. 'href' => $sLink
  74. ]),
  75. 'bx-menu-item-button'
  76. ];
  77. }
  78. }
  79. /** @} */