BxBaseStudioDashboard.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  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. 'https://www.google.com/jsapi',
  28. 'jquery.anim.js',
  29. 'dashboard.js'
  30. ));
  31. }
  32. function getPageJsClass()
  33. {
  34. return 'BxDolStudioDashboard';
  35. }
  36. function getPageJsObject()
  37. {
  38. return 'oBxDolStudioDashboard';
  39. }
  40. function getPageJsCode($aOptions = array(), $bWrap = true)
  41. {
  42. $aOptions = array_merge($aOptions, array(
  43. 'sActionUrl' => BX_DOL_URL_STUDIO . 'dashboard.php',
  44. 'sVersion' => '__version__'
  45. ));
  46. return parent::getPageJsCode($aOptions, $bWrap);
  47. }
  48. function getPageCode($bHidden = false)
  49. {
  50. bx_import('BxDolPage');
  51. $oPage = BxDolPage::getObjectInstance('sys_std_dashboard');
  52. return $oPage->getCode();
  53. }
  54. public function serviceGetBlockVersion()
  55. {
  56. $oTemplate = BxDolStudioTemplate::getInstance();
  57. $oTemplate->addJsTranslation('_adm_dbd_txt_dolphin_n_available');
  58. $sContent = $oTemplate->parseHtmlByName('dbd_versions.html', array(
  59. 'domain' => getParam('site_title'),
  60. 'version' => bx_get_ver(),
  61. 'installed' => bx_time_js(getParam('sys_install_time')),
  62. ));
  63. return array('content' => $sContent);
  64. }
  65. public function serviceGetBlockSpace($bShowContent = false)
  66. {
  67. $aChartData = array();
  68. if($bShowContent) {
  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. }
  84. $sContent = BxDolStudioTemplate::getInstance()->parseHtmlByName('dbd_space.html', array(
  85. 'bx_if:show_content' => array(
  86. 'condition' => $bShowContent,
  87. 'content' => array(
  88. 'js_object' => $this->getPageJsObject(),
  89. 'chart_data' => json_encode($aChartData)
  90. )
  91. )
  92. ));
  93. return array('content' => $sContent);
  94. }
  95. public function serviceGetBlockHostTools($bShowContent = false)
  96. {
  97. $sJsObject = $this->getPageJsObject();
  98. $aMenu = array(
  99. array(
  100. 'name' => 'audit',
  101. 'title' => _t('_sys_inst_server_audit'),
  102. 'link' => 'javascript:void(0)',
  103. 'onclick' => $sJsObject . '.serverAudit()'
  104. )
  105. );
  106. $aTmplVarsItems = array();
  107. if($bShowContent) {
  108. bx_import('BxDolStudioToolsAudit');
  109. $oAudit = new BxDolStudioToolsAudit();
  110. bx_import('BxTemplFunctions');
  111. $oFunc = BxTemplFunctions::getInstance();
  112. $aCheckRequirements = array (
  113. 'PHP' => 'requirementsPHP',
  114. 'MySQL' => 'requirementsMySQL',
  115. 'Web Server' => 'requirementsWebServer',
  116. );
  117. $aLevels = array (BX_DOL_AUDIT_FAIL, BX_DOL_AUDIT_WARN, BX_DOL_AUDIT_UNDEF);
  118. $aTmplVarsItems = array();
  119. foreach ($aCheckRequirements as $sTitle => $sFunc) {
  120. $sStatus = BX_DOL_AUDIT_OK;
  121. foreach ($aLevels as $sLevel) {
  122. $a = $oAudit->checkRequirements($sLevel, $sFunc);
  123. if (!empty($a)) {
  124. $sStatus = $sLevel;
  125. break;
  126. }
  127. }
  128. $aTmplVarsItems[] = array('status' => $oFunc->statusOnOff($sStatus), 'msg' => _t('_adm_dbd_txt_htools_status', $sTitle, $oAudit->typeToTitle($sStatus)));
  129. }
  130. }
  131. $sContent = BxDolStudioTemplate::getInstance()->parseHtmlByName('dbd_htools.html', array(
  132. 'bx_if:show_content' => array(
  133. 'condition' => $bShowContent,
  134. 'content' => array(
  135. 'bx_repeat:items' => $aTmplVarsItems,
  136. )
  137. )
  138. ));
  139. return array('content' => $sContent, 'menu' => $aMenu);
  140. }
  141. public function serviceGetBlockCache()
  142. {
  143. $sJsObject = $this->getPageJsObject();
  144. $sChartData = $this->getCacheChartData();
  145. $bChartData = $sChartData !== false;
  146. $aMenu = array();
  147. if($bChartData)
  148. foreach($this->aItemsCache as $aItem)
  149. $aMenu[] = array(
  150. 'name' => $aItem['name'],
  151. 'title' => _t('_adm_dbd_txt_c_clear_' . $aItem['name']),
  152. 'link' => 'javascript:void(0)',
  153. 'onclick' => $sJsObject . ".clearCache('" . $aItem['name'] . "')"
  154. );
  155. $sContent = BxDolStudioTemplate::getInstance()->parseHtmlByName('dbd_cache.html', array(
  156. 'bx_if:show_chart' => array(
  157. 'condition' => $bChartData,
  158. 'content' => array(
  159. 'js_object' => $sJsObject,
  160. 'chart_data' => $sChartData,
  161. )
  162. ),
  163. 'bx_if:show_empty' => array(
  164. 'condition' => !$bChartData,
  165. 'content' => array(
  166. 'message' => MsgBox(_t('_adm_dbd_msg_c_all_disabled'))
  167. )
  168. ),
  169. ));
  170. return array('content' => $sContent, 'menu' => $aMenu);
  171. }
  172. }
  173. /** @} */