BxBaseStudioMenuTop.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  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. defined('BX_DOL') or die('hack attempt');
  11. bx_import('BxDolStudioMenuTop');
  12. class BxBaseStudioMenuTop extends BxDolStudioMenuTop implements iBxDolSingleton {
  13. function BxBaseStudioMenuTop() {
  14. if (isset($GLOBALS['bxDolClasses'][get_class($this)]))
  15. trigger_error ('Multiple instances are not allowed for the class: ' . get_class($this), E_USER_ERROR);
  16. parent::BxDolStudioMenuTop();
  17. }
  18. public static function getInstance() {
  19. if (!isset($GLOBALS['bxDolClasses']['BxBaseStudioMenuTop']))
  20. $GLOBALS['bxDolClasses']['BxBaseStudioMenuTop'] = new BxTemplStudioMenuTop();
  21. return $GLOBALS['bxDolClasses']['BxBaseStudioMenuTop'];
  22. }
  23. function getCss() {
  24. return array('menu_top.css');
  25. }
  26. function getJs() {
  27. return array('menu_top.js');
  28. }
  29. function getJsObject() {
  30. return 'oBxDolStudioMenuTop';
  31. }
  32. function getCode() {
  33. bx_import('BxTemplStudioMenu');
  34. $aTmplVars = array();
  35. foreach($this->aItems as $sPosition => $mixedItems) {
  36. if(!$this->aVisible[$sPosition])
  37. continue;
  38. $sContent = "";
  39. if(is_array($mixedItems)) {
  40. $oMenu = new BxTemplStudioMenu(array('template' => 'menu_top_toolbar.html', 'menu_items' => $mixedItems));
  41. $sContent = $oMenu->getCode();
  42. }
  43. else if(is_string($mixedItems) && !empty($mixedItems))
  44. $sContent = $mixedItems;
  45. $aTmplVars[] = array(
  46. 'name' => $sPosition,
  47. 'content' => $sContent
  48. );
  49. }
  50. if(empty($aTmplVars))
  51. return '';
  52. $oTemplate = BxDolStudioTemplate::getInstance();
  53. $oTemplate->addJs($this->getJs());
  54. $oTemplate->addCss($this->getCss());
  55. return $oTemplate->parseHtmlByName('menu_top.html', array('bx_repeat:menus' => $aTmplVars));
  56. }
  57. }
  58. /** @} */