# $Id: Apache.pm,v 1.12 2003/09/30 20:49:02 clajac Exp $ package CPANXR::Apache; use CPANXR::Apache::Header; use CPANXR::Apache::Footer; use CPANXR::Apache::Distribution; use CPANXR::Apache::File; use CPANXR::Apache::Symbol; use CPANXR::Apache::Search; use CPANXR::Apache::ClassBrowser; use CPANXR::Apache::Stats; use CPANXR::Apache::Visualizer; use Apache::Constants qw(:common); use CGI; use strict; sub handler { my ($r) = @_; my $path = $r->uri(); my $q = CGI->new(); my ($event) = $path =~ /\/(\w+)$/; if($event eq 'visualize') { CPANXR::Apache::Visualizer->visualize($r, $q); } else { $r->send_http_header("text/html"); # Send header CPANXR::Apache::Header->header($r); if ($event eq 'dists' || $event eq '') { CPANXR::Apache::Distribution->find($r, $q); } elsif ($event eq 'list') { CPANXR::Apache::Distribution->list($r, $q); } elsif ($event eq 'show') { CPANXR::Apache::File->show($r, $q); } elsif ($event eq 'graph') { CPANXR::Apache::Visualizer->graph($r, $q); } elsif ($event eq 'find') { CPANXR::Apache::Symbol->find($r, $q); } elsif ($event eq 'search') { CPANXR::Apache::Search->search($r, $q); } elsif ($event eq 'stats') { CPANXR::Apache::Stats->stats($r, $q); } elsif ($event eq 'classes') { CPANXR::Apache::ClassBrowser->browse($r, $q); } # Send footer CPANXR::Apache::Footer->footer($r); } return OK; } 1;