BxBaseMenuDashboardReportsManage.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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. * Menu representation.
  11. * @see BxDolMenu
  12. */
  13. class BxBaseMenuDashboardReportsManage extends BxTemplMenuCustom
  14. {
  15. protected $_bShowDivider;
  16. public function __construct ($aObject, $oTemplate)
  17. {
  18. parent::__construct ($aObject);
  19. $this->_sTmplContentItem = $this->_oTemplate->getHtml('menu_custom_item_addon.html');
  20. $this->_aObject['menu_id'] = 'sys-dashboard-reports-manage-menu';
  21. $this->_bShowDivider = false;
  22. $this->_bDisplayAddons = true;
  23. }
  24. protected function getMenuItemsRaw ()
  25. {
  26. $aUrl = bx_get_base_url_inline();
  27. $aSystems = BxDolReport::getSystems();
  28. $sSelected = '';
  29. if(($_sSelected = bx_get('object')) !== false)
  30. $sSelected = bx_process_input($_sSelected);
  31. if(!$sSelected)
  32. $sSelected = reset($aSystems)['name'];
  33. $aResult = [];
  34. foreach($aSystems as $aSystem) {
  35. $sName = $aSystem['name'];
  36. if(!empty($aSystem['class_name'])) {
  37. $oReport = BxDolReport::getObjectInstance($sName, 0, false);
  38. if(!$oReport->isProcessible())
  39. continue;
  40. }
  41. $aResult[$sName] = [
  42. 'name' => $sName,
  43. 'title' => _t('_' . $sName),
  44. 'link' => bx_append_url_params($aUrl[0], array_merge($aUrl[1], array('object' => $sName))),
  45. 'active' => true,
  46. 'addon' => serialize([
  47. 'module' => 'system',
  48. 'method' => 'get_reports_count',
  49. 'params' => [
  50. 'module' => $sName,
  51. 'status' => BX_DOL_REPORT_STASUS_NEW
  52. ],
  53. 'class' => 'TemplDashboardServices'
  54. ]),
  55. 'selected' => $sSelected == $sName ? true : false
  56. ];
  57. }
  58. if(!empty($aResult) && is_array($aResult)){
  59. $aResult['more-auto'] = [
  60. 'module' => 'system',
  61. 'id' => 'more-auto',
  62. 'name' => 'more-auto',
  63. 'active' => true,
  64. 'title' => '_sys_menu_item_title_va_more_auto',
  65. 'href' => 'javascript:void(0)',
  66. 'icon' => 'ellipsis-v',
  67. ];
  68. }
  69. return $aResult;
  70. }
  71. protected function _isSelected ($a)
  72. {
  73. return isset($a['selected']) ? $a['selected'] : false;
  74. }
  75. }
  76. /** @} */