diff -ruN apachesolr/apachesolr.module apachesolr_fixed/apachesolr.module
--- apachesolr/apachesolr.module 2015-12-02 20:11:47.000000000 +0100
+++ apachesolr_fixed/apachesolr.module 2015-12-16 12:24:06.000000000 +0100
@@ -2797,7 +2797,7 @@
$get = array_diff_key($_GET, array('q' => 1, 'page' => 1, 'solrsort' => 1), $options['query']);
$options['query'] += $get;
- return '' . ($options['html'] ? $text : check_plain(html_entity_decode($text))) . '';
+ return '' . ($options['html'] ? $text : check_plain(html_entity_decode($text))) . '';
}
function theme_apachesolr_sort_link($vars) {
diff -ruN apachesolr/apachesolr_search.module apachesolr_fixed/apachesolr_search.module
--- apachesolr/apachesolr_search.module 2015-12-02 20:11:47.000000000 +0100
+++ apachesolr_fixed/apachesolr_search.module 2015-12-16 13:29:52.000000000 +0100
@@ -1587,7 +1590,7 @@
// Replace keys with their rawurlencoded value
if (isset($fv['search_block_form'])) {
$raw_keys = str_replace("/","%2f",$fv['search_block_form']);
- $form_state['redirect'] = str_replace($fv['search_block_form'], $raw_keys, $form_state['redirect']);
+ $form_state['redirect'] = str_replace($fv['search_block_form'], rawurlencode(htmlspecialchars_decode($raw_keys)), $form_state['redirect']);
}
}
diff -ruN apachesolr/plugins/facetapi/adapter.inc apachesolr_fixed/plugins/facetapi/adapter.inc
--- apachesolr/plugins/facetapi/adapter.inc 2015-12-02 20:11:47.000000000 +0100
+++ apachesolr_fixed/plugins/facetapi/adapter.inc 2015-12-16 12:40:15.000000000 +0100
@@ -117,10 +117,10 @@
}
}
if (!$query || NULL === $query->getPath()) {
- return $this->searchPath;
+ return rawurlencode($this->searchPath);
}
else {
- return $query->getPath();
+ return rawurlencode($query->getPath());
}
}