--On Monday, June 21, 2004 12:54 PM +0100 Tom Howe <[EMAIL PROTECTED]> wrote:
I've tried a number of things but I'm still having difficulty defining a pipeline outside of the PIs. I looked at the example Stylechoosers and created one myself but since they populate the $r->pnotes('preferred_style') I can only seem to be able to define a single style. I tried putting an arrayref of style names in there but it barfed. If I want to setup a chain of processors without using the PIs is there a way of doing it?
I've never actually used a stylechooser myself, since I use a provider to provide my content. It just returns a list of styles when asked for one.
But my reading of the documentation is that a given request can have one Style associated with it, then you do stuff based upon that in your httpd.conf. So for example, say you have a 3 phase pipeline:
phase 1: only one choice, foo.xslt phase 2: two options, bar.xslt and baz.xslt phase 3: 4 options, 2 for each in the previous phase: bar-xyz.xslt bar-abc.xslt baz-xyz.xslt baz-abc.xslt
so you have four possible paths in the pipeline. So you'll need 4 Style names, and four sections in your httpd.conf
AxAddProcessor text/xsl /stylesheets/foo.xslt <AxStyleName bar-xyz> AxAddProcessor text/xsl /stylesheets/bar.xslt AxAddProcessor text/xsl /stylesheets/bar-xyz.xslt </AxStyleName> <AxStyleName bar-abc> ... etc...
Personally I prefer the provider approach. I think you get more flexibility, and less redundant configuration. For the above case, you would want something like:
sub get_styles { my $self = shift; my @styles;
push @styles, {type => "text/xsl", href => "/stylesheets/foo.xslt"};
if (<some test for bar vs baz here>) {
push @styles, {type => "text/xsl", href => "/stylesheets/bar.xslt"};
if (<some test for abc vs xyz here>) {
push @styles, {type => "text/xsl", href => "/stylesheets/bar-abc.xslt"};
} else {
push @styles, {type => "text/xsl", href => "/stylesheets/bar-xyz.xslt"};
}
} else {
push @styles, {type => "text/xsl", href => "/stylesheets/baz.xslt"};
if (<some test for abc vs xyz here>) {
push @styles, {type => "text/xsl", href => "/stylesheets/baz-abc.xslt"};
} else {
push @styles, {type => "text/xsl", href => "/stylesheets/baz-xyz.xslt"};
}
}
return [EMAIL PROTECTED];
}
-David
David Nolan <*> [EMAIL PROTECTED] curses: May you be forced to grep the termcap of an unclean yacc while a herd of rogue emacs fsck your troff and vgrind your pathalias!
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]