To reproduce: 1. Go to http://localhost:8080/cgi-bin/koha/opac-search.pl 2. Limit to "Books" and click "Search" 3. Click the RSS icon 4. Note the XML parsing error: This page contains the following errors: error on line 1 at column 364: EntityRef: expecting ';' Below is a rendering of the page up to the first error.
Created attachment 171043 [details] [review] Bug 37801: Search results with limits create URLs that cause XML errors in RSS and Atom output The template for RSS and Atom feeds of search results (curiously named opac-opensearch.tt) is careful to escape ampersands in the query_cgi param while adding it to URLs, but doesn't escape the limit_cgi param at all. It should. Two drive-by fixes for Atom: because the <title> when your search has a limit includes , which isn't an XML character entity, you couldn't get as far as the error from the <link> URL, and as long as I was going to have blame for the line, I couldn't bear to leave the stray undefined SEARCH_RESULT. in the (hard-coded and bogus) <link rel="last">. Test plan: 1. In the OPAC, Advanced search - check the boxes to limit by item type Books and Mixed Materials and search for the keyword Perl 2. At the top of the search results, click the orange RSS icon 3. That gives you an ugly "not well-formed" error, so in the URL for the page change the final "format=rss" to "format=atom" 4. That gives you an ugly "undefined entity" error, so apply the patch 5. Reload the page with the Atom feed, it should change from an error page to a garbled display of the feed. Click Back to go back to the RSS feed and reload it if it's still cached on the error page. That should give a pretty-printed display of the RSS feed without parsing errors Sponsored-by: Chetco Community Public Library
Created attachment 171290 [details] Screenshot of the result after patch is applied Hi Phil, I’ve completed the test plan, and everything seems to be functioning as expected. However, I’m unsure about the part that states, "That should give a pretty-printed display of the RSS feed without parsing errors." I’ve attached a screenshot of the result I obtained. Could you please confirm if this matches the expected outcome? Thanks!
Yes, that's perfect. Sorry for being unclear, pretty-printed is the Firefox rendering engine's internal name for that particular display of XML, and this is the first time I've ever mentioned it to anyone who wasn't involved in creating it, so it didn't occur to me that nobody else knows that's what it's called :)
Ah, got it. Everything seems to be functioning as expected, so I'll sign off this bug.
Created attachment 171293 [details] [review] Bug 37801: Search results with limits create URLs that cause XML errors in RSS and Atom output The template for RSS and Atom feeds of search results (curiously named opac-opensearch.tt) is careful to escape ampersands in the query_cgi param while adding it to URLs, but doesn't escape the limit_cgi param at all. It should. Two drive-by fixes for Atom: because the <title> when your search has a limit includes , which isn't an XML character entity, you couldn't get as far as the error from the <link> URL, and as long as I was going to have blame for the line, I couldn't bear to leave the stray undefined SEARCH_RESULT. in the (hard-coded and bogus) <link rel="last">. Test plan: 1. In the OPAC, Advanced search - check the boxes to limit by item type Books and Mixed Materials and search for the keyword Perl 2. At the top of the search results, click the orange RSS icon 3. That gives you an ugly "not well-formed" error, so in the URL for the page change the final "format=rss" to "format=atom" 4. That gives you an ugly "undefined entity" error, so apply the patch 5. Reload the page with the Atom feed, it should change from an error page to a garbled display of the feed. Click Back to go back to the RSS feed and reload it if it's still cached on the error page. That should give a pretty-printed display of the RSS feed without parsing errors Sponsored-by: Chetco Community Public Library Signed-off-by: Sukhmandeep Benipal <sukhmandeep.benipal@inLibro.com>
Created attachment 171305 [details] [review] Bug 37801: Search results with limits create URLs that cause XML errors in RSS and Atom output The template for RSS and Atom feeds of search results (curiously named opac-opensearch.tt) is careful to escape ampersands in the query_cgi param while adding it to URLs, but doesn't escape the limit_cgi param at all. It should. Two drive-by fixes for Atom: because the <title> when your search has a limit includes , which isn't an XML character entity, you couldn't get as far as the error from the <link> URL, and as long as I was going to have blame for the line, I couldn't bear to leave the stray undefined SEARCH_RESULT. in the (hard-coded and bogus) <link rel="last">. Test plan: 1. In the OPAC, Advanced search - check the boxes to limit by item type Books and Mixed Materials and search for the keyword Perl 2. At the top of the search results, click the orange RSS icon 3. That gives you an ugly "not well-formed" error, so in the URL for the page change the final "format=rss" to "format=atom" 4. That gives you an ugly "undefined entity" error, so apply the patch 5. Reload the page with the Atom feed, it should change from an error page to a garbled display of the feed. Click Back to go back to the RSS feed and reload it if it's still cached on the error page. That should give a pretty-printed display of the RSS feed without parsing errors Sponsored-by: Chetco Community Public Library Signed-off-by: Sukhmandeep Benipal <sukhmandeep.benipal@inLibro.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Pushed for 24.11! Well done everyone, thank you!
> The template for RSS and Atom feeds of search results (curiously named > opac-opensearch.tt) The name was related to this: https://en.wikipedia.org/wiki/OpenSearch
*** Bug 38238 has been marked as a duplicate of this bug. ***
Backported to 24.05.x for upcoming 24.05.05