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: master
Hardware: All All
: P3 major (vote)
Target Milestone: ---
Assignee: Galen Charlton
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-09-18 12:20 UTC by Kyle M Hall
Modified: 2014-01-14 20:35 UTC (History)
0 users

See Also:
Change sponsored?: ---
Patch complexity: ---
Bot Control: ---
When did the bot last check this:
Who signed the patch off:
Text to go in the release notes:
Version(s) released in:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kyle M Hall 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 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 2014-01-14 20:35:16 UTC

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