<?php
global $User;
+if (isset($Page->place[0])) {
+ $Page->link .= '/'.$Page->place[0];
+}
$cal = [];
-foreach (glob("$Page$Args/2*") as $url) {
+foreach (glob("{$Page->link}/2*") as $url) {
$link = preg_replace('/\.html$/', '', $url);
$name = pathinfo($link, PATHINFO_BASENAME);
@list ($date, $suffix) = explode('.', $name, 2);
$cal[$group][$date][$suffix] = $link;
}
}
+if (!$cal) {
+ return;
+}
$year = 3600 * 24 * 365; # seconds per year
-$scale = 8; # em width per year
-$mindate = strtotime($date) + ($year / $scale * 3); # first point plus about 3em for centered text
+$scale = 7; # em width per year
+$mindate = max(time(), strtotime($date) + ($year / $scale * 3)); # at least last entry plus 3em for centered text
+$length = ($mindate - strtotime(key(current($cal)))) / $year * $scale; # earliest entry position
-print '<ul class="timeline">'."\n";
+printf('<ul class="timeline" style="background-size:%.1fem">'."\n", $length);
foreach (array_reverse($cal, TRUE) as $group => $rows) {
if (count($rows) > 1) {
$time = ($mindate - strtotime("$group-12-31T23:59")) / $year * $scale;
- printf('<li class="range" style="left:%.1fem; width:%sem">', $time, $scale);
+ printf('<li class="range" style="left:%.1fem; width:%.1fem">',
+ $time, $time + $scale > $length ? $length - $time + 2 : $scale
+ );
print "<strong>$group</strong><ul>\n";
}
else {
else {
print '<span>';
print $title;
- if ($versions and $User->admin("edit $Page$Args")) {
+ if ($versions and $User->admin("edit {$Page->link}")) {
printf(' (%s)', implode(', ', array_map(
function ($format, $url) {
return sprintf('<a href="/%s">%s</a>', $url, $format);