BxDolStudioLauncher.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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. class BxDolStudioLauncher extends BxTemplStudioWidgets implements iBxDolSingleton
  10. {
  11. protected $aIncludes;
  12. function __construct()
  13. {
  14. parent::__construct(BX_DOL_STUDIO_PAGE_HOME);
  15. $aClasses = array(
  16. 'BxTemplStudioModules',
  17. 'BxTemplStudioDesigns',
  18. 'BxTemplStudioLanguages'
  19. );
  20. $this->aIncludes = array();
  21. foreach($aClasses as $sClass)
  22. $this->aIncludes[] = new $sClass();
  23. }
  24. public static function getInstance()
  25. {
  26. if (!isset($GLOBALS['bxDolClasses'][__CLASS__]))
  27. $GLOBALS['bxDolClasses'][__CLASS__] = new BxTemplStudioLauncher();
  28. return $GLOBALS['bxDolClasses'][__CLASS__];
  29. }
  30. public function checkAction()
  31. {
  32. $sAction = bx_get('action');
  33. if($sAction === false)
  34. return false;
  35. $sAction = bx_process_input($sAction);
  36. $aResult = array('code' => 1, 'message' => _t('_adm_err_operation_failed'));
  37. switch($sAction) {
  38. case 'launcher-browser':
  39. $aResult = array('code' => 0, 'popup' => $this->getPopupBrowser());
  40. break;
  41. case 'launcher-update-cache':
  42. $aResult = $this->updateCache();
  43. break;
  44. case 'launcher-reorder':
  45. $sPage = bx_process_input(bx_get('page'));
  46. $aItems = bx_process_input(bx_get('items'));
  47. BxDolStudioWidgetsQuery::getInstance()->reorder($sPage, $aItems);
  48. $aResult = array('code' => 0, 'message' => _t('_adm_scs_operation_done'));
  49. break;
  50. case 'page-featured':
  51. $sPage = bx_process_input(bx_get('page'));
  52. bx_import('BxDolStudioWidget');
  53. $oPage = new BxDolStudioWidget($sPage);
  54. $aResult = $oPage->featured();
  55. break;
  56. case 'page-bookmark':
  57. $sPage = bx_process_input(bx_get('page'));
  58. bx_import('BxDolStudioWidget');
  59. $oPage = new BxDolStudioWidget($sPage);
  60. $aResult = $oPage->bookmark();
  61. break;
  62. case 'widget-rearrange':
  63. $iWidgetId = bx_process_input(bx_get('widget_id'), BX_DATA_INT);
  64. $sType = bx_process_input(bx_get('type'));
  65. if(BxDolStudioWidgetsQuery::getInstance()->updateWidget(array('type' => $sType), array('id' => $iWidgetId)) !== false)
  66. $aResult = array('code' => 0, 'redirect' => bx_append_url_params ($this->sPageUrl, array('type' => $sType)));
  67. else
  68. $aResult = array('code' => 1, 'message' => _t('_error occured'));
  69. break;
  70. }
  71. return $aResult;
  72. }
  73. }
  74. /** @} */