diff --git a/module/VuFind/src/VuFind/Controller/OaiController.php b/module/VuFind/src/VuFind/Controller/OaiController.php index 2ce781103c72816d61f20d1b58342105de6e24b2..1f4466ca2bd850fe929928ddb28cf16f6d1e5806 100644 --- a/module/VuFind/src/VuFind/Controller/OaiController.php +++ b/module/VuFind/src/VuFind/Controller/OaiController.php @@ -96,7 +96,7 @@ class OaiController extends AbstractBase // Build OAI response or die trying: try { $server = new $serverClass( - $this->getSearchManager(), + $this->getSearchManager(), $config, $baseURL, $this->getRequest()->getQuery()->toArray() ); $xml = $server->getResponse(); diff --git a/module/VuFind/src/VuFind/OAI/Server.php b/module/VuFind/src/VuFind/OAI/Server.php index ad4cb3b0284e5a06e377018edce643685a9e0dd4..708b9ed793a1ea514493bd223ef8e9750aba9d7d 100644 --- a/module/VuFind/src/VuFind/OAI/Server.php +++ b/module/VuFind/src/VuFind/OAI/Server.php @@ -26,7 +26,7 @@ * @link http://vufind.org/wiki/vufind2:developer_manual Wiki */ namespace VuFind\OAI; -use SimpleXMLElement, VuFind\Config\Reader as ConfigReader, +use SimpleXMLElement, VuFind\Exception\RecordMissing as RecordMissingException, VuFind\SimpleXML; /** @@ -71,19 +71,21 @@ class Server * Constructor * * @param \VuFind\Search\Manager $sm Search manager for retrieving records + * @param \Zend\Config\Config $config VuFind configuration * @param string $baseURL The base URL for the OAI server * @param array $params The incoming OAI-PMH parameters * (i.e. $_GET) */ - public function __construct(\VuFind\Search\Manager $sm, $baseURL, $params) - { + public function __construct(\VuFind\Search\Manager $sm, + \Zend\Config\Config $config, $baseURL, $params + ) { $this->searchManager = $sm; $this->tableManager = $sm->getServiceLocator() ->get('VuFind\DbTablePluginManager'); $this->baseURL = $baseURL; $this->params = isset($params) && is_array($params) ? $params : array(); $this->initializeMetadataFormats(); // Load details on supported formats - $this->initializeSettings(); // Load config.ini settings + $this->initializeSettings($config); // Load config.ini settings } /** @@ -327,12 +329,12 @@ class Server * constructor and is only a separate method to allow easy override by child * classes). * + * @param \Zend\Config\Config $config VuFind configuration + * * @return void */ - protected function initializeSettings() + protected function initializeSettings(\Zend\Config\Config $config) { - $config = ConfigReader::getConfig(); - // Override default repository name if configured: if (isset($config->OAI->repository_name)) { $this->repositoryName = $config->OAI->repository_name; diff --git a/module/VuFind/src/VuFind/OAI/Server/Auth.php b/module/VuFind/src/VuFind/OAI/Server/Auth.php index 761a9bec172301f6a989fbd3105e32390e3ae403..3cfec572068e6d5731e3d92ec9afa0b8d6b5a880 100644 --- a/module/VuFind/src/VuFind/OAI/Server/Auth.php +++ b/module/VuFind/src/VuFind/OAI/Server/Auth.php @@ -45,13 +45,15 @@ class Auth extends Base * Constructor * * @param \VuFind\Search\Manager $sm Search manager for retrieving records + * @param \Zend\Config\Config $config VuFind configuration * @param string $baseURL The base URL for the OAI server * @param array $params The incoming OAI-PMH parameters * (i.e. $_GET) */ - public function __construct(\VuFind\Search\Manager $sm, $baseURL, $params) - { - parent::__construct($sm, $baseURL, $params); + public function __construct(\VuFind\Search\Manager $sm, + \Zend\Config\Config $config, $baseURL, $params + ) { + parent::__construct($sm, $config, $baseURL, $params); $this->core = 'authority'; $this->searchClassId = 'SolrAuth'; } @@ -61,13 +63,15 @@ class Auth extends Base * constructor and is only a separate method to allow easy override by child * classes). * + * @param \Zend\Config\Config $config VuFind configuration + * * @return void */ - protected function initializeSettings() + protected function initializeSettings(\Zend\Config\Config $config) { // Use some of the same settings as the regular OAI server, but override // others: - parent::initializeSettings(); + parent::initializeSettings($config); $this->repositoryName = 'Authority Data Store'; $this->setField = 'source'; }