sub sitemapFind()

in ARCHIVE/OLD-from-apache-cms/lib/view.pm [209:258]


sub sitemapFind {
   my ($dir, $entries) = @_;
   $entries->{"title"} = "";
   $entries->{"entries"} = {};
   my %entries = ( "title"=>"", "entries"=>{} );

   foreach my $item (<$dir/*>) {
      my ($rel) = ($item =~ /^.*\/(.*?)$/);

      if(-d $item) {
      	 # Only consider folders which have content page by them
      	 if(-f "$item.mdtext") {
            $rel .= ".mdtext" ;
            $entries->{"entries"}->{$rel} = {};
            sitemapFind($item, $entries->{"entries"}->{$rel});
      	 }
      } elsif($item =~ /\.(html|mdtext)$/) {
         # Grab the title
         my $title = $rel;
         if($rel =~ /\.mdtext$/) {
             my %args;
             read_text_file $item, \%args;
             $title = $args{"headers"}->{"title"};
         } elsif ($rel =~ /\.png$/ || $rel =~ /\.jpg$/) {
            next;
         } else {
             open F, "<$item";
             my $file = "";
             while(my $line = <F>) {
                $file .= $line;
             }
             close F;

             if($file =~ /block\s+title\s*\%\}(.*?)\{/) {
                $title = $1;
             } elsif($file =~ /title\>(.*?)\</) {
                $title = $1;
             }
         }

         # Process
         if($rel =~ /^index\.(html|mdtext)$/) {
            $entries->{"title"} = $title;
         } else {
            $entries->{entries}->{$rel}->{title} = $title;
         }
      }
   }
   return %entries;
}