X-Git-Url: http://git.shiar.nl/minimedit.git/blobdiff_plain/52c35ce10db7cd23f9983484a2ae68d76623245c..HEAD:/foto/index.php diff --git a/foto/index.php b/foto/index.php index 4b61f37..45c49c9 100644 --- a/foto/index.php +++ b/foto/index.php @@ -1,89 +1,122 @@ link; -if ($User and $User->admin('foto')) { - $access = '🔓 Openbaar'; - if (isset($PageAccess)) { - $access = "🔒 Bewoners"; - if ($PageAccess != $rootdir) { +$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; +} + +if ($User->admin('foto')) { + if ($Page->restricted) { + $access = '🔒 Bewoners'; + if ($Page->restricted != $rootdir) { $access .= sprintf(' vanaf %s', - "/$PageAccess", pathinfo($PageAccess, PATHINFO_FILENAME) + "/{$Page->restricted}", pathinfo($Page->restricted, PATHINFO_FILENAME) ); } } + else { + $access = '🔓 Openbaar'; + } print "\n\n"; } -$nav = explode('/', $rootdir); -$nav[0] = "Foto's"; # override of root 'foto' -$title = array_pop($nav); -$Article->title = implode(' ', $nav) . ': ' . $title; - $link = ''; print "

"; foreach ($nav as $i => $linktitle) { - $link .= '/' . ($i ? $linktitle : $Page); + $link .= '/' . ($i ? $linktitle : $Page->handler); printf('%s →'."\n", $link, $linktitle); } print $title; print "

\n\n"; -if (isset($Article->raw)) { - print $Article->raw; # page intro -} - -function showthumb($path) -{ - // assume all album entries are symlinks to archive originals - $target = preg_replace('{^(\.\./)*}', '', readlink($path)); - $thumb = 'thumb/262/' . $target; - - @list ($order, $size, $title) = explode(':', pathinfo($path, PATHINFO_FILENAME), 3); - $imgtag = 'img src="/'.$thumb.'"'; - if ($title) { - $imgtag .= ' title="'.htmlspecialchars(urldecode($title)).'"'; - } - if ($size) { - $imgtag .= ' data-size="'.$size.'"'; - } - - return sprintf('<%s />'."\n", $target, $imgtag); +if (isset($Page->raw)) { + print $Page->raw; # page intro } if ($imgs = glob("$rootdir/*", GLOB_ONLYDIR)) { natsort($imgs); print '\n\n"; } if ($imgs = glob("$rootdir/*.jpg")) { print ''."\n\n";