widget/sitemap: move find code to global PageSearch class
[minimedit.git] / widget / sitemap.php
index a10ea7a3c357900f5640568d5b75d093f19eb5d6..461690361aec77a64ff9fdea49aff65bda1107ac 100644 (file)
@@ -1,32 +1,8 @@
 <?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($Args, '/') ?: '.');
 print '<ul class="replies">'."\n";
-foreach ($dir as $Args => $sorted) {
+foreach ($search->files() as $Args => $sorted) {
        print '<li>';
        include 'linkref.php';
        print "<li>\n";