* * 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 * @copyright 2012-2017 Christoph Brill * @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 '
'.PHP_EOL; } $month_counter = 0; echo ' '.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 '
'. '

'.$month.'

'.PHP_EOL; } $date = getDateFromFilename($file); echo ' '.$date.''. ' (raw)
'.PHP_EOL; $month_counter++; } finishMonth(); }