page: store placeholder values in $Page object
[minimedit.git] / nieuws / index.php
index 1a520112da6663f1805f602829469f6c65a1ee99..f6e63a449c7b6377ff58559f56a09b0a5bf88f05 100644 (file)
@@ -1,49 +1,53 @@
 <?php
-include 'nieuws.inc.php';
+$replyform = $Page->handler == 'melding' && $User->login;
+@list ($year, $page) = explode('/', trim($Page->path, '/'));
 
-$replyform = $Page == 'melding' && !empty($User);
-@list ($year, $page) = explode('/', trim($Args, '/'));
-
-if (!empty($User['admin'])) {
+if ($User->admin("edit {$Page->handler}")) {
        print '<script src="/nieuws/edit.js"></script>'."\n";
 }
 
 if ($page and !is_numeric($page)) {
-       $edit = !empty($User['admin']) ? htmlspecialchars(@$_GET['edit']) : NULL;
-       $article = new ArchiveArticle("$Page$Args.html");
-       $Place[1] = ' <small class="date">'.$article->date.'</small>';
-       print preg_replace('{(?<=<h2>)(.*?)(?=</h2>)}', ($edit ?: '\1').' [[1]]', ob_get_clean());
-       if ($article->image) {
-               $Place['image'] = "https://lijtweg.nl/".$article->thumb('600x');
+       $Page->meta['og:type'] = 'article';
+       $edit = $User->admin("edit {$Page->link}") ? htmlspecialchars(@$_GET['edit']) : NULL;
+       if ($edit) {
+               $Page->title = $edit;
+       }
+       if ($Page->dateparts) {
+               $Page->place[1] = ' <small class="date">'.$Page->date.'</small>';
+       }
+       else {
+               $Page->place[1] = '';
        }
-       if (!empty($User['admin'])) {
+       print preg_replace('{(?<=<h2>)(.*?)(?=</h2>)}', ($edit ?: '\1').' [[1]]', $Page->raw);
+       if ($User->admin("edit {$Page->link}")) {
                $taglist = [];
-               foreach (glob("$Page/.tags/*") as $tagpath) {
+               foreach (glob("{$Page->handler}/.tags/*") as $tagpath) {
                        $tagname = pathinfo($tagpath, PATHINFO_BASENAME);
                        $tagvalue = file_exists("$tagpath/$year-$page.html");
                        $tagtarget = is_writable($tagpath);
                        $taglist[] = sprintf(
                                '<input type="checkbox" name="%s" value="%s" id="%s"%s%s />' .
-                               '<label for="%2$s"> %s</label>',
+                               '<label for="%3$s"> %s</label>',
                                "tags[$tagname]", $tagname, "tag-$tagname",
                                $tagvalue ? ' checked' : '',
-                               ' onclick="return false"',
+                               ' disabled',
                                ucfirst($tagname)
                        );
                }
-               printf("<p><strong>Tags:</strong> %s</p>\n",
-                       implode("\n\t", $taglist)
-               );
+               if ($taglist) {
+                       printf('<p class="tags"><strong>Tags:</strong> %s</p>'."\n",
+                               implode("\n\t", $taglist)
+                       );
+               }
        }
        if ($replyform) {
-               print placeholder_include('nieuws/replies');
+               print $Page->widget('reply');
        }
-       return 1;
+       return;
 }
 
 if ($year) {
-       ob_clean();
-       $match = $Page;
+       $match = $Page->handler;
        $title = "Nieuws";
        if (is_numeric($year) and $year > 999) {
                $match .= "/$year";
@@ -57,12 +61,12 @@ if ($year) {
                $match .= "/19??";
                $title .= " vóór 2000";
        }
-       elseif (file_exists("$Page/.tags/$year")) {
+       elseif (file_exists("{$Page->handler}/.tags/$year")) {
                $match .= "/.tags/$year";
                $title .= " met $year";
        }
 
        print "<h2>$title</h2>\n\n";
-       print placeholder_include('nieuws', [$match]);
-       return 1;
+       print $Page->widget('nieuws', [$match]);
+       return;
 }