index.php 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. <?php
  2. $http_host = $_SERVER['HTTP_HOST'];
  3. $default_host = substr($http_host, 0, strpos($http_host, ':'));
  4. include("../../functions.php");
  5. $con = startdb();
  6. if (!checkSession($con)){
  7. header("Location: /index.php");
  8. exit (-1);
  9. }
  10. else{
  11. ?>
  12. <html>
  13. <head>
  14. <meta content="text/html; charset=windows-1252" http-equiv="content-type"/>
  15. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1">
  16. <title>Estadisticas Web - Administracion</title>
  17. <!-- CSS files -->
  18. <link rel="stylesheet" type="text/css" href="/css/ui.css"/>
  19. <link rel="stylesheet" type="text/css" href="/css/estadisticas.css"/>
  20. <!-- CSS for mobile version -->
  21. <link rel="stylesheet" type="text/css" media="(max-width : 990px)" href="/css/m/ui.css"/>
  22. <link rel="stylesheet" type="text/css" media="(max-width : 990px)" href="/css/m/estadisticas.css"/>
  23. <!-- Script files -->
  24. <script type="text/javascript" src="/script/ui.js"></script>
  25. </head>
  26. <body>
  27. <?php include('../../toolbar.php'); ?>
  28. <div id='content'>
  29. <div id='section_table'>
  30. <div class='section_row'>
  31. <div class='section_cell'>
  32. <div class='section'>
  33. <h3 class='section_title'>Visitantes &Uacute;nicos</h3>
  34. <?php
  35. $q_total = mysqli_query($con, "SELECT COUNT(id) AS c FROM stat_visit;");
  36. $q_week = mysqli_query($con, "SELECT COUNT(id) AS c FROM stat_visit WHERE id IN (SELECT visit FROM stat_view WHERE dtime > adddate(curdate(), INTERVAL 1-DAYOFWEEK(curdate()) DAY));");
  37. $q_month = mysqli_query($con, "SELECT COUNT(id) AS c FROM stat_visit WHERE id IN (SELECT visit FROM stat_view WHERE dtime > LAST_DAY(NOW() - INTERVAL 1 MONTH) + INTERVAL 1 DAY);");
  38. $q_year = mysqli_query($con, "SELECT COUNT(id) AS c FROM stat_visit WHERE id IN (SELECT visit FROM stat_view WHERE dtime > DATE_FORMAT(NOW() ,'%Y-01-01'));");
  39. $r_total = mysqli_fetch_array($q_total);
  40. $r_week = mysqli_fetch_array($q_week);
  41. $r_month = mysqli_fetch_array($q_month);
  42. $r_year = mysqli_fetch_array($q_year);
  43. ?>
  44. <div class='entry'>
  45. <ul>
  46. <li>Totales: <?php echo($r_total['c']); ?> </li>
  47. <li>Semana: <?php echo($r_week['c']); ?> </li>
  48. <li>Mes: <?php echo($r_month['c']); ?> </li>
  49. <li>A&ntilde;o: <?php echo($r_year['c']); ?> </li>
  50. </ul>
  51. </div> <!-- .entry -->
  52. </div> <!-- .section -->
  53. </div> <!-- .section_cell -->
  54. <div class='section_cell'>
  55. <div class='section'>
  56. <h3 class='section_title'>Gr&aacute;fico</h3>
  57. <div class='entry'>
  58. <?php
  59. $q_section = mysqli_query($con, "SELECT COUNT(visit) v, section FROM stat_view WHERE section != 'error' AND entry = '' GROUP BY section ORDER BY COUNT(visit)")
  60. $q_blog = mysqli_query($con, "SELECT COUNT(visit) v, section, entry FROM stat_view WHERE section = 'blog' AND entry IS NOT null GROUP section, entry ORDER BY count(visit) DESC LIMIT 4")
  61. ?>
  62. </div> <!-- .entry -->
  63. </div> <!-- .section -->
  64. </div> <!-- .section_cell -->
  65. </div> <!-- .section_row -->
  66. <div class='section_row'>
  67. <div class='section_cell'>
  68. <div class='section'>
  69. <h3 class='section_title'>Secciones</h3>
  70. <div class='entry'>
  71. TODO
  72. </div> <!-- .entry -->
  73. </div> <!-- .section -->
  74. </div> <!-- ..section_cell -->
  75. <div class='section_cell'>
  76. <div class='section'>
  77. <h3 class='section_title'>Or&iacute;gen</h3>
  78. <div class='entry'>
  79. <canvas id="piechart" width="400" height="400"></canvas>
  80. <ul id='piechart_legent'>
  81. <li><span id='lori0c'>##</span> <span id='lori0t'></span></li>
  82. <li><span id='lori1c'>##</span> <span id='lori1t'></span></li>
  83. <li><span id='lori2c'>##</span> <span id='lori2t'></span></li>
  84. <li><span id='lori3c'>##</span> <span id='lori3t'></span></li>
  85. <li><span id='lori4c'>##</span> <span id='lori4t'></span></li>
  86. <li><span id='lori5c'>##</span> <span id='lori5t'></span></li>
  87. <li><span id='lori6c'>##</span> <span id='lori6t'></span></li>
  88. <li><span id='lori7c'>##</span> <span id='lori7t'></span></li>
  89. </ul>
  90. <script type="text/javascript">
  91. var data = [0, 0, 0, 0, 0, 0, 0];
  92. var label = ["", "", "", "", "", "", "", ""];
  93. var colors = ["#CC3333", "#33CC33", "#3333CC", "#CCCC33", "#CC33CC", "#33CCCC", "#CCCCCC", "#333333"];
  94. <?php
  95. $q = mysqli_query($con, "SELECT os, browser, COUNT(id) AS c, ROUND(COUNT(id) * 100 / $r_total[c]) AS percent, ROUND(COUNT(id) * 360 / $r_total[c]) AS deg FROM stat_visit GROUP BY os,browser ORDER BY c DESC LIMIT 7;");
  96. $i = 0;
  97. $sum = $r_total['c'];
  98. $sumPercent = 100;
  99. $sumDeg = 360;
  100. while ($r = mysqli_fetch_array($q)){
  101. ?>
  102. data[<?=$i?>] = <?=$r['deg']?>;
  103. label[<?=$i?>] = "<?=$r['browser']?> en <?=$r['os']?>\n<?=$r['c']?>(<?=$r['percent']?>%)";
  104. <?php
  105. $i ++;
  106. $sum = $sum - $r['c'];
  107. $sumPercent = $sumPercent - $r['percent'];
  108. $sumDeg = $sumDeg - $r['deg'];
  109. }
  110. ?>
  111. data[<?=$i?>] = <?=$sumDeg?>;
  112. label[<?=$i?>] = "Otros<?=$sum?> (<?=$sumPercent?>%)";
  113. function drawSegment(canvas, context, i) {
  114. context.save();
  115. var centerX = Math.floor(canvas.width / 2);
  116. var centerY = Math.floor(canvas.height / 2);
  117. radius = Math.floor(canvas.width / 2);
  118. var startingAngle = degreesToRadians(sumTo(data, i));
  119. var arcSize = degreesToRadians(data[i]);
  120. var endingAngle = startingAngle + arcSize;
  121. context.beginPath();
  122. context.moveTo(centerX, centerY);
  123. context.arc(centerX, centerY, radius,
  124. startingAngle, endingAngle, false);
  125. context.closePath();
  126. context.fillStyle = colors[i];
  127. context.fill();
  128. context.restore();
  129. drawSegmentLabel(i);
  130. }
  131. function drawSegmentLabel(i) {
  132. var dot = document.getElementById("lori" + i + "c");
  133. var tex = document.getElementById("lori" + i + "t");
  134. dot.style.backgroundColor = colors[i];
  135. dot.style.color = colors[i];
  136. tex.innerHTML = label[i];
  137. }
  138. function degreesToRadians(degrees) {
  139. return (degrees * Math.PI)/180;
  140. }
  141. function sumTo(a, i) {
  142. var sum = 0;
  143. for (var j = 0; j < i; j++) {
  144. sum += a[j];
  145. }
  146. return sum;
  147. }
  148. canvas = document.getElementById("piechart");
  149. var context = canvas.getContext("2d");
  150. for (var i = 0; i < data.length; i++) {
  151. drawSegment(canvas, context, i);
  152. }
  153. </script>
  154. </div> <!-- .entry -->
  155. </div> <!-- .section -->
  156. </div> <!-- ..section_cell -->
  157. </div> <!-- .section_row -->
  158. </div> <!-- #section_table -->
  159. </div> <!-- #content -->
  160. </body>
  161. </html>
  162. <?php } ?>