index.php 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <?php
  2. include("../../functions.php");
  3. $con = startdb();
  4. if (!checkSession($con)){
  5. header("Location: /index.php");
  6. exit (-1);
  7. }
  8. else{
  9. ?>
  10. <html>
  11. <head>
  12. <meta content='text/html; charset=windows-1252' http-equiv='content-type'/>
  13. <meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1'>
  14. <title>Estadisticas Web - Administracion</title>
  15. <!-- CSS files -->
  16. <link rel='stylesheet' type='text/css' href='/css/ui.css'/>
  17. <link rel='stylesheet' type='text/css' href='/css/estadisticas.css'/>
  18. <!-- CSS for mobile version -->
  19. <link rel='stylesheet' type='text/css' media='(max-width : 990px)' href='/css/m/ui.css'/>
  20. <link rel='stylesheet' type='text/css' media='(max-width : 990px)' href='/css/m/estadisticas.css'/>
  21. <!-- Script files -->
  22. <script type='text/javascript' src='/script/ui.js'></script>
  23. </head>
  24. <body>
  25. <?php
  26. include("../../toolbar.php");
  27. ?>
  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
  163. }
  164. ?>