BxBaseMenuSwitchTemplate.php 1.7 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 UnaBaseView UNA Base Representation Classes
  7. * @{
  8. */
  9. /**
  10. * Site main menu representation.
  11. */
  12. class BxBaseMenuSwitchTemplate extends BxTemplMenu
  13. {
  14. public function __construct ($aObject, $oTemplate)
  15. {
  16. parent::__construct ($aObject, $oTemplate);
  17. }
  18. public function getMenuItems ()
  19. {
  20. $this->loadData();
  21. return parent::getMenuItems();
  22. }
  23. protected function loadData()
  24. {
  25. $this->setSelected('', $this->_oTemplate->getCode());
  26. $aPage = explode('?', $_SERVER['HTTP_REFERER']);
  27. $aPageParams = array();
  28. if(!empty($aPage[1]))
  29. parse_str($aPage[1], $aPageParams);
  30. $aTemplates = get_templates_array(true, false);
  31. $aItems = array();
  32. foreach( $aTemplates as $sName => $aTemplate ) {
  33. $aPageParams['skin'] = $sName;
  34. $aItems[] = array(
  35. 'id' => $sName,
  36. 'name' => $sName,
  37. 'class' => '',
  38. 'title' => $this->getItemTitle($sName, $aTemplate),
  39. 'target' => '_self',
  40. 'icon' => '',
  41. 'link' => bx_html_attribute(bx_append_url_params($aPage[0], $aPageParams)),
  42. 'onclick' => ''
  43. );
  44. }
  45. $this->_aObject['menu_items'] = $aItems;
  46. }
  47. protected function getItemTitle($sName, $aTemplate)
  48. {
  49. $sTitle = getParam($aTemplate['name'] . '_switcher_title');
  50. if(!empty($sTitle))
  51. return $sTitle;
  52. return $aTemplate['title'];
  53. }
  54. }
  55. /** @} */