Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
18 / 18
100.00% covered (success)
100.00%
3 / 3
CRAP
100.00% covered (success)
100.00%
1 / 1
TsumegoAttemptsRenderer
100.00% covered (success)
100.00%
17 / 17
100.00% covered (success)
100.00%
3 / 3
3
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
1
 renderItem
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
1
 renderHeader
100.00% covered (success)
100.00%
7 / 7
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3App::uses('DataTableRenderer', 'Utility');
4
5class TsumegoAttemptsRenderer extends DataTableRenderer
6{
7    public function __construct($urlParams, int $tsumegoID)
8    {
9        $this->count = Util::query("SELECT COUNT(*) as total FROM tsumego_attempt WHERE tsumego_id = ?", [$tsumegoID])[0]['total'];
10        parent::__construct($urlParams, 'tsumego_attempts_page', 'Tsumego attempts');
11        $this->data = Util::query("
12SELECT
13    tsumego_attempt.solved as solved,
14    tsumego_attempt.misplays as misplays,
15    tsumego_attempt.tsumego_rating as tsumego_rating,
16    tsumego_attempt.created as created,
17    user.name as user_name,
18    user.id as user_id,
19    user.rating as user_rating
20FROM
21    tsumego_attempt
22    JOIN user ON user.id = tsumego_attempt.user_id
23WHERE tsumego_attempt.tsumego_id = ?
24ORDER BY tsumego_attempt.created DESC
25LIMIT " . self::$PAGE_SIZE . "
26OFFSET " . $this->offset, [$tsumegoID]);
27    }
28
29    public function renderItem(int $index, array $item): void
30    {
31        echo '<td>' . User::renderLink($item) . '</td>';
32        echo '<td>' . $item['solved'] . '</td>';
33        echo '<td>' . $item['misplays'] . '</td>';
34        echo '<td>' . $item['tsumego_rating'] . '</td>';
35        echo '<td>' . $item['created'] . '</td>';
36    }
37
38    protected function renderHeader(): void
39    {
40        echo '<thead>';
41        echo '<td>User</td>';
42        echo '<td>Solved</td>';
43        echo '<td>Misplays</td>';
44        echo '<td>Rating</td>';
45        echo '<td>Datetime</td>';
46        echo '</thead>';
47    }
48}