-<?php
-global $monthname;
-$monthname = ['?',
- 'januari', 'februari', 'maart', 'april', 'mei', 'juni',
- 'juli', 'augustus', 'september', 'oktober', 'november', 'december',
-];
-
-function showdate($parts)
-{
- global $monthname;
- return implode(' ', array_filter([
- intval($parts[3]), $parts[2] > 0 ? $monthname[intval($parts[2])] : '', $parts[1],
- count($parts) > 6 ? "$parts[4]:$parts[5]" : '',
- ]));
-}
-
-class ArchiveArticle
-{
- function __construct($path)
- {
- $this->page = $path;
- $this->link = preg_replace('/\.html$/', '', $path);
- }
-
- function __get($col)
- {
- return $this->$col = $this->$col(); # run method and cache
- }
-
- function file()
- {
- return fopen($this->page, 'r');
- }
-
- function title()
- {
- return preg_replace('{<h2>(.*)</h2>\s*}', '\1', fgets($this->file));
- }
-
- function safetitle()
- {
- return strip_tags($this->title);
- }
-
- function date()
- {
- if (!preg_match('</(\d{4})/(\d{2})-(\d{2})->', $this->page, $parts)) return;
- return showdate($parts);
- }
-
- function body()
- {
- return fread($this->file, filesize($this->page));
- }
-
- function image()
- {
- foreach (['jpg', 'png'] as $ext) {
- if (file_exists("{$this->link}.$ext")) {
- return "{$this->link}.$ext";
- }
- }
- }
-
- function thumb($size = '300x')
- {
- if ($this->image)
- return "thumb/$size/{$this->image}";
- }
-}
-
-function shownews($input, $limit = 1000)
-{
- if (!is_array($input)) $input = glob("$input/*.html");
- print '<ul class="left">'."\n\n";
- foreach (array_reverse($input) as $filename) {
- $article = new ArchiveArticle($filename);
- print '<li>';
- if ($article->thumb) {
- printf('<img src="/%s" class="left" />', $article->thumb);
- }
- print '<article>';
- printf(
- '<h3><a href="/%s">%s <small class="date">%s</small></a></h3>',
- $article->link, $article->title, $article->date
- );
- print $article->body;
- print "</article></li>\n\n";
-
- if (--$limit <= 0) break;
- }
- print "</ul>\n\n";
-}
-
-function printtoc($input)
-{
- if (!is_array($input)) $input = glob("$input/*.html");
- print '<ul>';
- foreach (array_reverse($input) as $page) {
- $article = new ArchiveArticle($page);
- printf('<li><a href="/%s">%s <small class="date">%s</small></a></li>',
- $article->link, $article->safetitle, $article->date);
- }
- print "</ul>\n";
-}