## 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>