BxBaseStudioMenuTop.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php defined('BX_DOL') or die('hack attempt');
  2. /**
  3. * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  4. * CC-BY License - http://creativecommons.org/licenses/by/3.0/
  5. *
  6. * @defgroup DolphinView Dolphin Studio Representation classes
  7. * @ingroup DolphinStudio
  8. * @{
  9. */
  10. bx_import('BxDolStudioMenuTop');
  11. class BxBaseStudioMenuTop extends BxDolStudioMenuTop implements iBxDolSingleton
  12. {
  13. function __construct()
  14. {
  15. if (isset($GLOBALS['bxDolClasses'][get_class($this)]))
  16. trigger_error ('Multiple instances are not allowed for the class: ' . get_class($this), E_USER_ERROR);
  17. parent::__construct();
  18. }
  19. public static function getInstance()
  20. {
  21. if (!isset($GLOBALS['bxDolClasses']['BxBaseStudioMenuTop']))
  22. $GLOBALS['bxDolClasses']['BxBaseStudioMenuTop'] = new BxTemplStudioMenuTop();
  23. return $GLOBALS['bxDolClasses']['BxBaseStudioMenuTop'];
  24. }
  25. function getCss()
  26. {
  27. return array('menu_top.css');
  28. }
  29. function getJs()
  30. {
  31. return array('menu_top.js');
  32. }
  33. function getJsObject()
  34. {
  35. return 'oBxDolStudioMenuTop';
  36. }
  37. function getCode()
  38. {
  39. bx_import('BxTemplStudioMenu');
  40. $aTmplVars = array();
  41. foreach($this->aItems as $sPosition => $mixedItems) {
  42. if(!$this->aVisible[$sPosition])
  43. continue;
  44. $sContent = "";
  45. if(is_array($mixedItems)) {
  46. $oMenu = new BxTemplStudioMenu(array('template' => 'menu_top_toolbar.html', 'menu_items' => $mixedItems));
  47. $sContent = $oMenu->getCode();
  48. } else if(is_string($mixedItems) && !empty($mixedItems))
  49. $sContent = $mixedItems;
  50. $aTmplVars[] = array(
  51. 'name' => $sPosition,
  52. 'content' => $sContent
  53. );
  54. }
  55. if(empty($aTmplVars))
  56. return '';
  57. $oTemplate = BxDolStudioTemplate::getInstance();
  58. $oTemplate->addJs($this->getJs());
  59. $oTemplate->addCss($this->getCss());
  60. return $oTemplate->parseHtmlByName('menu_top.html', array('bx_repeat:menus' => $aTmplVars));
  61. }
  62. }
  63. /** @} */