BxBaseStudioDashboard.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  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('page_layouts.css', 'dashboard.css'));
  20. }
  21. function getPageJs()
  22. {
  23. return array_merge(parent::getPageJs(), array(
  24. "https://www.google.com/jsapi?autoload={'modules':[{'name':'visualization','version':'1','packages':['corechart']}]}",
  25. 'jquery.anim.js',
  26. 'dashboard.js'
  27. ));
  28. }
  29. function getPageJsClass()
  30. {
  31. return 'BxDolStudioDashboard';
  32. }
  33. function getPageJsObject()
  34. {
  35. return 'oBxDolStudioDashboard';
  36. }
  37. function getPageJsCode($aOptions = array(), $bWrap = true)
  38. {
  39. $aOptions = array_merge($aOptions, array(
  40. 'sActionUrl' => BX_DOL_URL_STUDIO . 'dashboard.php',
  41. 'sVersion' => '__version__'
  42. ));
  43. return parent::getPageJsCode($aOptions, $bWrap);
  44. }
  45. function getPageCode($bHidden = false)
  46. {
  47. bx_import('BxDolPage');
  48. $oPage = BxDolPage::getObjectInstance('sys_std_dashboard');
  49. return $oPage->getCode();
  50. }
  51. public function serviceGetBlockVersion()
  52. {
  53. $oTemplate = BxDolStudioTemplate::getInstance();
  54. $oTemplate->addJsTranslation('_adm_dbd_txt_dolphin_n_available');
  55. $sContent = $oTemplate->parseHtmlByName('dbd_versions.html', array(
  56. 'domain' => getParam('site_title'),
  57. 'version' => bx_get_ver(),
  58. 'installed' => bx_time_js(getParam('sys_install_time')),
  59. ));
  60. return array('content' => $sContent);
  61. }
  62. public function serviceGetBlockSpace()
  63. {
  64. $sJsObject = $this->getPageJsObject();
  65. $iSizeDiskTotal = $this->getFolderSize(BX_DIRECTORY_PATH_ROOT);
  66. $iSizeDiskMedia = $this->getFolderSize(BX_DIRECTORY_STORAGE);
  67. $iSizeDb = $this->getDbSize();
  68. $aItems = array(
  69. array('label' => '_adm_dbd_txt_su_database', 'value' => $iSizeDb),
  70. array('label' => '_adm_dbd_txt_su_user_media', 'value' => $iSizeDiskMedia),
  71. array('label' => '_adm_dbd_txt_su_system', 'value' => $iSizeDiskTotal - $iSizeDiskMedia),
  72. );
  73. $iSizeTotal = 0;
  74. $aChartData = array();
  75. foreach($aItems as $sColor => $aItem) {
  76. $iSizeTotal += $aItem['value'];
  77. $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']))));
  78. }
  79. $sContent = BxDolStudioTemplate::getInstance()->parseHtmlByName('dbd_space.html', array(
  80. 'js_object' => $sJsObject,
  81. 'chart_data' => json_encode($aChartData)
  82. ));
  83. return array('content' => $sContent);
  84. }
  85. public function serviceGetBlockHostTools()
  86. {
  87. $sJsObject = $this->getPageJsObject();
  88. bx_import('BxDolStudioToolsAudit');
  89. $oAudit = new BxDolStudioToolsAudit();
  90. $aErrors = $oAudit->checkRequirements(BX_DOL_AUDIT_FAIL);
  91. $aWarnings = $oAudit->checkRequirements(BX_DOL_AUDIT_WARN);
  92. $aTmplVarsItems = array();
  93. foreach($aErrors as $sError)
  94. $aTmplVarsItems[] = array('item' => $sError);
  95. foreach($aWarnings as $sWarning)
  96. $aTmplVarsItems[] = array('item' => $sWarning);
  97. $aMenu = array(
  98. array(
  99. 'name' => 'audit',
  100. 'title' => _t('_sys_inst_server_audit'),
  101. 'link' => 'javascript:void(0)',
  102. 'onclick' => $sJsObject . '.serverAudit()'
  103. )
  104. );
  105. $sContent = BxDolStudioTemplate::getInstance()->parseHtmlByName('dbd_htools.html', array(
  106. 'bx_repeat:items' => $aTmplVarsItems,
  107. 'styles' => $oAudit->generateStyles(true)
  108. ));
  109. return array('content' => $sContent, 'menu' => $aMenu);
  110. }
  111. public function serviceGetBlockCache()
  112. {
  113. $sJsObject = $this->getPageJsObject();
  114. $aMenu = array();
  115. foreach($this->aItemsCache as $aItem)
  116. $aMenu[] = array(
  117. 'name' => $aItem['name'],
  118. 'title' => _t($aItem['title']),
  119. 'link' => 'javascript:void(0)',
  120. 'onclick' => $sJsObject . ".clearCache('" . $aItem['name'] . "')"
  121. );
  122. $sContent = BxDolStudioTemplate::getInstance()->parseHtmlByName('dbd_cache.html', array(
  123. 'js_object' => $sJsObject,
  124. 'chart_data' => $this->getCacheChartData(),
  125. ));
  126. return array('content' => $sContent, 'menu' => $aMenu);
  127. }
  128. }
  129. /** @} */