BxTemplMenu.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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 UnaTemplate UNA Template Classes
  7. * @{
  8. */
  9. /**
  10. * @see BxDolMenu
  11. */
  12. class BxTemplMenu extends BxBaseMenu
  13. {
  14. public function __construct ($aObject, $oTemplate = false)
  15. {
  16. parent::__construct ($aObject, $oTemplate);
  17. if(isset($aObject['object'])) {
  18. //--- For page submenus ---//
  19. if(strpos($aObject['object'], '_submenu') !== false) {
  20. $this->_bHx = getParam('bx_artificer_use_htmx') == 'on';
  21. $this->_mHxPreload = $this->_bHx && true;
  22. $this->_aHx = [
  23. 'get' => '',
  24. 'trigger' => 'click',
  25. 'target' => '#bx-content-wrapper',
  26. 'swap' => 'outerHTML settle:0',
  27. 'push-url' => 'true',
  28. 'on::before:swap' => 'oBxArtificerUtils.submenuClickBl(this)',
  29. 'on::after:swap' => 'oBxArtificerUtils.submenuClickAl(this)'
  30. ];
  31. }
  32. }
  33. $this->_aOptionalParams['popup'] = '';
  34. }
  35. protected function _getTemplateVars()
  36. {
  37. return array_merge(parent::_getTemplateVars(), array(
  38. 'html_id' => '',
  39. 'bx_if:show_more_auto_class' => array(
  40. 'condition' => false,
  41. 'content' => array()
  42. ),
  43. 'js_code' => ''
  44. ));
  45. }
  46. protected function _getMenuItem ($a)
  47. {
  48. $aResult = parent::_getMenuItem($a);
  49. if($aResult === false)
  50. return $aResult;
  51. if(!$this->_bIsApi && !empty($a['primary'])) {
  52. if(!isset($aResult['class_add']))
  53. $aResult['class_add'] = '';
  54. $aResult['class_add'] .= ' bx-mi-primary';
  55. }
  56. return $aResult;
  57. }
  58. }
  59. /** @} */