doclist: timeline styling to position links by age
[minimedit.git] / widget / doclist.php
1 <?php
2 global $User;
3
4 $cal = [];
5 foreach (glob("$Page$Args/2*") as $url) {
6         $link = preg_replace('/\.html$/', '', $url);
7         $name = pathinfo($link, PATHINFO_BASENAME);
8         @list ($date, $suffix) = explode('.', $name, 2);
9         if (!filesize($url)) {
10                 $cal[$date] = [];
11         }
12         else {
13                 $cal[$date][$suffix] = $link;
14         }
15 }
16
17 $mindate = strtotime($date);
18
19 print '<ul class="timeline">'."\n";
20 foreach (array_reverse($cal) as $title => $versions) {
21         $time = ($mindate - strtotime($title)) / (3600 * 24 * 365 / 8); # ~8em/yr
22         printf('<li style="left:%.1fem">', $time);
23         if ($url = @$versions['']) {
24                 printf('<a href="/%s">%s</a>', $url, $title);
25         }
26         else {
27                 print '<span>';
28                 print $title;
29                 if ($versions and $User->admin("edit $Page$Args")) {
30                         printf(' (%s)', implode(', ', array_map(
31                                 function ($format, $url) {
32                                         return sprintf('<a href="/%s">%s</a>', $url, $format);
33                                 },
34                                 array_keys($versions), $versions)
35                         ));
36                 }
37                 print '</span>';
38         }
39         print "</li>\n";
40 }
41 print "</ul>\n\n";
42