BxDolStudioDesign.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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 UnaStudio UNA Studio
  7. * @{
  8. */
  9. define('BX_DOL_STUDIO_TEMPL_DEFAULT', 'bx_protean');
  10. define('BX_DOL_STUDIO_TEMPL_TYPE_SETTINGS', 'settings');
  11. define('BX_DOL_STUDIO_TEMPL_TYPE_LOGO', 'logo');
  12. define('BX_DOL_STUDIO_TEMPL_TYPE_DEFAULT', BX_DOL_STUDIO_TEMPL_TYPE_SETTINGS);
  13. class BxDolStudioDesign extends BxTemplStudioModule
  14. {
  15. public function __construct($sModule, $mixedPageName, $sPage = "")
  16. {
  17. parent::__construct($sModule, $mixedPageName, $sPage);
  18. $this->sLangPrefix = 'dsn';
  19. $this->sParamPrefix = 'dsn';
  20. $this->sManageUrl = BX_DOL_URL_STUDIO . 'design.php?name=' . $this->aPage['name'];
  21. }
  22. public function init()
  23. {
  24. parent::init();
  25. $this->aPage['header'] = $this->aModule['title'];
  26. $this->aPage['caption'] = $this->aModule['title'];
  27. }
  28. public function checkAction()
  29. {
  30. $sAction = bx_get($this->sParamPrefix . '_action');
  31. if($sAction === false)
  32. return false;
  33. $sAction = bx_process_input($sAction);
  34. $aResult = array('code' => 1, 'message' => _t('_adm_dsg_err_cannot_process_action'));
  35. switch($sAction) {
  36. case 'delete_logo':
  37. $oPage = $this->getObjectDesigner();
  38. $aResult = array('code' => 0, 'message' => '');
  39. if(!$oPage->deleteLogo())
  40. $aResult = array('code' => 2, 'message' => _t('_adm_dsg_err_remove_old_logo'));
  41. break;
  42. default:
  43. $aResult = parent::checkAction();
  44. }
  45. return $aResult;
  46. }
  47. public function activate($sModule, $iWidgetId = 0)
  48. {
  49. $aModule = BxDolModuleQuery::getInstance()->getModuleByName($sModule);
  50. if(empty($aModule) || !is_array($aModule))
  51. return array('code' => 1, 'message' => _t('_adm_err_operation_failed'));
  52. $aTemplates = array();
  53. $iTemplates = $this->oHelper->getTemplatesBy(array('type' => 'active'), $aTemplates);
  54. if($iTemplates == 1 && $aTemplates[0]['name'] == $sModule)
  55. return array('code' => 1, 'message' => _t('_adm_dsg_err_last_active'));
  56. $sTemplateDefault = getParam('template');
  57. if($aModule['uri'] == $sTemplateDefault)
  58. return array('code' => 2, 'message' => _t('_adm_dsg_err_deactivate_default'));
  59. return parent::activate($sModule, $iWidgetId);
  60. }
  61. protected function getObjectDesigner()
  62. {
  63. $oPage = new BxTemplStudioDesigner($this->sPage);
  64. $oPage->setManageUrl($this->sManageUrl);
  65. $oPage->setParamPrefix($this->sParamPrefix);
  66. $oModule = BxDolModule::getInstance($this->sModule);
  67. $oPage->setLogoParams($oModule->_oConfig->getLogoParams());
  68. return $oPage;
  69. }
  70. }
  71. /** @} */