+$rootdir = $Page->link;
+
+$nav = explode('/', $rootdir);
+if (count($nav) > 1 and $nav[1] == 'tag') {
+ $rootdir = preg_replace('{/}', '/.', $rootdir, 1);
+}
+$nav[0] = "Foto's"; # override of root 'foto'
+$title = array_pop($nav);
+$Page->title = ($nav ? implode(' ', $nav) . ': ' : '') . $title;
+
+if ($_SERVER['HTTP_ACCEPT'] === 'application/json') {
+ header('Access-Control-Allow-Origin: *');
+ header('Cache-Control: max-age=10');
+ if (file_exists($rootdir)) {
+ header('Last-Modified: '.gmdate(DATE_RFC7231, filemtime($rootdir)));
+ }
+ else {
+ http_response_code(404);
+ }
+ $imgs = [];
+ foreach (glob("$rootdir/*.jpg") as $path) {
+ $target = preg_replace('{^(\.\./)*}', '', readlink($path));
+ $imgs[] = ["/$target"];
+ }
+ print json_encode($imgs);
+ exit;
+}
+elseif ($Page->api) {
+ $img = "$rootdir/index.jpg";
+ if (file_exists($img)) {
+ # cover image of current album
+ $Page->image = "/$img";
+ }
+ if (!$Page->path) {
+ return array_map(function ($dir) {
+ return new ArchiveArticle($dir . '/index.html');
+ }, glob("$rootdir/*", GLOB_ONLYDIR)); #TODO: recurse
+ }
+ return;
+}