PageRenderTime 25ms CodeModel.GetById 10ms RepoModel.GetById 0ms app.codeStats 0ms

/modules/statistic/admin/adv_graph_1.php

https://gitlab.com/alexprowars/bitrix
PHP | 132 lines | 92 code | 17 blank | 23 comment | 43 complexity | 8189216a988d13caccb9b6af8e471006 MD5 | raw file
  1. <?php
  2. define("STOP_STATISTICS", true);
  3. require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
  4. /** @var CMain $APPLICATION */
  5. $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
  6. if($STAT_RIGHT=="D") $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
  7. include($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/statistic/colors.php");
  8. require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/img.php");
  9. $width = intval($_GET["width"]);
  10. $max_width = COption::GetOptionInt("statistic", "GRAPH_WEIGHT");
  11. if($width <= 0 || $width > $max_width)
  12. $width = $max_width;
  13. $height = intval($_GET["height"]);
  14. $max_height = COption::GetOptionInt("statistic", "GRAPH_HEIGHT");
  15. if($height <= 0 || $height > $max_height)
  16. $height = $max_height;
  17. // image init
  18. $ImageHandle = CreateImageHandle($width, $height);
  19. $arrX=Array(); // X axis points
  20. $arrY=Array(); // Y axis points
  21. $arrayX=Array(); // X axis grid points
  22. $arrayY=Array(); // Y axis grid points
  23. /******************************************************
  24. Get plot data
  25. *******************************************************/
  26. $arFilter = Array(
  27. "DATE1" => $find_date1,
  28. "DATE2" => $find_date2
  29. );
  30. $dynamic = CAdv::GetDynamicList($ADV_ID, "s_date", "asc", $arMaxMin, $arFilter);
  31. while($arData = $dynamic->GetNext())
  32. {
  33. $date = mktime(0, 0, 0, $arData["MONTH"], $arData["DAY"], $arData["YEAR"]);
  34. $date_tmp = 0;
  35. // arrage dates in order
  36. $next_date = AddTime($prev_date, 1, "D");
  37. if(($date > $next_date) && (intval($prev_date) > 0))
  38. {
  39. // fill missing dates
  40. $date_tmp = $next_date;
  41. while($date_tmp < $date)
  42. {
  43. $arrX[] = $date_tmp;
  44. if ($find_sessions=="Y") $arrY_sessions[] = 0;
  45. if ($find_sessions_back=="Y") $arrY_sessions_back[] = 0;
  46. if ($find_guests=="Y") $arrY_guests[] = 0;
  47. if ($find_new_guests=="Y") $arrY_new_guests[] = 0;
  48. if ($find_guests_back=="Y") $arrY_guests_back[] = 0;
  49. if ($find_hosts=="Y") $arrY_hosts[] = 0;
  50. if ($find_hosts_back=="Y") $arrY_hosts_back[] = 0;
  51. if ($find_hits=="Y") $arrY_hits[] = 0;
  52. if ($find_hits_back=="Y") $arrY_hits_back[] = 0;
  53. $date_tmp = AddTime($date_tmp, 1, "D");
  54. }
  55. }
  56. $arrX[] = $date;
  57. if ($find_sessions=="Y") $arrY_sessions[] = intval($arData["SESSIONS"]);
  58. if ($find_sessions_back=="Y") $arrY_sessions_back[] = intval($arData["SESSIONS_BACK"]);
  59. if ($find_guests=="Y") $arrY_guests[] = intval($arData["GUESTS"]);
  60. if ($find_new_guests=="Y") $arrY_new_guests[] = intval($arData["NEW_GUESTS"]);
  61. if ($find_guests_back=="Y") $arrY_guests_back[] = intval($arData["GUESTS_BACK"]);
  62. if ($find_hosts=="Y") $arrY_hosts[] = intval($arData["C_HOSTS"]);
  63. if ($find_hosts_back=="Y") $arrY_hosts_back[] = intval($arData["HOSTS_BACK"]);
  64. if ($find_hits=="Y") $arrY_hits[] = intval($arData["HITS"]);
  65. if ($find_hits_back=="Y") $arrY_hits_back[] = intval($arData["HITS_BACK"]);
  66. $prev_date = $date;
  67. }
  68. /******************************************************
  69. X axis
  70. *******************************************************/
  71. $arrayX = GetArrayX($arrX, $MinX, $MaxX);
  72. /******************************************************
  73. Y axis
  74. *******************************************************/
  75. $arrY = array();
  76. if ($find_sessions=="Y") $arrY = array_merge($arrY, $arrY_sessions);
  77. if ($find_sessions_back=="Y") $arrY = array_merge($arrY, $arrY_sessions_back);
  78. if ($find_guests=="Y") $arrY = array_merge($arrY, $arrY_guests);
  79. if ($find_guests_back=="Y") $arrY = array_merge($arrY, $arrY_guests_back);
  80. if ($find_new_guests=="Y") $arrY = array_merge($arrY, $arrY_new_guests);
  81. if ($find_hosts=="Y") $arrY = array_merge($arrY, $arrY_hosts);
  82. if ($find_hosts_back=="Y") $arrY = array_merge($arrY, $arrY_hosts_back);
  83. if ($find_hits=="Y") $arrY = array_merge($arrY, $arrY_hits);
  84. if ($find_hits_back=="Y") $arrY = array_merge($arrY, $arrY_hits_back);
  85. $arrayY = GetArrayY($arrY, $MinY, $MaxY);
  86. //EchoGraphData($arrayX, $MinX, $MaxX, $arrayY, $MinY, $MaxY, $arrX, $arrY);
  87. /******************************************************
  88. draw grid
  89. *******************************************************/
  90. DrawCoordinatGrid($arrayX, $arrayY, $width, $height, $ImageHandle);
  91. /******************************************************
  92. plot
  93. *******************************************************/
  94. if ($find_sessions=="Y")
  95. Graf($arrX, $arrY_sessions, $ImageHandle, $MinX, $MaxX, $MinY, $MaxY, $arrColor["SESSIONS"]);
  96. if ($find_sessions_back=="Y")
  97. Graf($arrX, $arrY_sessions_back, $ImageHandle, $MinX, $MaxX, $MinY, $MaxY, $arrColor["SESSIONS"], "Y");
  98. if ($find_guests=="Y")
  99. Graf($arrX, $arrY_guests, $ImageHandle, $MinX, $MaxX, $MinY, $MaxY, $arrColor["GUESTS"]);
  100. if ($find_guests_back=="Y")
  101. Graf($arrX, $arrY_guests_back, $ImageHandle, $MinX, $MaxX, $MinY, $MaxY, $arrColor["GUESTS"], "Y");
  102. if ($find_new_guests=="Y")
  103. Graf($arrX, $arrY_new_guests, $ImageHandle, $MinX, $MaxX, $MinY, $MaxY, $arrColor["NEW_GUESTS"]);
  104. if ($find_hosts=="Y")
  105. Graf($arrX, $arrY_hosts, $ImageHandle, $MinX, $MaxX, $MinY, $MaxY, $arrColor["HOSTS"]);
  106. if ($find_hosts_back=="Y")
  107. Graf($arrX, $arrY_hosts_back, $ImageHandle, $MinX, $MaxX, $MinY, $MaxY, $arrColor["HOSTS"], "Y");
  108. if ($find_hits=="Y")
  109. Graf($arrX, $arrY_hits, $ImageHandle, $MinX, $MaxX, $MinY, $MaxY, $arrColor["HITS"]);
  110. if ($find_hits_back=="Y")
  111. Graf($arrX, $arrY_hits_back, $ImageHandle, $MinX, $MaxX, $MinY, $MaxY, $arrColor["HITS"], "Y");
  112. /******************************************************
  113. send image
  114. *******************************************************/
  115. ShowImageHeader($ImageHandle);