1{**
2 * Copyright since 2007 PrestaShop SA and Contributors
3 * PrestaShop is an International Registered Trademark & Property of PrestaShop SA
4 *
5 * NOTICE OF LICENSE
6 *
7 * This source file is subject to the Open Software License (OSL 3.0)
8 * that is bundled with this package in the file LICENSE.md.
9 * It is also available through the world-wide-web at this URL:
10 * https://opensource.org/licenses/OSL-3.0
11 * If you did not receive a copy of the license and are unable to
12 * obtain it through the world-wide-web, please send an email
13 * to license@prestashop.com so we can send you a copy immediately.
14 *
15 * DISCLAIMER
16 *
17 * Do not edit or add to this file if you wish to upgrade PrestaShop to newer
18 * versions in the future. If you wish to customize PrestaShop for your
19 * needs please refer to https://devdocs.prestashop.com/ for more information.
20 *
21 * @author    PrestaShop SA and Contributors <contact@prestashop.com>
22 * @copyright Since 2007 PrestaShop SA and Contributors
23 * @license   https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0)
24 *}
25<div class="row">
26  <h2>
27    <a name="stopwatch">
28      Stopwatch SQL - {$summary.nbQueries} queries
29    </a>
30  </h2>
31
32  <table class="table table-condensed table-bordered sortable">
33    <thead>
34      <tr>
35        <th>Query</th>
36        <th>Time (ms)</th>
37        <th>Rows</th>
38        <th>Filesort</th>
39        <th>Group By</th>
40        <th>Location</th>
41      </tr>
42    </thead>
43    <tbody>
44      {foreach $stopwatchQueries as $data}
45        {$callstack = implode('<br>', $data['stack'])}
46        {$callstack_md5 = md5($callstack)}
47        <tr>
48          <td class="pre"><pre>{preg_replace("/(^[\s]*)/m", "", htmlspecialchars($data['query'], ENT_NOQUOTES, 'utf-8', false))}</pre></td>
49          <td data-value="{$data['time']}">
50            {load_time data=($data['time'] * 1000)}
51          </td>
52
53          <td>{$data['rows']}</td>
54          <td data-value="{$data['filesort']}">
55            {if $data['filesort']}
56              <span class="danger">Yes</span>
57            {/if}
58          </td>
59          <td data-value="{$data['group_by']}">
60            {if $data['group_by']}
61              <span class="danger"">Yes</span>
62            {/if}
63          </td>
64          <td data-value="{$data['location']}">
65            <a href="javascript:void(0);" onclick="$('#callstack_{$callstack_md5}').toggle();">{$data['location']}</a>
66            <div id="callstack_{$callstack_md5}" style="display:none">{implode('<br>', $data['stack'])}</div>
67          </td>
68        </tr>
69      {/foreach}
70    </tbody>
71  </table>
72</div>
73