BxDolStudioAPI.php 2.0 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 UnaStudio UNA Studio
  7. * @{
  8. */
  9. define('BX_DOL_STUDIO_API_TYPE_SETTINGS', 'settings');
  10. define('BX_DOL_STUDIO_API_TYPE_CONFIG', 'api_config');
  11. define('BX_DOL_STUDIO_API_TYPE_KEYS', 'keys');
  12. define('BX_DOL_STUDIO_API_TYPE_ORIGINS', 'origins');
  13. define('BX_DOL_STUDIO_API_TYPE_DEFAULT', BX_DOL_STUDIO_API_TYPE_SETTINGS);
  14. class BxDolStudioAPI extends BxTemplStudioWidget
  15. {
  16. protected $sPage;
  17. function __construct($sPage = "")
  18. {
  19. parent::__construct('api');
  20. $this->sPage = BX_DOL_STUDIO_API_TYPE_DEFAULT;
  21. if(is_string($sPage) && !empty($sPage))
  22. $this->sPage = $sPage;
  23. }
  24. public function checkAction()
  25. {
  26. $sAction = '';
  27. if(($sAction = bx_get('api_action')) !== false)
  28. $sAction = bx_process_input($sAction);
  29. else
  30. return false;
  31. $aResult = ['code' => 1, 'message' => _t('_adm_api_err_action_handler_not_found')];
  32. switch($sAction) {
  33. default:
  34. $sMethod = 'action' . $this->getClassName($sAction);
  35. if(method_exists($this, $sMethod))
  36. $aResult = $this->$sMethod();
  37. }
  38. return $aResult;
  39. }
  40. protected function actionDownload()
  41. {
  42. $sFile = '';
  43. if(($sFile = bx_get('api_value')) === false)
  44. return ['code' => 2];
  45. $sPath = BX_DIRECTORY_PATH_TMP . $sFile;
  46. $sContent = '';
  47. if(!file_exists($sPath) || !($sContent = file_get_contents($sPath)))
  48. return ['code' => 3, 'msg' => _t('_adm_api_err_action_file_not_found')];
  49. @unlink($sPath);
  50. header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  51. header("Content-type: text/plain");
  52. header("Content-Length: " . strlen($sContent));
  53. header("Content-Disposition: attachment; filename=\"" . $sFile . "\"");
  54. echo $sContent;
  55. exit;
  56. }
  57. }
  58. /** @} */