diff --git a/library/Class/MetaData/RisBuilder.php b/library/Class/MetaData/RisBuilder.php index 9bab051142c86b4bd0ae308df2ad5b40aab67f93..4995916540103be7f9d0f148ba1d3af296d69169 100644 --- a/library/Class/MetaData/RisBuilder.php +++ b/library/Class/MetaData/RisBuilder.php @@ -20,7 +20,8 @@ */ class Class_MetaData_RisBuilder extends Class_MetaData_Builder { - protected $_content=[]; + protected $_content=[], + $_type='BOOK'; protected $typemap = [ "journalArticle"=> 'ABST', @@ -58,6 +59,10 @@ class Class_MetaData_RisBuilder extends Class_MetaData_Builder { public function add_editors( $name) { + if ( $this->_type == 'BOOK') { + $this->_content[] = 'A3 - '.$this->formatAuthor($name); + return $this; + } $this->_content[] = 'A2 - '.$this->formatAuthor($name); return $this; } @@ -70,7 +75,7 @@ class Class_MetaData_RisBuilder extends Class_MetaData_Builder { public function add_contributors( $name) { - $this->_content[] = 'A2 - '.$this->formatAuthor($name); + $this->_content[] = 'A3 - '.$this->formatAuthor($name); return $this; } @@ -190,8 +195,8 @@ class Class_MetaData_RisBuilder extends Class_MetaData_Builder { } function add_type($value) { - $value=$this->typemap[$value] ?? 'BOOK'; - $this->_content[] = 'TY - '.$value; + $this->_type = $this->typemap[$value] ?? 'BOOK'; + $this->_content[] = 'TY - '. $this->_type; return $this; } @@ -234,7 +239,7 @@ class Class_MetaData_RisBuilder extends Class_MetaData_Builder { public function add_libraryCatalog($value) { $this->_content[] = 'DP - '. Class_Profil::find(1)->getTitre() . ' - '. Class_AdminVar::getNomDomaine(); - $this->_content[] = 'L2 - '.$value; + $this->_content[] = 'L4 - '.$value; return $this; } diff --git a/library/Class/Notice/ZoteroMetaData.php b/library/Class/Notice/ZoteroMetaData.php index e95659d4d667c82a9288784e821d19e9463f63fc..41638eb2863c7e04dab74aa66a1cce33fe76a033 100644 --- a/library/Class/Notice/ZoteroMetaData.php +++ b/library/Class/Notice/ZoteroMetaData.php @@ -101,7 +101,7 @@ class Class_Notice_ZoteroMetaData { 'libraryCatalog' => fn($record) => $record->getAbsoluteUrl(), 'creators' => function($record) { $creators = $record->getAllAuthorsFromZones(['700']); - $others = ( $record->getZoteroLabel() == 'thesis') ? [] : $record->getAllAuthorsFromZonesAndResponsibility(['701'], ['300', '370', '727']); + $others = ( $record->getZoteroLabel() == 'thesis') ? [] : $record->getAllAuthorsFromZonesAndResponsibility(['701'], ['300', '370']); if (array_merge($creators, $others)) return array_merge($creators, $others); @@ -110,7 +110,7 @@ class Class_Notice_ZoteroMetaData { return [$article->getAuthorName()];}, 'editors' => fn($record) => $record->getAllAuthorsFromZonesAndResponsibility(['702'], ['340']), 'producers' => fn($record) => $record->getAllAuthorsFromZonesAndResponsibility(['702'], ['630']), - 'contributors' => fn($record) => ($record->getZoteroLabel() == 'thesis' ) ? $record->getAllAuthorsFromZones(['701', '702', '711']) : $record->getAllAuthorsFromZonesAndResponsibility(['702'], ['100', '205']), + 'contributors' => fn($record) => ($record->getZoteroLabel() == 'thesis' ) ? $record->getAllAuthorsFromZonesAndResponsibility(['701', '702', '711'],[ '727', '100']) : $record->getAllAuthorsFromZonesAndResponsibility(['702'], ['100', '205']), 'translators' => fn($record) => $record->getAllAuthorsFromZonesAndResponsibility(['701', '702'], ['730']), 'keywords' => fn($record) => $record->getMatieresLabels(), 'attachments' => fn($record) => $record->get_subfield('003') diff --git a/tests/scenarios/Zotero/ZoteroTest.php b/tests/scenarios/Zotero/ZoteroTest.php index fe575ceeadbf0bbd619bdf25b4b5451a101cd113..b4324083929d0c29830be84935bdfd065e1f09e0 100644 --- a/tests/scenarios/Zotero/ZoteroTest.php +++ b/tests/scenarios/Zotero/ZoteroTest.php @@ -55,7 +55,7 @@ abstract class ZoteroTestCase extends AbstractControllerTestCase { 'libelle' => 'Directeur artistique']); $this->fixture('Class_CodifAuteurFonction', - ['id' => '702', + ['id' => '727', 'libelle' => 'Directeur de these']); $this->_buildTemplateProfil(['id' => 1, @@ -611,7 +611,7 @@ class ZoteroTheseRisTest extends ZoteroTestCase { ['UR', 'https://hal.archives-ouvertes.fr/tel-00222781'], ['LA', 'fre'], ['AU', 'Akgungor, Ali Caglar'], - ['A2', 'Gilbert, Claude'], + ['A3', 'Gilbert, Claude'], ['Y1', '2007'], ['M3', 'Thèse de doctorat'], ]; @@ -724,8 +724,8 @@ class ZoteroAuthorTypeDocShouldBeBookTypeRisTest extends ZoteroTestCase { public function expectedMetasDatas() { return [ - ['A2', 'Saurugger, Sabine'], - ['A2', 'Terpan, Fabien'], + ['A3', 'Saurugger, Sabine'], + ['A3', 'Terpan, Fabien'], ]; }