BxBaseStudioDashboard.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  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. $aErrors = $oAudit->checkRequirements(BX_DOL_AUDIT_FAIL);
  95. $aWarnings = $oAudit->checkRequirements(BX_DOL_AUDIT_WARN);
  96. $aTmplVarsItems = array();
  97. foreach($aErrors as $sError)
  98. $aTmplVarsItems[] = array('item' => $sError);
  99. foreach($aWarnings as $sWarning)
  100. $aTmplVarsItems[] = array('item' => $sWarning);
  101. $aMenu = array(
  102. array(
  103. 'name' => 'audit',
  104. 'title' => _t('_sys_inst_server_audit'),
  105. 'link' => 'javascript:void(0)',
  106. 'onclick' => $sJsObject . '.serverAudit()'
  107. )
  108. );
  109. $sContent = BxDolStudioTemplate::getInstance()->parseHtmlByName('dbd_htools.html', array(
  110. 'bx_repeat:items' => $aTmplVarsItems,
  111. 'styles' => $oAudit->generateStyles(true)
  112. ));
  113. return array('content' => $sContent, 'menu' => $aMenu);
  114. }
  115. public function serviceGetBlockCache()
  116. {
  117. $sJsObject = $this->getPageJsObject();
  118. $aMenu = array();
  119. foreach($this->aItemsCache as $aItem)
  120. $aMenu[] = array(
  121. 'name' => $aItem['name'],
  122. 'title' => _t($aItem['title']),
  123. 'link' => 'javascript:void(0)',
  124. 'onclick' => $sJsObject . ".clearCache('" . $aItem['name'] . "')"
  125. );
  126. $sContent = BxDolStudioTemplate::getInstance()->parseHtmlByName('dbd_cache.html', array(
  127. 'js_object' => $sJsObject,
  128. 'chart_data' => $this->getCacheChartData(),
  129. ));
  130. return array('content' => $sContent, 'menu' => $aMenu);
  131. }
  132. }
  133. /** @} */