diff --git a/VERSIONS_HOTLINE/155481 b/VERSIONS_HOTLINE/155481 new file mode 100644 index 0000000000000000000000000000000000000000..071aaebcdcfc58a529b3da83db273e0f2acac63c --- /dev/null +++ b/VERSIONS_HOTLINE/155481 @@ -0,0 +1 @@ + - correctif #155841 : Cosmogramme : Lors d'un import via un flux OAI en DublinCore, les ISSN et ISBN sont correctement detectés quel que soit leur format (avec ou sans tirets). \ No newline at end of file diff --git a/library/Class/Cosmogramme/Integration/Record/DublinCore.php b/library/Class/Cosmogramme/Integration/Record/DublinCore.php index 39f8a499cc35a7b45386b9b27dc62aea9de19f4b..7faea0a8c157a36ac544c602f7ede7857121f846 100644 --- a/library/Class/Cosmogramme/Integration/Record/DublinCore.php +++ b/library/Class/Cosmogramme/Integration/Record/DublinCore.php @@ -81,11 +81,11 @@ class Class_Cosmogramme_Integration_Record_DublinCore extends notice_unimarc { Class_Indexation_PseudoNotice_UnimarcVisitor $unimarc_visitor) { $matches=[]; - if (preg_match('/URN:ISBN[^\d]+((97(8|9))?\d{9}(\d|X))/',$url,$matches)) { + if (preg_match('/URN:ISBN :([0-9\-X]+)/',$url,$matches)) { $unimarc_visitor->visitIsbn($matches[1]); return $unimarc_visitor; } - if (preg_match('/ISSN[^\d]+([0-9]{4}-[0-9]{4})/',$url,$matches)){ + if (preg_match('/URN:ISSN :([0-9\-]+)/',$url,$matches)){ $unimarc_visitor->visitIssn($matches[1]); return $unimarc_visitor; } diff --git a/tests/library/Class/Cosmogramme/Integration/PhaseNoticeDublinCoreTest.php b/tests/library/Class/Cosmogramme/Integration/PhaseNoticeDublinCoreTest.php index 47e32e5968ad00e0d72e3c2c44186475af5f0a8b..b80ffc09fa0dbe4c9da6768e217efeaca6cca921 100644 --- a/tests/library/Class/Cosmogramme/Integration/PhaseNoticeDublinCoreTest.php +++ b/tests/library/Class/Cosmogramme/Integration/PhaseNoticeDublinCoreTest.php @@ -190,7 +190,10 @@ class PhaseNoticeDublinCoreTest extends AbstractPhaseNoticeDublinCoreTestCase { /** @test */ public function firstRecordISBNShouldBe9782955314357() { $isbn = Class_Notice::find(1)->get_subfield('010','a'); - $this->assertContains('9782955314357',$isbn); + $this->assertEquals(['9782955314357', + '978295531435X', + '978-2-955314-35-7'], + $isbn); } diff --git a/tests/library/Class/Cosmogramme/Integration/dublinCoreResults_all.xml b/tests/library/Class/Cosmogramme/Integration/dublinCoreResults_all.xml index 5208a832c278c32214d1c92c90d388c682f674f1..b9e59798ae7c864ece4f3c50f99afdbb8d4da49d 100644 --- a/tests/library/Class/Cosmogramme/Integration/dublinCoreResults_all.xml +++ b/tests/library/Class/Cosmogramme/Integration/dublinCoreResults_all.xml @@ -2,6 +2,8 @@ <record><header><identifier>oai:bnf.fr:gallica/ark:/12148/btv1b55006135m</identifier><datestamp>2012-09-21</datestamp><setSpec>gallica:typedoc:cartes:atlas</setSpec></header><metadata><oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd"> <dc:identifier>http://gallica.bnf.fr/ark:/12148/btv1b55006135m</dc:identifier> <dc:identifier>URN:ISBN :9782955314357</dc:identifier> +<dc:identifier>URN:ISBN :978295531435X</dc:identifier> +<dc:identifier>URN:ISBN :978-2-955314-35-7</dc:identifier> <dc:identifier>URN:ISSN :1234-6789</dc:identifier> <dc:identifier>Ceci n'est pas une URL</dc:identifier> <dc:identifier>https://biblio.nantes.archi.fr/cgi-bin/koha/opac-detail.pl?biblionumber=46829</dc:identifier>