1
0

BxBaseStudioSettings.php 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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 UnaView UNA Studio Representation classes
  7. * @ingroup UnaStudio
  8. * @{
  9. */
  10. class BxBaseStudioSettings extends BxDolStudioSettings
  11. {
  12. public function __construct($sType = '', $mixedCategory = '')
  13. {
  14. parent::__construct($sType, $mixedCategory);
  15. }
  16. public function getPageCss()
  17. {
  18. return array_merge(parent::getPageCss(), $this->oOptions->getCss(), ['settings.css']);
  19. }
  20. public function getPageJs()
  21. {
  22. return array_merge(parent::getPageJs(), $this->oOptions->getJs());
  23. }
  24. public function getPageJsObject()
  25. {
  26. return 'oBxDolStudioSettings';
  27. }
  28. public function getPageMenu($aMenu = array(), $aMarkers = array())
  29. {
  30. $sType = $this->oOptions->getType();
  31. $aTypes = $aMenu = [];
  32. if($this->oDb->getTypes(['type' => 'all', 'not_in_group' =>[BX_DOL_STUDIO_STG_GROUP_TEMPLATES]], $aTypes) > 0 ) {
  33. $aTypesGrouped = [];
  34. foreach($aTypes as $aType)
  35. $aTypesGrouped[$aType['group']][] = $aType;
  36. foreach($aTypesGrouped as $sGroup => $aTypes)
  37. foreach($aTypes as $aType)
  38. $aMenu[] = [
  39. 'name' => $aType['name'],
  40. 'icon' => $this->getMenuIcon($sGroup, $aType),
  41. 'icon_bg' => $aType['name'] == 'system',
  42. 'link' => BX_DOL_URL_STUDIO . 'settings.php?page=' . $aType['name'],
  43. 'title' => $aType['caption'],
  44. 'selected' => $aType['name'] == $sType
  45. ];
  46. }
  47. return parent::getPageMenu($aMenu);
  48. }
  49. public function getPageCode($sPage = '', $bWrap = true)
  50. {
  51. $sResult = parent::getPageCode($sPage, $bWrap);
  52. if($sResult === false)
  53. return false;
  54. $aType = [];
  55. $this->oDb->getTypes(['type' => 'by_name', 'value' => $this->oOptions->getType()], $aType, false);
  56. // captioned with the selected side menu item, as on every other settings page
  57. $aBlock = ['content' => $this->oOptions->getCode()];
  58. if(!empty($aType['caption']))
  59. $aBlock['caption'] = _t($aType['caption']);
  60. else
  61. $aBlock['type'] = BX_DB_NO_CAPTION;
  62. return $sResult . $this->getBlockCode($aBlock);
  63. }
  64. protected function getMenuIcon($sGroup, &$aType)
  65. {
  66. if(empty($aType['icon']) || ($sUrl = BxDolStudioTemplate::getInstance()->getIconUrl($aType['icon'])) == "")
  67. switch($sGroup) {
  68. case BX_DOL_STUDIO_STG_GROUP_MODULES:
  69. $aType['icon'] = BxDolStudioUtils::getIconDefault(BX_DOL_MODULE_TYPE_MODULE);
  70. break;
  71. case BX_DOL_STUDIO_STG_GROUP_LANGUAGES:
  72. $aType['icon'] = BxDolStudioUtils::getIconDefault(BX_DOL_MODULE_TYPE_LANGUAGE);
  73. break;
  74. case BX_DOL_STUDIO_STG_GROUP_TEMPLATES:
  75. $aType['icon'] = BxDolStudioUtils::getIconDefault(BX_DOL_MODULE_TYPE_TEMPLATE);
  76. break;
  77. }
  78. return $aType['icon'];
  79. }
  80. }
  81. /** @} */