The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
# $Id: PathInfo.pm,v 1.2 2002/02/01 14:45:07 matts Exp $

package Apache::AxKit::StyleChooser::PathInfo;

use strict;
use Apache::Constants qw(OK);
use Apache::URI;

sub handler {
	my $r = shift;
	
	my $style = $r->path_info();

	if ($style && $style ne '/') {
		$r->path_info('');

		my $uri = $r->uri();

		$uri =~ s/\Q$style\E$//;
		
		$r->uri($uri);
		
		my $uri2 = Apache::URI->parse($r);
		
		$r->header_out('Content-Base', $uri2->unparse);
		$r->header_out('Content-Location', $uri2->unparse);
	
		$style =~ s/^\///;
#		warn "setting notes: $style\n";
		$r->notes('preferred_style', $style);
	}
	return OK;
}

1;
__END__

=head1 NAME

Apache::AxKit::StyleChooser::PathInfo - Choose stylesheet using PATH_INFO

=head1 SYNOPSIS

	PerlHandler Apache::AxKit::StyleChooser::PathInfo \
			AxKit

=head1 DESCRIPTION

This module lets you pick a stylesheet based on the extra PATH_INFO. To use
it, simply add this module to the list of PerlHandlers prior to
AxKit:

	PerlHandler Apache::AxKit::StyleChooser::PathInfo \
			AxKit

Then simply by referencing your xml files as follows:

	http://xml.server.com/myfile.xml/printable

You will recieve the alternate stylesheets with title "printable". See 
the HTML 4.0 specification for more details on stylesheet choice.

=cut