BxBaseStudioSettings.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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 = array();
  32. if($this->oDb->getTypes(array('type' => 'all', 'not_in_group' => array(BX_DOL_STUDIO_STG_GROUP_TEMPLATES)), $aTypes) > 0 ) {
  33. $aTypesGrouped = array();
  34. foreach($aTypes as $aType)
  35. $aTypesGrouped[$aType['group']][] = $aType;
  36. foreach($aTypesGrouped as $sGroup => $aTypes)
  37. foreach($aTypes as $aType)
  38. $aMenu[] = array(
  39. 'name' => $aType['name'],
  40. 'icon' => $this->getMenuIcon($sGroup, $aType),
  41. 'link' => BX_DOL_URL_STUDIO . 'settings.php?page=' . $aType['name'],
  42. 'title' => $aType['caption'],
  43. 'selected' => $aType['name'] == $sType
  44. );
  45. }
  46. return parent::getPageMenu($aMenu);
  47. }
  48. public function getPageCode($sPage = '', $bWrap = true)
  49. {
  50. $sResult = parent::getPageCode($sPage, $bWrap);
  51. if($sResult === false)
  52. return false;
  53. return $sResult . $this->getBlockCode(array(
  54. 'type' => BX_DB_CONTENT_ONLY,
  55. 'content' => $this->oOptions->getCode()
  56. ));
  57. }
  58. protected function getMenuIcon($sGroup, &$aType)
  59. {
  60. if(empty($aType['icon']) || ($sUrl = BxDolStudioTemplate::getInstance()->getIconUrl($aType['icon'])) == "")
  61. switch($sGroup) {
  62. case BX_DOL_STUDIO_STG_GROUP_MODULES:
  63. $aType['icon'] = BxDolStudioUtils::getIconDefault(BX_DOL_MODULE_TYPE_MODULE);
  64. break;
  65. case BX_DOL_STUDIO_STG_GROUP_LANGUAGES:
  66. $aType['icon'] = BxDolStudioUtils::getIconDefault(BX_DOL_MODULE_TYPE_LANGUAGE);
  67. break;
  68. case BX_DOL_STUDIO_STG_GROUP_TEMPLATES:
  69. $aType['icon'] = BxDolStudioUtils::getIconDefault(BX_DOL_MODULE_TYPE_TEMPLATE);
  70. break;
  71. }
  72. return $aType['icon'];
  73. }
  74. }
  75. /** @} */