BxBaseStudioMenuTop.php 2.2 KB

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