widget/sitemap: linkref part to format a single page
[minimedit.git] / widget / sitemap.php
index 9b03e2fbee6813d0d42596002276cd1730ae9b5d..a10ea7a3c357900f5640568d5b75d093f19eb5d6 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+# find **/*.html
 $search = new RecursiveCallbackFilterIterator(
        new RecursiveDirectoryIterator(ltrim($Args, '/') ?: '.'),
        function ($current) {
@@ -15,18 +16,19 @@ $search = new RecursiveCallbackFilterIterator(
        }
 );
 
+# order alphabetically by link
+$dir = iterator_to_array(new RecursiveIteratorIterator($search));
+array_walk($dir, function (&$row, $name) {
+       # prepare values for sorting (directory index first)
+       $row = preg_replace('{/index\.html$}', '', $name);
+});
+asort($dir);
+
+# list article details
 print '<ul class="replies">'."\n";
-foreach (new RecursiveIteratorIterator($search) as $filename => $match) {
-       $article = new ArchiveArticle($filename);
-       printf('<li><a href="%s">%s</a>', $article->link, $article->name);
-       if ($article->image) {
-               printf("\n\t".'<img class="right" src="/%s" />', $article->thumb('100x100'));
-       }
-       if ($article->teaser) {
-               printf("\n\t<blockquote>%s</blockquote>",
-                       preg_replace('/\n(.*)/s', ' <small>\1</small>', $article->teaser)
-               );
-       }
-       print "</li>\n";
+foreach ($dir as $Args => $sorted) {
+       print '<li>';
+       include 'linkref.php';
+       print "<li>\n";
 }
 print "</ul>\n";