Report abuse

Main template

<select name="o">
	<xsl:call-template name="search_option">
		<xsl:with-param name="value">title</xsl:with-param>
		<xsl:with-param name="visible">Title</xsl:with-param>
	</xsl:call-template>
	<xsl:call-template name="search_option">
		<xsl:with-param name="value">^title</xsl:with-param>
		<xsl:with-param name="visible">--Ascending</xsl:with-param>
	</xsl:call-template>
	<xsl:call-template name="search_option">
		<xsl:with-param name="value">-title</xsl:with-param>
		<xsl:with-param name="visible">--Descending</xsl:with-param>
	</xsl:call-template>
	<xsl:call-template name="search_option">
		<xsl:with-param name="value">price</xsl:with-param>
		<xsl:with-param name="visible">Price</xsl:with-param>
	</xsl:call-template>
	<xsl:call-template name="search_option">
		<xsl:with-param name="value">^price</xsl:with-param>
		<xsl:with-param name="visible">--Ascending</xsl:with-param>
	</xsl:call-template>
	<xsl:call-template name="search_option">
		<xsl:with-param name="value">-price</xsl:with-param>
		<xsl:with-param name="visible">--Descending</xsl:with-param>
	</xsl:call-template>
</select>

search_option template helper

<xsl:template name="search_option">
	<xsl:param name="value" />
	<xsl:param name="visible" />
	<xsl:choose>
		<xsl:when test="query/order = $value">
			<option value="{$value}" selected="selected"><xsl:value-of select="$visible"/></option>
		</xsl:when>
		<xsl:otherwise>
			<option value="{$value}"><xsl:value-of select="$visible"/></option>
		</xsl:otherwise>
	</xsl:choose>
</xsl:template>