login: replace page controllers by placeholders
[minimedit.git] / nieuws.inc.php
index ca16b4a13a0bcddc5d3f62750376c17edf69f5f1..3d88a263810e58205354a7459f65890fe64505a7 100644 (file)
@@ -6,12 +6,11 @@ $monthname = ['?',
 
 function shownewsdate($url)
 {
-       $parts = pathinfo($url);
-       $year = pathinfo($parts['dirname'], PATHINFO_FILENAME);
-       @list ($month, $day) = explode('-', $parts['filename'], 3);
+       if (!preg_match('</(\d{4})/(\d{2})/(\d{2})->', $url, $parts)) return;
        global $monthname;
-       return sprintf('<small class="date">%s %s %s</small>',
-               intval($day), $monthname[intval($month)], $year);
+       return implode(' ', array_filter([
+               intval($parts[3]), $parts[2] > 0 ? $monthname[intval($parts[2])] : '', $parts[1],
+       ]));
 }
 
 function shownewsarticle($url, $link = TRUE, $title = NULL)
@@ -32,7 +31,8 @@ function shownewsarticle($url, $link = TRUE, $title = NULL)
 
 function shownews($root, $limit = 5)
 {
-       foreach (array_reverse(glob("$root/*/*.html")) as $url) {
+       if (strpos($root, '/') === FALSE) $root .= '/*';
+       foreach (array_reverse(glob("$root/*.html")) as $url) {
                print "<article>";
                ob_start();
                include $url;
@@ -42,3 +42,17 @@ function shownews($root, $limit = 5)
                if (--$limit <= 0) break;
        }
 }
+
+function printtoc($input)
+{
+       if (!is_array($input)) $input = glob("$input/*.html");
+       print '<ul>';
+       foreach (array_reverse($input) as $page) {
+               $title = fgets(fopen($page, 'r'));
+               $title = strip_tags($title);
+               $linkurl = preg_replace('/\.html$/', '', $page);
+               printf('<li><a href="/%s">%s <small class="date">%s</small></a></li>',
+                       $linkurl, $title, shownewsdate($linkurl));
+       }
+       print "</ul>\n";
+}