1
0

BxBaseModNotificationsStudioPage.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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 BaseNotifications Base classes for Notifications like modules
  7. * @ingroup UnaModules
  8. *
  9. * @{
  10. */
  11. class BxBaseModNotificationsStudioPage extends BxTemplStudioModule
  12. {
  13. protected $_sModule;
  14. protected $_oModule;
  15. public function __construct($sModule, $mixedPageName, $sPage = "")
  16. {
  17. $this->_oModule = BxDolModule::getInstance($this->_sModule);
  18. parent::__construct($sModule, $mixedPageName, $sPage);
  19. }
  20. public function checkAction()
  21. {
  22. $sAction = bx_get($this->sParamPrefix . '_action');
  23. if($sAction === false)
  24. return false;
  25. if(empty($this->aModule) || !is_array($this->aModule))
  26. return array('code' => 1, 'message' => _t('_sys_request_page_not_found_cpt'));
  27. $sAction = bx_process_input($sAction);
  28. $aResult = array('code' => 2, 'message' => _t('_adm_mod_err_cannot_process_action'));
  29. switch($sAction) {
  30. case 'reinit':
  31. $aConfig = BxDolInstallerUtils::getModuleConfig($this->_oModule->_aModule);
  32. if(empty($aConfig) || !is_array($aConfig))
  33. break;
  34. $oInstallerDb = bx_instance('BxDolStudioInstallerQuery');
  35. $aRelation = $oInstallerDb->getRelationsBy(array('type' => 'module', 'value' => $aConfig['name']));
  36. if(empty($aRelation))
  37. break;
  38. $aOperations = ['disable', 'enable'];
  39. foreach($aOperations as $sOperation) {
  40. if(empty($aRelation['on_' . $sOperation]))
  41. break 2;
  42. $aModules = $oInstallerDb->getModulesBy(array('type' => 'all', 'active' => 1));
  43. foreach($aModules as $aModule) {
  44. $aModuleConfig = BxDolInstallerUtils::getModuleConfig($aModule);
  45. if(!empty($aModuleConfig['relations']) && is_array($aModuleConfig['relations']) && in_array($aConfig['name'], $aModuleConfig['relations']))
  46. bx_srv_ii($aConfig['name'], $aRelation['on_' . $sOperation], [$aModule['uri']]);
  47. }
  48. }
  49. $aResult = ['code' => 0, 'message' => _t('_adm_txt_modules_process_action_success')];
  50. break;
  51. default:
  52. $aResult = parent::checkAction();
  53. }
  54. return $aResult;
  55. }
  56. }
  57. /** @} */