1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
<?php
/**
* Copyright 2009-2017 Christoph Brill <egore911@gmail.com>
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to
* deal in the Software without restriction, including without limitation the
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* @category Web
* @package DRI\HTML
* @author Christoph Brill <egore911@gmail.com>
* @copyright 2012-2017 Christoph Brill <egore911@gmail.com>
* @license MIT https://opensource.org/licenses/MIT
* @link https://people.freedesktop.org/~cbrill/
*/
/**
* Get the month from a filename
*
* @param string $filename the filename to extract the month from (e.g.
* dri-devel-2017-01-27.log)
*
* @return string the month (e.g. '02' for February)
*/
function getMonth($filename)
{
return substr($filename, 10, 7);
}
/**
* Render a closing div tag and any missing br tags to acchive the necessary height
*
* @return void
*/
function finishMonth()
{
global $last_month, $month_counter;
if ($last_month != '') {
while ($month_counter++ < 32) {
echo ' <br/>'.PHP_EOL;
}
$month_counter = 0;
echo ' </div>'.PHP_EOL;
}
}
if ($handle = opendir(LOG_DIR)) {
// Get the files sorted by name
$files = array();
while (false !== ($file = readdir($handle))) {
if (substr($file, -4) == '.log' && !is_dir($file)) {
$files[] = $file;
}
}
closedir($handle);
rsort($files);
$last_month = '';
$month_counter = 0;
// Border for all month blocks, floating so it will put them right
foreach ($files as $file) {
$month = getMonth($file);
if ($last_month != $month) {
finishMonth();
$last_month = $month;
echo ' <div class="col-lg-1 col-md-2 col-sm-3 col-xs-6">'.
'<h2 class="subheader">'.$month.'</h2>'.PHP_EOL;
}
$date = getDateFromFilename($file);
echo ' <a href="?channel='.$channel.'&date='.$date.'">'.$date.'</a>'.
' <a href="'.LOG_DIR.'/'.$file.'">(raw)</a><br/>'.PHP_EOL;
$month_counter++;
}
finishMonth();
}
|