BxBaseStudioNavigation.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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('BxDolStudioNavigation');
  12. class BxBaseStudioNavigation extends BxDolStudioNavigation {
  13. protected $sSubpageUrl;
  14. protected $aGridObjects = array(
  15. 'menus' => 'sys_studio_nav_menus',
  16. 'sets' => 'sys_studio_nav_sets',
  17. 'items' => 'sys_studio_nav_items'
  18. );
  19. function BxBaseStudioNavigation($sPage = '') {
  20. parent::BxDolStudioNavigation($sPage);
  21. $this->sSubpageUrl = BX_DOL_URL_STUDIO . 'builder_menu.php?page=';
  22. }
  23. function getPageCss() {
  24. return array_merge(parent::getPageCss(), array('forms.css', 'paginate.css', 'navigation.css'));
  25. }
  26. function getPageJs() {
  27. return array_merge(parent::getPageJs(), array());
  28. }
  29. function getPageJsObject() {
  30. return '';
  31. }
  32. function getPageMenu($aMenu = array(), $aMarkers = array()) {
  33. $sJsObject = $this->getPageJsObject();
  34. $aMenu = array();
  35. $aMenuItems = array(
  36. BX_DOL_STUDIO_NAV_TYPE_MENUS,
  37. BX_DOL_STUDIO_NAV_TYPE_SETS,
  38. BX_DOL_STUDIO_NAV_TYPE_ITEMS
  39. );
  40. foreach($aMenuItems as $sMenuItem)
  41. $aMenu[] = array(
  42. 'name' => $sMenuItem,
  43. 'icon' => 'mi-nav-' . $sMenuItem . '.png',
  44. 'link' => $this->sSubpageUrl . $sMenuItem,
  45. 'title' => _t('_adm_lmi_cpt_' . $sMenuItem),
  46. 'selected' => $sMenuItem == $this->sPage
  47. );
  48. return parent::getPageMenu($aMenu);
  49. }
  50. function getPageCode($bHidden = false) {
  51. $sMethod = 'get' . ucfirst($this->sPage);
  52. if(!method_exists($this, $sMethod))
  53. return '';
  54. return $this->$sMethod();
  55. }
  56. function actionGetSets() {
  57. if(($sModule = bx_get('nav_module')) === false)
  58. return array('code' => 2, 'message' => _t('_adm_nav_err_missing_params'));
  59. $sModule = bx_process_input($sModule);
  60. return array('code' => 0, 'message' => '', 'content' => $this->getItemsObject()->getSetsSelector($sModule));
  61. }
  62. protected function getMenus() {
  63. return $this->getGrid($this->aGridObjects['menus']);
  64. }
  65. protected function getSets() {
  66. return $this->getGrid($this->aGridObjects['sets']);
  67. }
  68. protected function getItems() {
  69. return $this->getGrid($this->aGridObjects['items']);
  70. }
  71. protected function getItemsObject() {
  72. return $this->getGridObject($this->aGridObjects['items']);
  73. }
  74. protected function getGridObject($sObjectName) {
  75. bx_import('BxDolGrid');
  76. $oGrid = BxDolGrid::getObjectInstance($sObjectName);
  77. if(!$oGrid)
  78. return '';
  79. return $oGrid;
  80. }
  81. protected function getGrid($sObjectName) {
  82. $oTemplate = BxDolStudioTemplate::getInstance();
  83. bx_import('BxDolGrid');
  84. $oGrid = BxDolGrid::getObjectInstance($sObjectName);
  85. if(!$oGrid)
  86. return '';
  87. $aTmplVars = array(
  88. 'js_object' => $this->getPageJsObject(),
  89. 'bx_repeat:blocks' => array(
  90. array(
  91. 'caption' => '',
  92. 'panel_top' => '',
  93. 'items' => $oGrid->getCode(),
  94. 'panel_bottom' => ''
  95. )
  96. )
  97. );
  98. return $oTemplate->parseHtmlByName('navigation.html', $aTmplVars);
  99. }
  100. }
  101. /** @} */