BxBaseMenuCustom.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. class BxBaseMenuCustom extends BxTemplMenu
  11. {
  12. protected static $_sTmplContentCustomItem;
  13. public function __construct($aObject, $oTemplate = false)
  14. {
  15. parent::__construct($aObject, $oTemplate);
  16. if(empty(self::$_sTmplContentCustomItem))
  17. self::$_sTmplContentCustomItem = $this->_oTemplate->getHtml('menu_custom_item.html');
  18. }
  19. protected function _getMenuItem ($aItem)
  20. {
  21. if (isset($aItem['active']) && !$aItem['active'])
  22. return false;
  23. if (isset($aItem['visible_for_levels']) && !$this->_isVisible($aItem))
  24. return false;
  25. $sMethod = '_getMenuItem' . str_replace(' ', '', ucwords(str_replace('-', ' ', $aItem['name'])));
  26. if(!method_exists($this, $sMethod)) {
  27. $aItem = parent::_getMenuItem($aItem);
  28. if($aItem === false)
  29. return false;
  30. $sItem = $this->_getMenuItemDefault($aItem);
  31. }
  32. else
  33. $sItem = $this->$sMethod($aItem);
  34. if(empty($sItem))
  35. return false;
  36. return array(
  37. 'name' => $aItem['name'],
  38. 'class' => $this->_isSelected($aItem) ? ' bx-menu-tab-active' : '',
  39. 'item' => $sItem
  40. );
  41. }
  42. protected function _getMenuItemDefault ($aItem)
  43. {
  44. return $this->_oTemplate->parseHtmlByContent(self::$_sTmplContentCustomItem, $aItem);
  45. }
  46. }
  47. /** @} */