BxBaseStudioDashboard.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. <?php defined('BX_DOL') or die('hack attempt');
  2. /**
  3. * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  4. * CC-BY License - http://creativecommons.org/licenses/by/3.0/
  5. *
  6. * @defgroup DolphinView Dolphin Studio Representation classes
  7. * @ingroup DolphinStudio
  8. * @{
  9. */
  10. bx_import('BxDolStudioDashboard');
  11. class BxBaseStudioDashboard extends BxDolStudioDashboard
  12. {
  13. function __construct()
  14. {
  15. parent::__construct();
  16. }
  17. function getPageCss()
  18. {
  19. return array_merge(parent::getPageCss(), array(
  20. 'page_layouts.css',
  21. 'dashboard.css',
  22. ));
  23. }
  24. function getPageJs()
  25. {
  26. return array_merge(parent::getPageJs(), array(
  27. 'jquery.anim.js',
  28. 'dashboard.js'
  29. ));
  30. }
  31. function getPageJsClass()
  32. {
  33. return 'BxDolStudioDashboard';
  34. }
  35. function getPageJsObject()
  36. {
  37. return 'oBxDolStudioDashboard';
  38. }
  39. function getPageJsCode($aOptions = array(), $bWrap = true)
  40. {
  41. $sResult = BxDolStudioTemplate::getInstance()->_wrapInTagJs("https://www.google.com/jsapi?autoload={'modules':[{'name':'visualization','version':'1','packages':['corechart']}]}");
  42. $aOptions = array_merge($aOptions, array(
  43. 'sActionUrl' => BX_DOL_URL_STUDIO . 'dashboard.php',
  44. 'sVersion' => '__version__'
  45. ));
  46. $sResult .= parent::getPageJsCode($aOptions, $bWrap);
  47. return $sResult;
  48. }
  49. function getPageCode($bHidden = false)
  50. {
  51. bx_import('BxDolPage');
  52. $oPage = BxDolPage::getObjectInstance('sys_std_dashboard');
  53. return $oPage->getCode();
  54. }
  55. public function serviceGetBlockVersion()
  56. {
  57. $oTemplate = BxDolStudioTemplate::getInstance();
  58. $oTemplate->addJsTranslation('_adm_dbd_txt_dolphin_n_available');
  59. $sContent = $oTemplate->parseHtmlByName('dbd_versions.html', array(
  60. 'domain' => getParam('site_title'),
  61. 'version' => bx_get_ver(),
  62. 'installed' => bx_time_js(getParam('sys_install_time')),
  63. ));
  64. return array('content' => $sContent);
  65. }
  66. public function serviceGetBlockSpace()
  67. {
  68. $sJsObject = $this->getPageJsObject();
  69. $iSizeDiskTotal = $this->getFolderSize(BX_DIRECTORY_PATH_ROOT);
  70. $iSizeDiskMedia = $this->getFolderSize(BX_DIRECTORY_STORAGE);
  71. $iSizeDb = $this->getDbSize();
  72. $aItems = array(
  73. array('label' => '_adm_dbd_txt_su_database', 'value' => $iSizeDb),
  74. array('label' => '_adm_dbd_txt_su_user_media', 'value' => $iSizeDiskMedia),
  75. array('label' => '_adm_dbd_txt_su_system', 'value' => $iSizeDiskTotal - $iSizeDiskMedia),
  76. );
  77. $iSizeTotal = 0;
  78. $aChartData = array();
  79. foreach($aItems as $sColor => $aItem) {
  80. $iSizeTotal += $aItem['value'];
  81. $aChartData[] = array(bx_js_string(strip_tags(_t($aItem['label'])), BX_ESCAPE_STR_APOS), array('v' => $aItem['value'], 'f' => bx_js_string(_t_format_size($aItem['value']))));
  82. }
  83. $sContent = BxDolStudioTemplate::getInstance()->parseHtmlByName('dbd_space.html', array(
  84. 'js_object' => $sJsObject,
  85. 'chart_data' => json_encode($aChartData)
  86. ));
  87. return array('content' => $sContent);
  88. }
  89. public function serviceGetBlockHostTools()
  90. {
  91. $sJsObject = $this->getPageJsObject();
  92. bx_import('BxDolStudioToolsAudit');
  93. $oAudit = new BxDolStudioToolsAudit();
  94. bx_import('BxTemplFunctions');
  95. $oFunc = BxTemplFunctions::getInstance();
  96. $aCheckRequirements = array (
  97. 'PHP' => 'requirementsPHP',
  98. 'MySQL' => 'requirementsMySQL',
  99. 'Web Server' => 'requirementsWebServer',
  100. );
  101. $aLevels = array (BX_DOL_AUDIT_FAIL, BX_DOL_AUDIT_WARN, BX_DOL_AUDIT_UNDEF);
  102. $aTmplVarsItems = array();
  103. foreach ($aCheckRequirements as $sTitle => $sFunc) {
  104. $sStatus = BX_DOL_AUDIT_OK;
  105. foreach ($aLevels as $sLevel) {
  106. $a = $oAudit->checkRequirements($sLevel, $sFunc);
  107. if (!empty($a)) {
  108. $sStatus = $sLevel;
  109. break;
  110. }
  111. }
  112. $aTmplVarsItems[] = array('status' => $oFunc->statusOnOff($sStatus), 'msg' => _t('_adm_dbd_txt_htools_status', $sTitle, $oAudit->typeToTitle($sStatus)));
  113. }
  114. $aMenu = array(
  115. array(
  116. 'name' => 'audit',
  117. 'title' => _t('_sys_inst_server_audit'),
  118. 'link' => 'javascript:void(0)',
  119. 'onclick' => $sJsObject . '.serverAudit()'
  120. )
  121. );
  122. $sContent = BxDolStudioTemplate::getInstance()->parseHtmlByName('dbd_htools.html', array(
  123. 'bx_repeat:items' => $aTmplVarsItems,
  124. ));
  125. return array('content' => $sContent, 'menu' => $aMenu);
  126. }
  127. public function serviceGetBlockCache()
  128. {
  129. $sJsObject = $this->getPageJsObject();
  130. $aMenu = array();
  131. foreach($this->aItemsCache as $aItem)
  132. $aMenu[] = array(
  133. 'name' => $aItem['name'],
  134. 'title' => _t($aItem['title']),
  135. 'link' => 'javascript:void(0)',
  136. 'onclick' => $sJsObject . ".clearCache('" . $aItem['name'] . "')"
  137. );
  138. $sContent = BxDolStudioTemplate::getInstance()->parseHtmlByName('dbd_cache.html', array(
  139. 'js_object' => $sJsObject,
  140. 'chart_data' => $this->getCacheChartData(),
  141. ));
  142. return array('content' => $sContent, 'menu' => $aMenu);
  143. }
  144. }
  145. /** @} */