Параметры прописываются через
<xsl:param name="desktopmode" />
<xsl:param name="show_desktop_mode" />
В данном случае не важно откуда они пришли: get-параметр или coockie
Условие - через
<xsl:if test=""></xsl:if>
<xsl:if test="$desktopmode = 1"></xsl:if>
<xsl:variable name="vA">
<xsl:choose>
<xsl:when test="//B">1</xsl:when>
<xsl:otherwise>2</xsl:otherwise>
</xsl:choose>
</xsl:variable>
Это решается не в шаблонизаторе, а на уровне кастомов.
В classes/modules/custom.php
public function checkDesktopMode() {
if($_GET['show_desktop_mode'] == 'true') {
$_SESSION['desktopmode'] = 'true';
} else {
$_SESSION['desktopmode'] = 'false';
}
}
public function getDesktopMode() {
return (int) getSession('desktopmode') == 'true';
}
в шаблоне
<xsl:choose>
<xsl:when test="document('udata://custom/getDesktopMode/')/udata = 1">
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>