On Sunday, Jul 6, 2003, at 17:02 Europe/London, Nik Clayton wrote:

Now I've started experimenting with RSS, and figure it would be nice to
automatically generate a RSS output.  A natural way of doing this (to
me) is with a parameter on the end of the URL to specify the format.
Which is exactly what Apache::AxKit::StyleChooser::QueryString is
supposed to do.

So I changed the config file, and added:

AxAddPlugin Apache::AxKit::StyleChooser::QueryString

Then I removed the final AxAddRootProcessor line, and replaced it with:

    <AxStyleName "#default">
        AxAddRootProcessor text/xsl 2html.xsl \
            {http://axkit.org/2002/filelist}filelist
    </AxStyleName>

    <AxStyleName "rss">
        AxAddRootProcessor text/xsl 2rss.xsl \
            {http://axkit.org/2002/filelist}filelist
    </AxStyleName>

On restarting the server, requests without the '?style=rss' parameter
worked fine. [snip] However, requests with the '?style=rss' parameter failed to generate sensible output. After digging around, I put the identity transform in
to 2rss.xsl, to see what the XML it was being sent looked like, and
discovered that it was getting the original XML generated by
AxHandleDirs, and *not* the result of the transformations that the other
stylesheets were doing.

Yeah, this is a buggette (also known as a feature).


What's happening is that when AxKit sees a Processor outside of an <AxStyleName> block it assumes that the style is equal to '#default'. So it's as though *all* your processors are inside the <AxStyleName "#default"> block.

I've thought for a long time now that it should work the way you've suggested, where perhaps the style name for things outside the <AxStyleName> block should be something like '#global', and if there's no style defined in the request it should use the '#global' + '#default', but if there's a style defined it should use '#global' + $style.

What I don't want to happen though is for this to break someone's existing code.

Matt.


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to