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;
}
if ($User->admin('foto')) {
if ($Page->restricted) {
$access = '🔒 Bewoners';
if ($Page->restricted != $rootdir) {
$access .= sprintf(' vanaf %s',
"/{$Page->restricted}", pathinfo($Page->restricted, PATHINFO_FILENAME)
);
}
}
else {
$access = '🔓 Openbaar';
}
print "\n\n";
}
$link = '';
print "
";
foreach ($nav as $i => $linktitle) {
$link .= '/' . ($i ? $linktitle : $Page->handler);
printf('%s →'."\n", $link, $linktitle);
}
print $title;
print "
\n\n";
if (isset($Page->raw)) {
print $Page->raw; # page intro
}
if ($imgs = glob("$rootdir/*", GLOB_ONLYDIR)) {
natsort($imgs);
print ''."\n";
foreach ($imgs as $path) {
$album = htmlspecialchars(pathinfo($path, PATHINFO_FILENAME));
$cover = "$path/index.jpg";
if (!file_exists($cover)) $cover = 'foto/index.jpg';
if (is_link($cover)) {
$cover = preg_replace('{^(?:\.\./)*(?=data/)}', 'thumb/100/', readlink($cover));
}
$html = sprintf('', htmlspecialchars($cover));
$html .= "$album";
if (!$User->login and file_exists("$path/.private")) {
$html = ''.$html.'';
}
$html = "";
printf('- ', $album);
printf('%s'."\n", htmlspecialchars($path), $html);
}
print "
\n\n";
}
if ($imgs = glob("$rootdir/*.jpg")) {
print ''."\n";
foreach ($imgs as $path) {
if ($path == "$rootdir/index.jpg") {
# cover image of current album
$Page->image = "/$path";
continue;
}
if (!is_link($path)) continue;
// 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.'"';
}
print '- ';
printf('<%s />'."\n", $target, $imgtag);
}
print '
'."\n\n";
include 'foto/album.inc.php';
}
return;