When XSLT is enabled, searching on subjects containing parentheses cause an error. The problem is the parens are not escaped properly, and so are interpreted as part of the query language, rather than the query string. For example, this query fails: (su:{Baggins, Frodo (Fictitious character)}) AND (su:{Fiction}) but this query works: (su:{Baggins, Frodo \(Fictitious character\)}) AND (su:{Fiction}) I think the problem is within the xslt template subfieldSelect. Interestingly, with XSLT off, each subject shows up as an individual link ( so one link for Frogo, and one link for Ficition ) whereas with XSLT on, they subjects are combined with an AND.
This works, but puts parens around every field visually. I think we need to split the subfieldSelect template into subfieldSelectVisual and subfieldSelectNonvisual ( or some naming along those lines ) with the quotes in the nonvisual one, but not in the visual one. Alternatively, I think we could pass an additional parameter in to add the quotes. diff --git a/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slimUtils.xsl b/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slimUtils.xsl index df7c450..1852a56 100644 --- a/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slimUtils.xsl +++ b/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slimUtils.xsl @@ -33,7 +33,7 @@ <xsl:if test="contains($subdivCodes, @code)"> <xsl:value-of select="$subdivDelimiter"/> </xsl:if> - <xsl:value-of select="$prefix"/><xsl:value-of select="text()"/><xsl:value-of select="$suffix"/><xsl:value-of select="$delimeter"/> + <xsl:value-of select="$prefix"/>"<xsl:value-of select="text()"/>"<xsl:value-of select="$suffix"/><xsl:value-of select="$delimeter"/> </xsl:if> </xsl:for-each> </xsl:variable>
*** This bug has been marked as a duplicate of bug 9212 ***