BxBaseDashboardServices.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  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 UnaBaseView UNA Base Representation Classes
  7. * @{
  8. */
  9. /**
  10. * Services for dashboard objects functionality
  11. * @see BxDolChart
  12. */
  13. class BxBaseDashboardServices extends BxDol
  14. {
  15. public function serviceManageReports()
  16. {
  17. $oMenu = BxDolMenu::getObjectInstance('sys_dashboard_reports');
  18. if(!$oMenu)
  19. return '';
  20. $aSystems = BxDolReport::getSystems();
  21. $sSelected = bx_get('object');
  22. if ($sSelected == ''){
  23. $sSelected = reset($aSystems)['name'];
  24. }
  25. $oGrid = BxDolGrid::getObjectInstance('sys_reports_administration');
  26. $oGrid->setObject($aSystems[$sSelected]['name']);
  27. if(!$oGrid)
  28. return '';
  29. $oTemplate = BxDolTemplate::getInstance();
  30. $oTemplate->addJs(array('BxDolReportsManageTools.js', 'BxDolGrid.js'));
  31. $oTemplate->addCss(array('manage_tools.css'));
  32. $oTemplate->addJsTranslation(array('_sys_grid_search'));
  33. return array(
  34. 'content' =>$oGrid->getCode(),
  35. 'menu' => $oMenu
  36. );
  37. }
  38. public function serviceGetReportsCount($sObjectReposrt, $iStatus)
  39. {
  40. $oReport = BxDolReport::getObjectInstance($sObjectReposrt, 0, false);
  41. $iCount = $oReport->getCountByStatus($iStatus);
  42. if ($iCount > 0)
  43. return $iCount;
  44. return ;
  45. }
  46. public function serviceManageAudit()
  47. {
  48. return bx_srv('system', 'manage_tools', array(), 'TemplAuditServices');
  49. }
  50. public function serviceManageContent()
  51. {
  52. $oMenu = BxDolMenu::getObjectInstance('sys_dashboard_content');
  53. if(!$oMenu)
  54. return '';
  55. $aModules = BxDolModuleQuery::getInstance()->getModulesBy(['type' => 'modules', 'active' => 1]);
  56. $aModulesList = [];
  57. foreach($aModules as $aModule) {
  58. $oModule = BxDolModule::getInstance($aModule['name']);
  59. if($oModule instanceof iBxDolContentInfoService && BxDolRequest::serviceExists($aModule['name'], 'manage_tools')) {
  60. $aModulesList[$aModule['uri']] = $aModule;
  61. }
  62. }
  63. $sSelected = bx_get('module');
  64. if($sSelected == '')
  65. $sSelected = reset($aModulesList)['uri'];
  66. $sContent = '';
  67. if(isset($aModulesList[$sSelected])) {
  68. $sSelectedModule = $aModulesList[$sSelected]['name'];
  69. $aBlock = bx_srv($sSelectedModule, 'manage_tools', array('administration'));
  70. if(!empty($aBlock) && is_array($aBlock))
  71. $sContent = $aBlock['content'];
  72. }
  73. else {
  74. $sSelectedModule = 'system';
  75. $sMethod = '_getManageContent' . bx_gen_method_name($sSelected);
  76. if(method_exists($this, $sMethod))
  77. $sContent = $this->$sMethod();
  78. }
  79. $oMenu->setMenuData($aModulesList);
  80. $oMenu->setSelected($sSelectedModule, $sSelected);
  81. return array(
  82. 'content' => $sContent,
  83. 'menu' => $oMenu
  84. );
  85. }
  86. protected function _getManageContentCmts()
  87. {
  88. $aBlock = bx_srv('system', 'manage_tools', ['administration'], 'TemplCmtsServices');
  89. if(empty($aBlock) || !is_array($aBlock))
  90. return '';
  91. return $aBlock['content'];
  92. }
  93. }
  94. /** @} */