page: replace global variables by $Page object
[minimedit.git] / widget / sitemap.php
index a7dbfddf9fe78bc4ea6af91e648ec95eff590d92..8d7ba76db614b6748795fcecec8804c555c5832c 100644 (file)
@@ -1,42 +1,11 @@
 <?php
-# find **/*.html
-$search = new RecursiveCallbackFilterIterator(
-       new RecursiveDirectoryIterator(ltrim($Args, '/') ?: '.'),
-       function ($current) {
-               if ($current->getFilename()[0] === '.') {
-                       # skip hidden files and directories
-                       return FALSE;
-               }
-               if ($current->isLink()) {
-                       # ignore symlinks, original contents only
-                       return FALSE;
-               }
-               return $current->isDir()
-                       || preg_match('/\.html$/', $current->getFilename());
-       }
-);
-
-# 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
+$search = new PageSearch(ltrim($Page->path, '/') ?: '.');
 print '<ul class="replies">'."\n";
-foreach ($dir as $filename => $sorted) {
-       $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)
-               );
-       }
+foreach ($search->files() as $ref => $sorted) {
+       $Page->path = $ref;
+       print '<li>';
+       include 'linkref.php';
        print "</li>\n";
 }
 print "</ul>\n";