diff --git a/library/Class/Notice.php b/library/Class/Notice.php index c56c6a17cd8083f9a6a1cb6a32fd357fb5d4ff49..0fc3cfd5f45e6133a9bf1d041b39591fac005cd9 100644 --- a/library/Class/Notice.php +++ b/library/Class/Notice.php @@ -588,6 +588,7 @@ class Class_Notice extends Storm_Model_Abstract { // Renvoie les articles d'un périodique // ---------------------------------------------------------------- public function getArticlesPeriodique() { + xdebug_break(); // lire dans la base $datas = Class_Notice_SerialArticles::findAllBy(['clef_chapeau' => $this->getClefChapeau(), 'clef_numero' => $this->getTomeAlpha()]); @@ -597,19 +598,20 @@ class Class_Notice extends Storm_Model_Abstract { foreach ($datas as $enreg) { if (!$enreg->getUnimarc()) continue; - $this->getNoticeUnimarc()->setNotice($enreg->getUnimarc(), 0); + $serial_article = new Class_Notice; + $serial_article->getNoticeUnimarc()->setNotice($enreg->getUnimarc(), 0); - $article = ["titre" => $this->getTitrePrincipal()]; - if ($complement = $this->getComplementTitre()) + $article = ["titre" => $serial_article->getTitrePrincipal()]; + if ($complement = $serial_article->getComplementTitre()) $article["titre"] .= " : " . $complement; - $auteurs = $this->getAuteursUnimarc(true); + $auteurs = $serial_article->getAuteursUnimarc(true); $article["auteur"] = isset($auteurs[0]) ? $auteurs[0] : ''; - $article["pagination"] = $this->getCollation(); - $note = $data = $this->get_subfield("300", "a"); + $article["pagination"] = $serial_article->getCollation(); + $note = $data = $serial_article->get_subfield("300", "a"); $article["note"] = isset($note[0]) ? trim($note[0]) : ''; - $article["resume"] = $this->getResume(); - $article["matieres"] = $this->getMatieres(); + $article["resume"] = $serial_article->getResume(); + $article["matieres"] = $serial_article->getMatieres(); $articles[] = $article; } diff --git a/tests/library/Class/NoticeTest.php b/tests/library/Class/NoticeTest.php index af344d9a27de011e9d840f8084b0121873adbabc..e2b7392575439f6a2fc667f3a6ae8d90dd0a63f0 100644 --- a/tests/library/Class/NoticeTest.php +++ b/tests/library/Class/NoticeTest.php @@ -720,4 +720,67 @@ class NoticeStromaeTest extends Storm_Test_ModelTestCase { } } + + + +class NoticeWithSerialArticleTest extends AbstractControllerTestCase { + + protected $_articles; + + public function setUp() { + parent::setUp(); + + $this->fixture('Class_Notice', ['id' => 66616, + 'type_doc' => 2, + 'alpha_titre' => 'CAHIERS PEDAGOGIQUES 478', + 'clef_chapeau' => 'CAHIERS PEDAGOGIQUES', + 'tome_alpha' => 478]); + + + $this->fixture('Class_Notice_SerialArticles', ['id' => 19015, + 'id_article' => 19015, + 'clef_chapeau' => 'CAHIERS PEDAGOGIQUES', + 'clef_numero' => 478, + 'unimarc' => "00901naa0 2200169 450 0010008000001000041000082000108000492150011001573300361001686000046005296060033005756100034006086100022006427000019006647010018006838010030007012660662 a20100127a2010 uu|y0frey0103 ba| aInventer une nouvelle maïeutique pour apprendre à apprendrebpériodiquefPatrice BridegNicole Priou app.2-4 aFrançois Taddéi est l'auteur d'un rapport pour l'OCDE, \"Former des constructeurs de savoirs créatifs et collaboratifs\". Nous l'avons rencontré au Centre de recherches interdisciplinaires, lieu symbolique pour ce chercheur au parcours à la diversité atypique en France, actuellement directeur de recherche à l'Inserm à l'université Paris Descartes. 1aTaddéibFrançoisf19..-....xEntretiens| aEducationxRechercheyFrance| aTaddéi, Françoiseinterview| aécoleerecherche 1aBridebPatrice 1aPrioubNicole 0aFRbIndexpressec20100127"]); + + $this->fixture('Class_Notice_SerialArticles', ['id' => 19016, + 'id_article' => 19016, + 'clef_chapeau' => 'CAHIERS PEDAGOGIQUES', + 'clef_numero' => 478, + 'unimarc' => "00851naa0 2200145 450 0010008000001000041000082000074000492150011001233300378001346060027005126060054005396100061005937000021006548010030006752660665 a20100127a2010 uu|y0frey0103 ba| aEducation, arme géostratégique ? (L')bpériodiquefPascal Bouchard app.5-6 aTravailler ensemble pour réussir durablement : tel était le thème du premier Wise (World Innovation Summit for Education), initié par la Qatar Foundation sous le patronage de la sheikha Mozah Bint Nasser Al Missned, qui a réuni à Doha, au Qatar, du 16 au 18 novembre 2009 un millier de leaders d'opinion influents, de décideurs et d'universitaires venus de 120 pays.| aEducationxInnovations| aCongrès et conférencesyQataryAl-Dawha (Qatar)| aéducationeinnovationecongrèseAl-Dawha (Qatar)e2009 1aBouchardbPascal 0aFRbIndexpressec20100127"]); + + $this->_articles = Class_Notice::find(66616)->getArticlesPeriodique(66616); + } + + + /** @test */ + public function noticeShouldHaveTwoSerialArticles() { + $this->assertCount(2, $this->_articles); + } + + + /** @test */ + public function firstSerialArticleTitleShouldBeInventerUneNouvelleMaieutiquePourApprendreAApprendre() { + $this->assertEquals('Inventer une nouvelle maïeutique pour apprendre à apprendre', $this->_articles[0]['titre']); + } + + + /** @test */ + public function firstSerialArticleSummaryShouldBeAsExpected() { + $this->assertEquals('François Taddéi est l\'auteur d\'un rapport pour l\'OCDE, "Former des constructeurs de savoirs créatifs et collaboratifs". Nous l\'avons rencontré au Centre de recherches interdisciplinaires, lieu symbolique pour ce chercheur au parcours à la diversité atypique en France, actuellement directeur de recherche à l\'Inserm à l\'université Paris Descartes.', $this->_articles[0]['resume']); + } + + + /** @test */ + public function secondSerialArticleTitleShouldBeEducationArmeGeostrategique() { + $this->assertEquals('Education, arme géostratégique ? (L\')', $this->_articles[1]['titre']); + } + + + /** @test */ + public function secondSerialArticleSummaryShouldBeAsExpected() { + $this->assertEquals('Travailler ensemble pour réussir durablement : tel était le thème du premier Wise (World Innovation Summit for Education), initié par la Qatar Foundation sous le patronage de la sheikha Mozah Bint Nasser Al Missned, qui a réuni à Doha, au Qatar, du 16 au 18 novembre 2009 un millier de leaders d\'opinion influents, de décideurs et d\'universitaires venus de 120 pays.', $this->_articles[1]['resume']); + } +} + ?> \ No newline at end of file