BxBaseStudioSettings.php 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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. return $sResult . $this->getBlockCode(array(
  55. 'type' => BX_DB_CONTENT_ONLY,
  56. 'content' => $this->oOptions->getCode()
  57. ));
  58. }
  59. protected function getMenuIcon($sGroup, &$aType)
  60. {
  61. if(empty($aType['icon']) || ($sUrl = BxDolStudioTemplate::getInstance()->getIconUrl($aType['icon'])) == "")
  62. switch($sGroup) {
  63. case BX_DOL_STUDIO_STG_GROUP_MODULES:
  64. $aType['icon'] = BxDolStudioUtils::getIconDefault(BX_DOL_MODULE_TYPE_MODULE);
  65. break;
  66. case BX_DOL_STUDIO_STG_GROUP_LANGUAGES:
  67. $aType['icon'] = BxDolStudioUtils::getIconDefault(BX_DOL_MODULE_TYPE_LANGUAGE);
  68. break;
  69. case BX_DOL_STUDIO_STG_GROUP_TEMPLATES:
  70. $aType['icon'] = BxDolStudioUtils::getIconDefault(BX_DOL_MODULE_TYPE_TEMPLATE);
  71. break;
  72. }
  73. return $aType['icon'];
  74. }
  75. }
  76. /** @} */