diff --git a/app/Http/Controllers/Oai/RequestController.php b/app/Http/Controllers/Oai/RequestController.php index b30de8f..36ad97a 100644 --- a/app/Http/Controllers/Oai/RequestController.php +++ b/app/Http/Controllers/Oai/RequestController.php @@ -26,7 +26,7 @@ class RequestController extends Controller */ private $deliveringDocumentStates = array('published', 'deleted'); // maybe deleted documents too //private $xMetaDissRestriction = array('doctoralthesis', 'habilitation'); - const SET_SPEC_PATTERN = '[A-Za-z0-9\-_\.!~\*\'\(\)]+'; + const SET_SPEC_PATTERN = '[A-Za-zäöüÄÖÜß0-9\-_\.!~\*\'\(\)]+'; /** * Holds xml representation of document information to be processed. @@ -323,6 +323,7 @@ class RequestController extends Controller //$oaiSets = new Oai_Model_Sets(); $sets = array( + 'open_access' => 'Set for open access licenses', // 'bibliography:true' => 'Set for bibliographic entries', // 'bibliography:false' => 'Set for non-bibliographic entries', ); @@ -435,6 +436,13 @@ class RequestController extends Controller $q->where('label', $setarray[1]); }); } + } elseif (!empty($setarray[0]) && $setarray[0] == 'open_access') { + $openAccessLicences = ["CC-BY-4.0", "CC-BY-SA-4.0"]; + $finder->whereHas('licenses', function ($q) use ($openAccessLicences) { + $q->whereIn('name', $openAccessLicences); + // $q->where('name', '=', "CC-BY-4.0")->orWhere('name', '=',"CC-BY-SA-4.0"); + }); + //$test = $finder->toSql(); } } @@ -455,7 +463,7 @@ class RequestController extends Controller } $finder->where('server_date_published', '>=', $fromDate) ->where('server_date_published', '<=', $untilDate); - $test = $finder->toSql(); + // $test = $finder->toSql(); } elseif (array_key_exists('until', $oaiRequest) && !array_key_exists('from', $oaiRequest)) { $until = $oaiRequest['until']; try { @@ -467,7 +475,8 @@ class RequestController extends Controller $earliestPublicationDate = Dataset::earliestPublicationDate()->server_date_published; if ($earliestPublicationDate->gt($untilDate)) { throw new OaiModelException( - "earliestDatestamp is greater than given until date. The given values results in an empty list.", + "earliestDatestamp is greater than given until date. + The given values results in an empty list.", OaiModelError::NORECORDSMATCH ); } else { @@ -476,7 +485,8 @@ class RequestController extends Controller } } catch (OaiModelException $e) { throw new OaiModelException( - "earliestDatestamp is greater than given until date. The given values results in an empty list.", + "earliestDatestamp is greater than given until date. + The given values results in an empty list.", OaiModelError::NORECORDSMATCH ); } catch (\Exception $e) { diff --git a/composer.lock b/composer.lock index cebd1b3..5ac6bc0 100755 --- a/composer.lock +++ b/composer.lock @@ -2282,16 +2282,16 @@ }, { "name": "nesbot/carbon", - "version": "2.55.2", + "version": "2.56.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "8c2a18ce3e67c34efc1b29f64fe61304368259a2" + "reference": "626ec8cbb724cd3c3400c3ed8f730545b744e3f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/8c2a18ce3e67c34efc1b29f64fe61304368259a2", - "reference": "8c2a18ce3e67c34efc1b29f64fe61304368259a2", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/626ec8cbb724cd3c3400c3ed8f730545b744e3f4", + "reference": "626ec8cbb724cd3c3400c3ed8f730545b744e3f4", "shasum": "" }, "require": { @@ -2308,7 +2308,7 @@ "kylekatarnls/multi-tester": "^2.0", "phpmd/phpmd": "^2.9", "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12.54", + "phpstan/phpstan": "^0.12.54 || ^1.0", "phpunit/phpunit": "^7.5.20 || ^8.5.14", "squizlabs/php_codesniffer": "^3.4" }, @@ -2374,7 +2374,7 @@ "type": "tidelift" } ], - "time": "2021-12-03T14:59:52+00:00" + "time": "2022-01-21T17:08:38+00:00" }, { "name": "nikic/php-parser", @@ -3225,16 +3225,16 @@ }, { "name": "solarium/solarium", - "version": "6.2.1", + "version": "6.2.2", "source": { "type": "git", "url": "https://github.com/solariumphp/solarium.git", - "reference": "3c13804d3e12b2783ca450a4e8a6d759e496d651" + "reference": "0f5c81eee5529556f349eaacfbf5ce3cfbb2be47" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/solariumphp/solarium/zipball/3c13804d3e12b2783ca450a4e8a6d759e496d651", - "reference": "3c13804d3e12b2783ca450a4e8a6d759e496d651", + "url": "https://api.github.com/repos/solariumphp/solarium/zipball/0f5c81eee5529556f349eaacfbf5ce3cfbb2be47", + "reference": "0f5c81eee5529556f349eaacfbf5ce3cfbb2be47", "shasum": "" }, "require": { @@ -3282,9 +3282,9 @@ ], "support": { "issues": "https://github.com/solariumphp/solarium/issues", - "source": "https://github.com/solariumphp/solarium/tree/6.2.1" + "source": "https://github.com/solariumphp/solarium/tree/6.2.2" }, - "time": "2021-12-26T10:15:52+00:00" + "time": "2022-01-20T17:45:10+00:00" }, { "name": "swiftmailer/swiftmailer", @@ -5695,16 +5695,16 @@ }, { "name": "voku/portable-ascii", - "version": "1.5.6", + "version": "1.6.1", "source": { "type": "git", "url": "https://github.com/voku/portable-ascii.git", - "reference": "80953678b19901e5165c56752d087fc11526017c" + "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/voku/portable-ascii/zipball/80953678b19901e5165c56752d087fc11526017c", - "reference": "80953678b19901e5165c56752d087fc11526017c", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/87337c91b9dfacee02452244ee14ab3c43bc485a", + "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a", "shasum": "" }, "require": { @@ -5741,7 +5741,7 @@ ], "support": { "issues": "https://github.com/voku/portable-ascii/issues", - "source": "https://github.com/voku/portable-ascii/tree/1.5.6" + "source": "https://github.com/voku/portable-ascii/tree/1.6.1" }, "funding": [ { @@ -5765,7 +5765,7 @@ "type": "tidelift" } ], - "time": "2020-11-12T00:07:28+00:00" + "time": "2022-01-24T18:55:24+00:00" }, { "name": "yajra/laravel-datatables-oracle", @@ -6636,16 +6636,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.11", + "version": "9.5.13", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "2406855036db1102126125537adb1406f7242fdd" + "reference": "597cb647654ede35e43b137926dfdfef0fb11743" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/2406855036db1102126125537adb1406f7242fdd", - "reference": "2406855036db1102126125537adb1406f7242fdd", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/597cb647654ede35e43b137926dfdfef0fb11743", + "reference": "597cb647654ede35e43b137926dfdfef0fb11743", "shasum": "" }, "require": { @@ -6723,7 +6723,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.11" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.13" }, "funding": [ { @@ -6735,7 +6735,7 @@ "type": "github" } ], - "time": "2021-12-25T07:07:57+00:00" + "time": "2022-01-24T07:33:35+00:00" }, { "name": "sebastian/cli-parser", diff --git a/public/datasetxml2oai-pmh.xslt b/public/datasetxml2oai-pmh.xslt index 1dc1f8c..68bcba1 100644 --- a/public/datasetxml2oai-pmh.xslt +++ b/public/datasetxml2oai-pmh.xslt @@ -564,12 +564,12 @@ - + + - + -->