1
0

BxBaseMenuPanel.php 2.1 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 UnaBaseView UNA Base Representation Classes
  7. * @{
  8. */
  9. /**
  10. * Menu representation.
  11. * @see BxDolMenu
  12. */
  13. class BxBaseMenuPanel extends BxTemplMenu
  14. {
  15. public function __construct ($aObject, $oTemplate)
  16. {
  17. parent::__construct ($aObject, $oTemplate);
  18. }
  19. protected function _getMenuItem ($aItem)
  20. {
  21. $aHiddenOn = array(
  22. pow(2, BX_DB_HIDDEN_PHONE - 1) => 'bx-def-media-phone-hide',
  23. pow(2, BX_DB_HIDDEN_TABLET - 1) => 'bx-def-media-tablet-hide',
  24. pow(2, BX_DB_HIDDEN_DESKTOP - 1) => 'bx-def-media-desktop-hide',
  25. pow(2, BX_DB_HIDDEN_MOBILE - 1) => 'bx-def-mobile-app-hide'
  26. );
  27. if(isset($aItem['active']) && !$aItem['active'])
  28. return false;
  29. if(isset($aItem['visible_for_levels']) && !$this->_isVisible($aItem))
  30. return false;
  31. $sMethod = '_getMenuItemContent' . str_replace(' ', '', ucwords(str_replace(['-', '_'], [' ', ' '], $aItem['name'])));
  32. if(method_exists($this, $sMethod))
  33. $sTmplItem = $this->$sMethod($aItem);
  34. else
  35. $sTmplItem = $this->_getMenuItemContent($aItem);
  36. if(!$sTmplItem)
  37. return false;
  38. $sTmplClass = '';
  39. if(!empty($aItem['hidden_on']))
  40. foreach($aHiddenOn as $iHiddenOn => $sClass)
  41. if((int)$aItem['hidden_on'] & $iHiddenOn)
  42. $sTmplClass .= ' ' . $sClass;
  43. return [
  44. 'class' => trim($sTmplClass),
  45. 'item' => $sTmplItem
  46. ];
  47. }
  48. protected function _getMenuItemContent($aItem)
  49. {
  50. $oSubmenu = null;
  51. if(empty($aItem['submenu_object']) || ($oSubmenu = BxDolMenu::getObjectInstance($aItem['submenu_object'])) === false)
  52. return false;
  53. return $oSubmenu->getCode();
  54. }
  55. protected function _getMenuItemContentMemberAvatar($aItem)
  56. {
  57. return bx_srv('system', 'profile_avatar', [], 'TemplServiceProfiles');
  58. }
  59. }
  60. /** @} */