From dfd810fae99669b302fabea413e688129406ef7c Mon Sep 17 00:00:00 2001 From: Demian Katz <demian.katz@villanova.edu> Date: Thu, 11 Jun 2015 09:29:39 -0400 Subject: [PATCH] Fixed RSS feed for course reserves. --- .../VuFind/Controller/SearchController.php | 20 ++++++++---- .../VuFind/View/Helper/Root/ResultFeed.php | 31 ++++++++++++++++--- 2 files changed, 41 insertions(+), 10 deletions(-) diff --git a/module/VuFind/src/VuFind/Controller/SearchController.php b/module/VuFind/src/VuFind/Controller/SearchController.php index 42b8f374b47..e0181673575 100644 --- a/module/VuFind/src/VuFind/Controller/SearchController.php +++ b/module/VuFind/src/VuFind/Controller/SearchController.php @@ -462,6 +462,10 @@ class SearchController extends AbstractSearch // Don't save to history -- history page doesn't handle correctly: $this->saveToHistory = false; + // Set up RSS feed title just in case: + $this->getViewRenderer()->plugin('resultfeed') + ->setOverrideTitle('Reserves Search Results'); + // Call rather than forward, so we can use custom template $view = $this->resultsAction(); @@ -473,12 +477,16 @@ class SearchController extends AbstractSearch $view->course = $result[0]['course']; } - // Customize the URL helper to make sure it builds proper reserves URLs: - $url = $view->results->getUrlQuery(); - $url->setDefaultParameter('course', $course); - $url->setDefaultParameter('inst', $inst); - $url->setDefaultParameter('dept', $dept); - $url->setSuppressQuery(true); + // Customize the URL helper to make sure it builds proper reserves URLs + // (but only do this if we have access to a results object, which we + // won't in RSS mode): + if (isset($view->results)) { + $url = $view->results->getUrlQuery(); + $url->setDefaultParameter('course', $course); + $url->setDefaultParameter('inst', $inst); + $url->setDefaultParameter('dept', $dept); + $url->setSuppressQuery(true); + } return $view; } diff --git a/module/VuFind/src/VuFind/View/Helper/Root/ResultFeed.php b/module/VuFind/src/VuFind/View/Helper/Root/ResultFeed.php index 922798c80d1..b2978567786 100644 --- a/module/VuFind/src/VuFind/View/Helper/Root/ResultFeed.php +++ b/module/VuFind/src/VuFind/View/Helper/Root/ResultFeed.php @@ -45,6 +45,25 @@ class ResultFeed extends AbstractHelper implements TranslatorAwareInterface { use \VuFind\I18n\Translator\TranslatorAwareTrait; + /** + * Override title + * + * @var string + */ + protected $overrideTitle = null; + + /** + * Set override title. + * + * @param string $title Title + * + * @return void + */ + public function setOverrideTitle($title) + { + $this->overrideTitle = $title; + } + /** * Set up Dublin Core extension. * @@ -93,10 +112,14 @@ class ResultFeed extends AbstractHelper implements TranslatorAwareInterface // Create the parent feed $feed = new Feed(); - $feed->setTitle( - $this->translate('Results for') . ' ' - . $results->getParams()->getDisplayQuery() - ); + if (null !== $this->overrideTitle) { + $feed->setTitle($this->translate($this->overrideTitle)); + } else { + $feed->setTitle( + $this->translate('Results for') . ' ' + . $results->getParams()->getDisplayQuery() + ); + } $feed->setLink( $baseUrl . $results->getUrlQuery()->setViewParam(null, false) ); -- GitLab