package HTML::WebMake::CGI::FindWmkf; use strict; use File::Find; use locale; use HTML::WebMake::CGI::CGIBase; use vars qw{ @ISA @FOUND $SITE_TMPL $SITE_LI_TMPL $PAGE_TITLE $PAGE_HEADER }; @ISA = qw(HTML::WebMake::CGI::CGIBase); ########################################################################### $PAGE_TITLE = q{ Choose Site }; $PAGE_HEADER = q{ Choose Site }; $SITE_TMPL = q{
}; $SITE_LI_TMPL = q{
  • Site: {file} [Edit]
  • }; ########################################################################### sub new { my $class = shift; $class = ref($class) || $class; my $self = $class->SUPER::new (@_); $self->{page_title} = $PAGE_TITLE; $self->{page_header} = $PAGE_HEADER; $self->{no_wmkf_needed} = 1; $self->{no_filename_needed} = 1; bless ($self, $class); $self; } ########################################################################### sub subrun { my $self = shift; my $q = $self->{q}; $self->write_find_page (); } sub wanted { return unless (/\.wmk$/i); push (@FOUND, $File::Find::name); } sub write_find_page { my $self = shift; my $q = $self->{q}; my $form = ''; my $filebase = $self->{file_base}; # argh, File::Find needs this temporary global var @FOUND = (); find (\&wanted, $filebase); my @files = sort @FOUND; @FOUND = (); foreach my $file (@files) { $file =~ s/^.{0,3}\Q${filebase}\E\/?//gs; my $cgipath = HTML::WebMake::CGI::CGIBase::mksafepath ($file); my $path = $self->{file_base}."/".$cgipath; $cgipath = $self->{q}->escape ($cgipath); $form .= $self->subst_template ($SITE_LI_TMPL, { 'file' => $file, 'cgipath' => $cgipath }); } return $self->subst_template ($SITE_TMPL, { 'items' => $form }); } ########################################################################### 1;