diff --git a/VERSIONS_HOTLINE/16741 b/VERSIONS_HOTLINE/16741 new file mode 100644 index 0000000000000000000000000000000000000000..1126f4082a56201b68da23cae86d2ee459ebb6a7 --- /dev/null +++ b/VERSIONS_HOTLINE/16741 @@ -0,0 +1 @@ +- ticket #16741 : Dans l'affichage des notices, la priorité est donnée aux zones 330$a contenant des balises html lors de l'affichage du résumé. \ No newline at end of file diff --git a/VERSIONS_HOTLINE/hotline_#17941_fix_noreply_adress_workflow_cms b/VERSIONS_HOTLINE/hotline_#17941_fix_noreply_adress_workflow_cms deleted file mode 100644 index b8e811d20b51478c7f079a14e8bafe164e92e5c8..0000000000000000000000000000000000000000 --- a/VERSIONS_HOTLINE/hotline_#17941_fix_noreply_adress_workflow_cms +++ /dev/null @@ -1,3 +0,0 @@ -- ticket hotline #17941 - - Workflow de création des articles - - correction de l'adresse email utilisée pour envoyer les messages de trnasition d'état (no-reply@afi-sa.fr) \ No newline at end of file diff --git a/library/Class/Notice.php b/library/Class/Notice.php index 67b81992a84c426cc45d7c76d388a08c68232cd8..0b62a560662ba3640981ddf5e977369dc46d1ca4 100644 --- a/library/Class/Notice.php +++ b/library/Class/Notice.php @@ -1341,9 +1341,6 @@ class Class_Notice extends Storm_Model_Abstract { } -// ---------------------------------------------------------------- -// Résumé -// ---------------------------------------------------------------- public function getResume() { if (isset($this->_resume)) return $this->_resume; @@ -1351,15 +1348,45 @@ class Class_Notice extends Storm_Model_Abstract { if ($album = $this->getAlbum()) return $album->getDescription(); - $resume = ''; - $data = $this->get_subfield("330", "a"); - foreach ($data as $item) - if (strlen($item) > strlen($resume)) $resume = trim($item); + $data = $this->get_subfield('330', 'a'); + return $this->_resume = ($resume = $this->_getHtmlSummary($data)) ? + $resume : $this->_getTextSummary($data); + } + + + protected function _getHtmlSummary($values) { + return $this->_getSummaryWith( + $values, + function($value) { + return $this->_containsTags($value); + }); + } + + + protected function _getTextSummary($values) { + $summary = $this->_getSummaryWith( + $values, + function($value) { + return !$this->_containsTags($value); + }); + + if ($summary && substr($summary, -1) != '.') + $summary .= '.'; + return $summary; + } + + + protected function _getSummaryWith($values, $closure) { + $summary = ''; + foreach($values as $value) + if ($closure($value) && strlen($value) > strlen($summary)) + $summary = $value; + return $summary; + } - if ($resume && substr($resume, -1) != ".") - $resume.="."; - return $this->_resume = $resume; + protected function _containsTags($value) { + return $value != (new Zend_Filter_StripTags())->filter($value); } diff --git a/tests/application/modules/opac/controllers/NoticeAjaxControllerTest.php b/tests/application/modules/opac/controllers/NoticeAjaxControllerTest.php index 1933eb0f69df2bab040fc4b1ee8af19c660f038b..bf3da407b41e01d9d1f0d58468581ef4d5c30ecd 100644 --- a/tests/application/modules/opac/controllers/NoticeAjaxControllerTest.php +++ b/tests/application/modules/opac/controllers/NoticeAjaxControllerTest.php @@ -367,7 +367,6 @@ class NoticeAjaxControllerBibliographiesTest extends NoticeAjaxControllerLastFmT class NoticeAjaxControllerInterviewsTest extends AbstractControllerTestCase { - /** @test */ public function shouldContainsTitle() { $this->fixture('Class_Notice', ['id' => 777]) @@ -381,11 +380,27 @@ class NoticeAjaxControllerInterviewsTest extends AbstractControllerTestCase { 'contenu' => '']]]))); $this->dispatch('noticeajax/videos?id_notice=777', true); - $this->assertXPath('//h3', $this->_response->getBody()); + $this->assertXPath('//h3'); } +} + + +/** @see http://forge.afi-sa.fr/issues/16741 */ +class NoticeAjaxControllerResumeGamWidgetTest extends AbstractControllerTestCase { + /** @test */ + public function shouldDisplayGamWidget() { + $this->fixture('Class_Notice', + ['id' => 3800226, + 'unimarc' => file_get_contents(dirname(__FILE__) + . '/sous_la_peau.uni')]); + $this->dispatch('noticeajax/resume/id/3800226', true); + $this->assertXPath('//iframe[contains(@src, "gamannecy.com")]'); + } } + + class NoticeAjaxControllerResumeAlbumTest extends AbstractControllerTestCase { protected $_notice; diff --git a/tests/application/modules/opac/controllers/sous_la_peau.uni b/tests/application/modules/opac/controllers/sous_la_peau.uni new file mode 100644 index 0000000000000000000000000000000000000000..cb014bd0755b19d67d5f8c4c9ca786b2e301c7f5 --- /dev/null +++ b/tests/application/modules/opac/controllers/sous_la_peau.uni @@ -0,0 +1 @@ +02436njm0 2200445 450 001000800000071002800008100004100036101000800077127001100085200002800096210002500124215001900149300002400168330012400192330054200316334004700858334003800905345004900943464008400992464009001076464008801166464008801254464008401342464002701426464002001453464001501473464001501488464001801503464002401521464002001545686001001565689000901575700004601584702003701630801002201667801002801689902003701717933014701754959008901901065202100bZZ ProductionsaAD2715C a20140411d014] u y0frey0103 ba0 amul a0041001 aSous la peaufLou Marco cZZ Productionsd2014 a1 d.c.elivret aTextes des chansons a<iframe src='http://www.gamannecy.com/upload/htmls/1258521.html' width='100%' height='360px' frameborder='0' ></iframe> aPartout chez elle, et même dans l'air respiré, règne la musique. Dans un apparent bric à brac, les charmes surannés du passé côtoient des audaces inédites. Ici, John Carpenter rencontre les Gorillaz, des géants comme les Stones et Prince voisinent les méconnus Seed et Bobby Gentry. Johnny Cash marie sa voix roots aux loops synthétiques d'Aphex Twin et Les Specials troussent Nancy Sinatra dans un recoin aussi obscur que celui de la surf music et du dub, qui emplissent l'endroit de guitares claires et de basses grondantes. aRock & Folk No.559 p.86 du 18/02/2014b4/5 aOpenmag No.162 p.20 du 10/03/2014 aGAMb3521383427156cdisque compactd15,96€ 3http://mp3streams.musicme.com/partners/10000001/3521383427156-01_01.mp3tNo one 3http://mp3streams.musicme.com/partners/10000001/3521383427156-01_02.mp3tSous la peau 3http://mp3streams.musicme.com/partners/10000001/3521383427156-01_03.mp3tDon't care 3http://mp3streams.musicme.com/partners/10000001/3521383427156-01_04.mp3tIndia song 3http://mp3streams.musicme.com/partners/10000001/3521383427156-01_05.mp3tPlan b tGod's asleep in heaven tShake the fever tMa berline tCherry red tTout le temps tAngry at the fridge tBrand new twist a099.7 a8.62 1aMarcobLouf19..-....92309comp. & chant 1aArthur H.f1966-....97219chant 0aFRbGAMc20140411 0aFRbBDP Yonnec20140505 aRock et varietes internationales 3http://www.gamannecy.com//upload/albums/201401/3521383427156_thumb.jpgahttp://www.gamannecy.com//upload/albums/201401/3521383427156_thumb.jpg 3http://www.gamannecy.com//upload/albums/201401/3521383427156_thumb.jpgaSous la peau \ No newline at end of file