1
0

BxBaseMenuCustom.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. 'class' => $this->_isSelected($aItem) ? 'bx-menu-tab-active' : '',
  38. 'item' => $sItem
  39. );
  40. }
  41. protected function _getMenuItemDefault ($aItem)
  42. {
  43. return $this->_oTemplate->parseHtmlByContent(self::$_sTmplContentCustomItem, $aItem);
  44. }
  45. }
  46. /** @} */