From b3c05b99757c462d0602471dd2a125abbb8ae7cc Mon Sep 17 00:00:00 2001
From: Demian Katz <demian.katz@villanova.edu>
Date: Tue, 9 Mar 2021 13:11:44 -0500
Subject: [PATCH] Fix problems with EDS internal links. (#1873)

- Include quotes in search terms to improve accuracy
- Ensure correct URL encoding
- Add subject to list of search types
---
 config/vufind/EDS.ini                         | 1 +
 module/VuFind/src/VuFind/RecordDriver/EDS.php | 6 +++---
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/config/vufind/EDS.ini b/config/vufind/EDS.ini
index 27393fd7cd8..45b71bc3935 100644
--- a/config/vufind/EDS.ini
+++ b/config/vufind/EDS.ini
@@ -199,6 +199,7 @@ translated_facets[] = SourceType
 AllFields           = "All Fields"
 TI                  = Title
 AU                  = Author
+SU                  = Subject
 
 ; This section defines which search options will be included on the advanced
 ; search screen.  All the notes above [Basic_Searches] also apply here.
diff --git a/module/VuFind/src/VuFind/RecordDriver/EDS.php b/module/VuFind/src/VuFind/RecordDriver/EDS.php
index a853117e790..5c70247ba56 100644
--- a/module/VuFind/src/VuFind/RecordDriver/EDS.php
+++ b/module/VuFind/src/VuFind/RecordDriver/EDS.php
@@ -579,9 +579,9 @@ class EDS extends DefaultRecord
                 if (in_array($group, $allowed_searchlink_groups)) {
                     $type = strtoupper($group);
                     $link_xml = '/<searchLink fieldCode="([^\"]*)" '
-                        . 'term="%22([^\"]*)%22">/';
-                    $link_html
-                        = "<a href=\"../EDS/Search?lookfor=$2&amp;type={$type}\">";
+                        . 'term="(%22[^\"]*%22)">/';
+                    $link_html = '<a href="../EDS/Search?lookfor=$2&amp;type='
+                        . urlencode($type) . '">';
                     $data = preg_replace($link_xml, $link_html, $data);
                     $data = str_replace('</searchLink>', '</a>', $data);
                 }
-- 
GitLab