PageRenderTime 34ms CodeModel.GetById 11ms RepoModel.GetById 0ms app.codeStats 0ms

/all.php

https://github.com/rakshithkr/showslow
PHP | 285 lines | 245 code | 40 blank | 0 comment | 61 complexity | 1a9beeb66a3ef217992554ef2a1733f5 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. <?php
  2. require_once(dirname(__FILE__).'/global.php');
  3. require_once(dirname(__FILE__).'/users/users.php');
  4. require_once(dirname(__FILE__).'/paginator.class.php');
  5. $searchstring = null;
  6. if (array_key_exists('search', $_GET) && trim($_GET['search']) != '') {
  7. $searchstring = "urls.url LIKE '%".mysql_real_escape_string(trim($_GET['search']))."%'";
  8. $current_user = User::get();
  9. if (!is_null($current_user)) {
  10. $current_user->recordActivity(SHOWSLOW_ACTIVITY_URL_SEARCH);
  11. }
  12. }
  13. $TITLE = 'URLs measured';
  14. $SECTION = 'all';
  15. require_once(dirname(__FILE__).'/header.php');
  16. if ($disableUnfilteredURLList && is_null($searchstring)) { // start show only filtered results
  17. ?><p align="center"><i>Use form above to search URLs</i></p><?php
  18. } else {
  19. ?>
  20. <style>
  21. .paginator .current {
  22. text-decoration: none;
  23. font-weight: bold;
  24. color: black;
  25. }
  26. </style>
  27. <h2>URLs measured</h2>
  28. <?php
  29. $subset = null;
  30. if (is_array($URLGroups) && count($URLGroups) > 0) {
  31. $params = array();
  32. if (!is_null($searchstring)) {
  33. $params['search'] = urlencode(trim($_GET['search']));
  34. }
  35. $paramsstring = '';
  36. ?>
  37. <ul>
  38. <?php
  39. if ($current_group == '__show_all__') {
  40. ?>
  41. <li><b>All URLs</b></li>
  42. <?php
  43. } else {
  44. $id = '__show_all__';
  45. if ($DefaultURLGroup == $id) {
  46. $linkparams = $params;
  47. } else {
  48. $linkparams = array_merge($params, array('group' => urlencode($id)));
  49. }
  50. $paramsstring = '';
  51. if (count($linkparams) > 0) {
  52. foreach ($linkparams as $name => $param) {
  53. $paramsstring .= $paramsstring == '' ? '?' : '&';
  54. $paramsstring .= $name.'='.$param;
  55. }
  56. }
  57. ?>
  58. <li><a href="<?php echo $showslow_base.'all.php'.$paramsstring ?>">All URLs</a></li>
  59. <?php
  60. }
  61. foreach ($URLGroups as $id => $group) {
  62. if ($current_group == $id) {
  63. $subset = $group['urls'];
  64. ?><li><b><?php echo $group['title']?></b></li><?php
  65. } else {
  66. if ($DefaultURLGroup == $id) {
  67. $linkparams = $params;
  68. } else {
  69. $linkparams = array_merge($params, array('group' => urlencode($id)));
  70. }
  71. $paramsstring = '';
  72. if (count($linkparams) > 0) {
  73. foreach ($linkparams as $name => $param) {
  74. $paramsstring .= $paramsstring == '' ? '?' : '&';
  75. $paramsstring .= $name.'='.$param;
  76. }
  77. }
  78. ?><li><a href="<?php echo $showslow_base.'all.php'.$paramsstring ?>"><?php echo $group['title']?></a></li><?php
  79. }
  80. }
  81. ?></ul>
  82. <?php
  83. }
  84. ?>
  85. <style>
  86. .paginator {
  87. padding: 1em;
  88. }
  89. .paginator .paginate {
  90. padding: 2px 6px;
  91. border: 1px solid silver;
  92. text-decoration: none;
  93. }
  94. .paginator .current {
  95. padding: 2px 6px;
  96. border: 2px solid #7F6F26;
  97. background: #7F6F26;
  98. color: white;
  99. }
  100. .paginator .inactive {
  101. color: silver;
  102. padding: 2px 6px;
  103. }
  104. </style>
  105. <div style="width: 100%; overflow: hidden">
  106. <?php
  107. $perPage = 50;
  108. $page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
  109. if ($page < 1) {
  110. $page = 1;
  111. }
  112. $offset = ($page - 1) * $perPage;
  113. $subsetstring = null;
  114. $first = true;
  115. if (is_array($subset)) {
  116. foreach ($subset as $url) {
  117. if ($first) {
  118. $first = false;
  119. } else {
  120. $subsetstring .= ' OR ';
  121. }
  122. $subsetstring .= "urls.url LIKE '".mysql_real_escape_string($url)."%'";
  123. }
  124. }
  125. $query = "SELECT count(*)
  126. FROM urls
  127. LEFT JOIN yslow2 ON urls.yslow2_last_id = yslow2.id
  128. LEFT JOIN pagespeed ON urls.pagespeed_last_id = pagespeed.id
  129. LEFT JOIN dynatrace ON urls.dynatrace_last_id = dynatrace.id
  130. LEFT JOIN har ON urls.har_last_id = har.id
  131. LEFT JOIN pagetest ON urls.pagetest_last_id = pagetest.id
  132. WHERE last_update IS NOT NULL";
  133. if (!is_null($subsetstring)) {
  134. $query .= " AND ($subsetstring)";
  135. }
  136. if (!is_null($searchstring)) {
  137. $query .= " AND $searchstring";
  138. }
  139. $result = mysql_query($query);
  140. $row = mysql_fetch_row($result);
  141. $total = $row[0];
  142. $pages = new Paginator();
  143. $pages->items_total = $total;
  144. $pages->mid_range = 7;
  145. $pages->items_per_page = $perPage;
  146. $query = 'SELECT url, urls.id as url_id, last_update,
  147. yslow2.o as o,
  148. pagespeed.o as ps_o,
  149. dynatrace.rank as dt_o
  150. FROM urls
  151. LEFT JOIN yslow2 ON urls.yslow2_last_id = yslow2.id
  152. LEFT JOIN pagespeed ON urls.pagespeed_last_id = pagespeed.id
  153. LEFT JOIN dynatrace ON urls.dynatrace_last_id = dynatrace.id
  154. LEFT JOIN har ON urls.har_last_id = har.id
  155. LEFT JOIN pagetest ON urls.pagetest_last_id = pagetest.id
  156. WHERE last_update IS NOT NULL';
  157. if (!is_null($subsetstring)) {
  158. $query .= " AND ($subsetstring)";
  159. }
  160. if (!is_null($searchstring)) {
  161. $query .= " AND $searchstring";
  162. }
  163. $query .= sprintf(" ORDER BY url LIMIT %d OFFSET %d", $perPage, $offset);
  164. $result = mysql_query($query);
  165. if (!$result) {
  166. error_log(mysql_error());
  167. }
  168. $yslow = false;
  169. $pagespeed = false;
  170. $dynatrace = false;
  171. $rows = array();
  172. while ($row = mysql_fetch_assoc($result)) {
  173. $rows[] = $row;
  174. if ($enabledMetrics['yslow'] && !$yslow && !is_null($row['o'])) {
  175. $yslow = true;
  176. }
  177. if ($enabledMetrics['pagespeed'] && !$pagespeed && !is_null($row['ps_o'])) {
  178. $pagespeed = true;
  179. }
  180. if ($enabledMetrics['dynatrace'] && !$dynatrace && !is_null($row['dt_o'])) {
  181. $dynatrace = true;
  182. }
  183. }
  184. if ($yslow || $pagespeed || $dynatrace) {
  185. $pages->paginate($showslow_base.'all.php');
  186. if ($pages->num_pages > 1) {
  187. ?><div class="paginator"><?php
  188. echo $pages->display_pages();
  189. ?></div><?php
  190. }
  191. ?>
  192. <table>
  193. <tr><th>Timestamp</th>
  194. <?php if ($yslow) { ?><th colspan="2">YSlow grade</th><?php } ?>
  195. <?php if ($pagespeed) { ?><th colspan="2">Page Speed score</th><?php } ?>
  196. <?php if ($dynatrace) { ?><th colspan="2">dynaTrace rank</th><?php } ?>
  197. <th style="padding-left:10px; text-align: left">URL</th>
  198. </tr><?php
  199. foreach ($rows as $row) {
  200. ?><tr>
  201. <td><?php echo htmlentities($row['last_update'])?></td>
  202. <?php if (!$yslow) {?>
  203. <?php }else if (is_null($row['o'])) {?>
  204. <td class="score" style="color: silver" title="No data collected">no data</td>
  205. <td><div class="gbox" title="No data collected"><div class="bar"/></div></td>
  206. <?php }else{?>
  207. <td class="score" title="Current YSlow grade: <?php echo prettyScore($row['o'])?> (<?php echo $row['o']?>)"><?php echo prettyScore($row['o'])?> (<?php echo $row['o']?>)</td>
  208. <td title="Current YSlow grade: <?php echo prettyScore($row['o'])?> (<?php echo $row['o']?>)"><div class="gbox"><div style="width: <?php echo $row['o']+1?>px" class="bar c<?php echo scoreColorStep($row['o'])?>"/></div></td>
  209. <?php }?>
  210. <?php if (!$pagespeed) {?>
  211. <?php }else if (is_null($row['ps_o'])) {?>
  212. <td class="score" style="color: silver" title="No data collected">no data</td>
  213. <td><div class="gbox" title="No data collected"><div class="bar"/></div></td>
  214. <?php }else{?>
  215. <td class="score" title="Current Page Speed score: <?php echo prettyScore($row['ps_o'])?> (<?php echo $row['ps_o']?>)"><?php echo prettyScore($row['ps_o'])?> (<?php echo $row['ps_o']?>)</td>
  216. <td title="Current Page Speed score: <?php echo prettyScore($row['ps_o'])?> (<?php echo $row['ps_o']?>)"><div class="gbox"><div style="width: <?php echo $row['ps_o']+1?>px" class="bar c<?php echo scoreColorStep($row['ps_o'])?>"/></div></td>
  217. <?php }?>
  218. <?php if (!$dynatrace) {?>
  219. <?php }else if (is_null($row['dt_o'])) {?>
  220. <td class="score" style="color: silver" title="No data collected">no data</td>
  221. <td><div class="gbox" title="No data collected"><div class="bar"/></div></td>
  222. <?php }else{?>
  223. <td class="score" title="Current dynaTrace score: <?php echo prettyScore($row['dt_o'])?> (<?php echo $row['dt_o']?>)"><?php echo prettyScore($row['dt_o'])?> (<?php echo $row['dt_o']?>)</td>
  224. <td title="Current dynaTrace score: <?php echo prettyScore($row['dt_o'])?> (<?php echo $row['dt_o']?>)"><div class="gbox"><div style="width: <?php echo $row['dt_o']+1?>px" class="bar c<?php echo scoreColorStep($row['dt_o'])?>"/></div></td>
  225. <?php }?>
  226. <td class="url"><a href="<?php echo detailsUrl($row['url_id'], $row['url']);?>"><?php echo htmlentities(substr($row['url'], 0, 100))?><?php if (strlen($row['url']) > 100) { ?>...<?php } ?></a></td>
  227. </tr><?php
  228. }
  229. mysql_free_result($result);
  230. ?>
  231. </table>
  232. <?php
  233. if ($pages->num_pages > 1) {
  234. ?><div class="paginator"><?php
  235. echo $pages->display_pages();
  236. ?></div><?php
  237. }
  238. } else {
  239. ?><p>No data is gathered yet</p><?php
  240. }
  241. } // end show only filtered results
  242. ?>
  243. </div>
  244. <?php
  245. require_once(dirname(__FILE__).'/footer.php');