Bug 8783 - Parentheses not escaped properly in queries when using XSLT
Summary: Parentheses not escaped properly in queries when using XSLT
Status: RESOLVED DUPLICATE of bug 9212
Alias: None
Product: Koha
Classification: Unclassified
Component: Searching (show other bugs)
Version: Main
Hardware: All All
: P3 major
Assignee: Galen Charlton
QA Contact:
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-09-18 12:20 UTC by Kyle M Hall (khall)
Modified: 2014-01-14 20:35 UTC (History)
0 users

See Also:
Change sponsored?: ---
Patch complexity: ---
Documentation contact:
Documentation submission:
Text to go in the release notes:
Version(s) released in:
Circulation function:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kyle M Hall (khall) 2012-09-18 12:20:35 UTC
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.
Comment 1 Kyle M Hall (khall) 2012-12-04 15:02:13 UTC
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>
Comment 2 Kyle M Hall (khall) 2014-01-14 20:35:16 UTC

*** This bug has been marked as a duplicate of bug 9212 ***