+<?php
+ob_clean();
+
+if (empty($User['admin']))
+ abort("geen beheersrechten", '401 unauthorised');
+
+if (!$_POST)
+ abort("niets te doen", '405 post error');
+if (!$Args)
+ abort("pagina niet opgegeven", '409 input error');
+
+$pagename = ltrim($Args, '/').'.html';
+@list ($category, $year, $article) = explode('/', $pagename);
+if (empty($article) or !file_exists($pagename))
+ abort("artikel onbekend: $pagename", '404 page error');
+
+if (!isset($_REQUEST['value']))
+ abort("ongeldige tagwaarde {$_REQUEST['value']}", '403 missing value');
+
+if (!isset($_REQUEST['tag']))
+ abort("geen tag ontvangen", '403 input error');
+
+$target = "$category/.tags/{$_REQUEST['tag']}";
+if (!file_exists($target))
+ abort("tag onbekend: $target", '404 tag error');
+
+$target .= "/$year-$article";
+if (is_link($target) or file_exists($target)) {
+ if (!unlink($target))
+ abort("kon bestaande link niet weghalen op $target", '500 unlink error');
+}
+
+$pagelink = "../../../$pagename";
+if ($_REQUEST['value'] and !symlink($pagelink, $target))
+ abort("fout bij link aanmaken op $target", '500 link error');
+
+abort("Tag {$_REQUEST['tag']} aangepast");
+