I have a template in which I call an XSLT file. My site is a news site and I want to be able to display the news in different formats depending on what's requested. For example, right now I have:
- mydomain.com/news.aspx?tag="Michael Jordan" -> this would display all news that have the tag "Michael Jordan" (this is already achieved ;)).
The problem is that I want to have things like:
- mydomain.com/news.aspx?country="USA" -> this would display all news that have its "country" attribute set to "USA".
- mydomain.com/news.aspx?competition="NBA" -> this would display all news that have its "competition" attribute set to "NBA".
On the "news" template I just have the call to the macro which does something like:
<xsl:if test="not(umbraco.library:Request('tag') = '')"> <!-- We have a tag passed as argument --> <!-- list all news with the specified tag --> </xsl:if> <xsl:if test="umbraco.library:Request('tag') = '' "> <!--We don't have tag argument --> <!-- list all news --> </xsl:if>
If I have to control several possible arguments the thing goes nasty... So my questions are:
1. Isn't there a better way to manage arguments/parameters?
2. How would I control each case separately (?tag, ?country, ?competition) and even "concatenated" ones (?tag="Michael Jordan"&?country="USA") ? (The syntax is probably wrong, have never done something like that).
I do a fair amount of this in the XSLT file for my "XML Dump" package - it accepts a bunch of parameters in the QueryString and acts accordingly - you can take a look at how I do that in there, and get some ideas... It's located here: http://our.umbraco.org/projects/developer-tools/xml-dump
From that I understand that "requesquerystring" doesn't give me which parameter is asked but the value of a parameter. From that example on the wiki, I'm no trying to get the value "Hello", but what goes right after the "?" mark. In that example I would have, for example, "MyQueryString", "MyQueryString2", "MyQueryString3"... and that is what I'm trying to get.
Am I missing something? From your XSLT file from XMLDump I "ported" to my own XSLT in the form of:
<!-- Test if we can detect QueryString parameters --> <xsl:variable name="queryStringAvailable" select="function-available('umb:RequestQueryString')" />
Manage various parameters passed to a template
Hello all!
I have a template in which I call an XSLT file. My site is a news site and I want to be able to display the news in different formats depending on what's requested. For example, right now I have:
- mydomain.com/news.aspx?tag="Michael Jordan" -> this would display all news that have the tag "Michael Jordan" (this is already achieved ;)).
The problem is that I want to have things like:
- mydomain.com/news.aspx?country="USA" -> this would display all news that have its "country" attribute set to "USA".
- mydomain.com/news.aspx?competition="NBA" -> this would display all news that have its "competition" attribute set to "NBA".
On the "news" template I just have the call to the macro which does something like:
If I have to control several possible arguments the thing goes nasty... So my questions are:
1. Isn't there a better way to manage arguments/parameters?
2. How would I control each case separately (?tag, ?country, ?competition) and even "concatenated" ones (?tag="Michael Jordan"&?country="USA") ? (The syntax is probably wrong, have never done something like that).
I don't know if it would be better to call the template with parameters as it shows in the end of this page: http://en.wikibooks.org/wiki/Umbraco/Various_useful_XSLT_methods_in_Umbraco , or if that should be used for something else, etc...
Any hint would be of much help. Thank you so much!
Hi JacoboPolavieja,
I do a fair amount of this in the XSLT file for my "XML Dump" package - it accepts a bunch of parameters in the QueryString and acts accordingly - you can take a look at how I do that in there, and get some ideas... It's located here: http://our.umbraco.org/projects/developer-tools/xml-dump
/Chriztian
Hi Chriztian and thanks for replying.
After having looked your XMLDump I tried to do something similar with my XSLT, without much success. I then saw this: http://our.umbraco.org/wiki/reference/umbracolibrary/requestquerystring
From that I understand that "requesquerystring" doesn't give me which parameter is asked but the value of a parameter. From that example on the wiki, I'm no trying to get the value "Hello", but what goes right after the "?" mark. In that example I would have, for example, "MyQueryString", "MyQueryString2", "MyQueryString3"... and that is what I'm trying to get.
Am I missing something? From your XSLT file from XMLDump I "ported" to my own XSLT in the form of:
The result is that it always prints "HOLA".
Am I doing something very wrong? Thanks a lot!
is working on a reply...