X-Git-Url: http://git.shiar.net/minimedit.git/blobdiff_plain/f74276ad4a38479c8a5f7ccf065ab576cf2d192d..3080864c4cd697bd083f9fd0315f0ffababd593d:/nieuws.inc.php
diff --git a/nieuws.inc.php b/nieuws.inc.php
index ca16b4a..a925a91 100644
--- a/nieuws.inc.php
+++ b/nieuws.inc.php
@@ -1,44 +1,105 @@
%s %s %s',
- intval($day), $monthname[intval($month)], $year);
+ return implode(' ', array_filter([
+ intval($parts[3]), $parts[2] > 0 ? $monthname[intval($parts[2])] : '', $parts[1],
+ count($parts) > 6 ? "$parts[4]:$parts[5]" : '',
+ ]));
}
-function shownewsarticle($url, $link = TRUE, $title = NULL)
+class ArchiveArticle
{
- $html = ob_get_clean();
- $date = shownewsdate($url);
- ob_start();
- print $title ?: '\1';
- print '[[1]]';
-
- $title = sprintf(
- $link ? '
' : '%s
',
- getoutput([1 => ' '.$date.'']),
- preg_replace('/\.html$/', '', $url)
- );
- return preg_replace('{(.*?)
}', $title, $html);
+ 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('{(.*)
\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($root, $limit = 5)
+function shownews($input, $limit = 1000)
{
- foreach (array_reverse(glob("$root/*/*.html")) as $url) {
- print "";
- ob_start();
- include $url;
- print shownewsarticle($url);
- print "\n\n";
+ if (!is_array($input)) $input = glob("$input/*.html");
+ print ''."\n\n";
+ foreach (array_reverse($input) as $filename) {
+ $article = new ArchiveArticle($filename);
+ print '- ';
+ if ($article->thumb) {
+ printf('', $article->thumb);
+ }
+ print '';
+ printf(
+ '',
+ $article->link, $article->title, $article->date
+ );
+ print $article->body;
+ print "
\n\n";
if (--$limit <= 0) break;
}
+ print "
\n\n";
+}
+
+function printtoc($input)
+{
+ if (!is_array($input)) $input = glob("$input/*.html");
+ print '';
+ foreach (array_reverse($input) as $page) {
+ $article = new ArchiveArticle($page);
+ printf('- %s %s
',
+ $article->link, $article->safetitle, $article->date);
+ }
+ print "
\n";
}