diff --git a/VERSIONS b/VERSIONS index d60bf6d0652905638541740c01abd0cca28e1b6e..5391188822862b096345ae3051ade934ab868219 100644 --- a/VERSIONS +++ b/VERSIONS @@ -1,3 +1,14 @@ +20/08/2019 - v8.0.23 + + - ticket #94332 : WebService : amélioration de l'affichage des sites de retraits des reservations. + - ticket #95190 : Administration : Export CSV des médias + - ticket #68507 : WebService Koha : Correction du format de la date de naissance dans le formulaire de pré-inscription. + - ticket #93504 : Bibliothèque numérique : pouvoir ouvrir/télécharger des images avec l'extension JPG + - ticket #94528 : Arte VOD : Maintenance du connecteur + - ticket #93542 : Affichage des vignettes : prise en compte des champs unimarc spécifiés dans la configuration du profil + - ticket #95885 : Version Mobile : Affichage des horaires d'ouvertures dans la fiche bibliothèque. + + 29/07/2019 - v8.0.22 - ticket #80976 : Page notice : connecté en tant qu'administrateur, l'outil "Inspector Gadget" permet de supprimer un exemplaire diff --git a/application/modules/admin/controllers/AlbumController.php b/application/modules/admin/controllers/AlbumController.php index 4d972393113e1900243bee4479d5374bddb21a40..9dbf72058adabdabc10be8d5aae05d9e67615e5c 100644 --- a/application/modules/admin/controllers/AlbumController.php +++ b/application/modules/admin/controllers/AlbumController.php @@ -119,7 +119,8 @@ class Admin_AlbumController extends ZendAfi_Controller_Action { $form = $this->_formImportEAD(); $this->view->form_import_ead = $form; - $this->view->form_export_ead = $this->_formExportEad(); + $this->view->form_export_ead = $this->_formExport(); + $this->view->form_export_csv = $this->_formExport('csv'); if (!$this->_request->isPost()) return; @@ -159,12 +160,12 @@ class Admin_AlbumController extends ZendAfi_Controller_Action { } - protected function _formExportEAD() { + protected function _formExport($type='ead') { return $this->view ->newForm(['id' => 'export_ead', 'class' => 'form']) ->setMethod('post') ->setAttrib('enctype', 'multipart/form-data') - ->setAction($this->view->url(['action' => 'export-ead'])) + ->setAction($this->view->url(['action' => 'export-'.$type])) ->addElement('select', 'cat_id', ['style' => 'max-width:445px;', @@ -172,12 +173,34 @@ class Admin_AlbumController extends ZendAfi_Controller_Action { 'required' => true, 'multiOptions' => ['' => $this->_('Choisissez une catégorie')] + Class_AlbumCategorie::getAllLibelles()]) - ->addElement('submit', 'submit', ['label' => 'Exporter en EAD']); + ->addElement('submit', 'submit', ['label' => 'Exporter en ' . strtoupper($type)]); + } + + + public function exportCsvAction() { + $description = (new Class_TableDescription('ressources')) + ->addColumn($this->_('Categorie'), 'album_category_absolute_path') + ->addColumn($this->_('Titre Album'), 'titre_album') + ->addColumn($this->_('Description Album'), 'description_album') + ->addColumn($this->_('Date'), 'annee') + ->addColumn($this->_('Créateur'), 'auteur') + ->addColumn($this->_('Editeur'), 'editeur') + ->addColumn($this->_('Titre'), 'titre') + ->addColumn($this->_('Description'), 'description') + ->addColumn($this->_('Ressource'), 'play_ressource_url'); + $categories = [Class_AlbumCategorie::find($this->_getParam('cat_id',1))]; + + $datas = []; + foreach(Class_AlbumCategorie::getAlbumsFromCategories([$this->_getParam('cat_id',1)]) as $album) + $datas = array_merge($album->getRessources(),$datas); + return $this->_helper->csv('export.csv', + $this->view->renderCsv($description, $datas)); + } public function exportEadAction() { - $form = $this->_formExportEAD(); + $form = $this->_formExport(); if ($form->isValid($this->_request->getPost())) { $this->getHelper('ViewRenderer')->setNoRender(); $response = $this->_response; diff --git a/application/modules/admin/views/scripts/album/import-ead.phtml b/application/modules/admin/views/scripts/album/import-ead.phtml index cdc4995e225ee44e3917f7099031f4fdfd589197..7985bb47262e4f52597171ccfea3d5973f1f4afe 100644 --- a/application/modules/admin/views/scripts/album/import-ead.phtml +++ b/application/modules/admin/views/scripts/album/import-ead.phtml @@ -3,4 +3,5 @@ echo $this->tag('h2', $this->_('Import')); echo $this->renderForm($this->form_import_ead); echo $this->tag('h2', $this->_('Export')); echo $this->renderForm($this->form_export_ead); +echo $this->renderForm($this->form_export_csv); ?> diff --git a/application/modules/opac/controllers/AuthController.php b/application/modules/opac/controllers/AuthController.php index 90cd4f88b41b5b398514cc514a4807f36d5cc08f..44a256ac0dee0704368a0ec6c0879f257f1d25f0 100644 --- a/application/modules/opac/controllers/AuthController.php +++ b/application/modules/opac/controllers/AuthController.php @@ -557,11 +557,8 @@ class AuthController extends ZendAfi_Controller_Action { if ('' != $this->_getParam('emailCheck')) return $this->_redirect('/'); - $form = $pre_registration - ->getForm() - ->populate(ZendAfi_Filters_Post::filterStatic($this->_request->getParams())); - - $this->view->form = $form; + $this->view->form = + $form->populate(ZendAfi_Filters_Post::filterStatic($this->_request->getParams())); $data = ZendAfi_Filters_Post::filterStatic($this->_request->getPost()); unset($data['emailCheck']); diff --git a/application/modules/opac/controllers/RechercheController.php b/application/modules/opac/controllers/RechercheController.php index f7bd5adbbe08fcfb7b23211dc85d5a546bbf808c..bded529f364f4075dfb80925e723bad72bb14d39 100644 --- a/application/modules/opac/controllers/RechercheController.php +++ b/application/modules/opac/controllers/RechercheController.php @@ -743,8 +743,11 @@ class RechercheController extends ZendAfi_Controller_Action { 'class' => 'zend_form reservation_pickup', 'action' => $this->view->url(['controller' => 'recherche', 'action' => $action])]) - ->addElement('Radio', 'code_annexe', ['required' => true, - 'allowEmpty' => false]) + ->addElement('Radio', + 'code_annexe', + ['required' => true, + 'allowEmpty' => false, + 'escape' => false]) ->addDisplayGroup(['code_annexe'], 'group', ['legend' => 'Site de retrait']); } diff --git a/application/modules/telephone/views/scripts/recherche/bibliotheque.phtml b/application/modules/telephone/views/scripts/recherche/bibliotheque.phtml index fc5711054a62a9ae3f4b6f21369956e27092a30e..59b276ec28d97957dbbfffaae8b04ed60b8cd1e3 100644 --- a/application/modules/telephone/views/scripts/recherche/bibliotheque.phtml +++ b/application/modules/telephone/views/scripts/recherche/bibliotheque.phtml @@ -1,26 +1,2 @@ -<?php echo $this->toolbar($this->_("Bib"));?> -<h1><?php echo $this->escape($this->bib->getLibelle());?></h1> -<ul data-role="listview"> - <li data-role="list-divider"><?php echo $this->_('Coordonnées')?></li> - <li> - <div style="float:left"><?php echo $this->mapForLieu($this->bib->answersLocation(), - array('size' => '100x100')); ?></div> - <address> - <?php echo nl2br($this->bib->getAdresse());?><br> - <?php echo $this->bib->getCp();?> <?php echo $this->bib->getVille();?> - </address> - <div class="clear"></div> - </li> - <?php if ($this->bib->getTelephone()) { ?> - <li><?php echo $this->bib->getTelephone();?></li> - <?php } ?> - <?php if ($this->bib->getMail()) { ?> - <li><a href="mailto:<?php echo $this->bib->getMail();?>"><?php echo $this->bib->getMail();?></a></li> - <?php } ?> - <?php if ($this->bib->getHoraire()) { ?> - <li data-role="list-divider"><?php echo $this->_('Horaires')?></li> - <li> - <?php echo nl2br(urldecode($this->bib->getHoraire()));?> - </li> - <?php } ?> -</lu> +<?php +echo $this->renderLibrary($this->bib); diff --git a/library/Class/AdminVar.php b/library/Class/AdminVar.php index 76f61f05955a6de96a2f6ab405f037ecb3658c3c..f011c795fa9525f6dd2dff344e70c695145c64ef 100644 --- a/library/Class/AdminVar.php +++ b/library/Class/AdminVar.php @@ -183,9 +183,9 @@ class Class_AdminVarLoader extends Storm_Model_Loader { 'CYBERLIBRIS_URL' => Class_AdminVar_Meta::newDefault($this->_('Adresse du serveur OAI Cyberlibris'))->bePrivate(), 'CYBERLIBRIS_ID' => Class_AdminVar_Meta::newDefault($this->_('Identifiant SSO Cyberlibris'))->bePrivate(), - 'ARTE_VOD_LOGIN' => Class_AdminVar_Meta::newDefault($this->_('Login ARTE VOD'))->bePrivate(), - 'ARTE_VOD_KEY' => Class_AdminVar_Meta::newDefault($this->_('Clé ARTE VOD'))->bePrivate(), - 'ARTE_VOD_SSO_KEY' => Class_AdminVar_Meta::newDefault($this->_('Clé ARTE VOD Single Sign-On'))->bePrivate(), + 'ARTE_VOD_LOGIN' => Class_AdminVar_Meta::newDefault($this->_('Login utilisé pour générer l\'adresse https://vod.mediatheque-numerique.com/mediatheques/[ARTE VOD LOGIN]'))->bePrivate(), + 'ARTE_VOD_KEY' => Class_AdminVar_Meta::newDefault($this->_('Clé de moissonnage (optionelle)'))->bePrivate(), + 'ARTE_VOD_SSO_KEY' => Class_AdminVar_Meta::newDefault($this->_('Clé de cryptage lors du SSO'))->bePrivate(), 'NUMERIQUE_PREMIUM_URL' => Class_AdminVar_Meta::newDefault('')->bePrivate(), @@ -784,9 +784,9 @@ class Class_AdminVarLoader extends Storm_Model_Loader { * @return bool */ public function isArteVODEnabled() { - return (('' != Class_AdminVar::get('ARTE_VOD_LOGIN')) - && ('' != Class_AdminVar::get('ARTE_VOD_KEY')) - && ('' != Class_AdminVar::get('ARTE_VOD_SSO_KEY'))); + return + '' != Class_AdminVar::get('ARTE_VOD_LOGIN') + && '' != Class_AdminVar::get('ARTE_VOD_SSO_KEY'); } diff --git a/library/Class/AlbumRessource.php b/library/Class/AlbumRessource.php index 351df03add207c4f7b455f86c78bf90f6c818154..a616f3ac7fa1358ef3120c5c408c48baf94109ed 100644 --- a/library/Class/AlbumRessource.php +++ b/library/Class/AlbumRessource.php @@ -138,6 +138,14 @@ class Class_AlbumRessource extends Storm_Model_Abstract { } + /** + * @return String + */ + public function getDescriptionAlbum() { + return $this->getAlbum()->getDescription(); + } + + /** * @return string */ @@ -146,6 +154,14 @@ class Class_AlbumRessource extends Storm_Model_Abstract { } + /** + * @return string + */ + public function getAlbumCategoryAbsolutePath() { + return $this->getAlbum()->getCategorie()->getAbsolutePath(); + } + + /** * @return String */ diff --git a/library/Class/ArteVodLink.php b/library/Class/ArteVodLink.php index e367e7fe5ddacca759825268993c722cb4eb3255..a28a27d604825d2789a4fcaed4b88c1406e5caeb 100644 --- a/library/Class/ArteVodLink.php +++ b/library/Class/ArteVodLink.php @@ -22,14 +22,15 @@ class Class_ArteVodLink { use Trait_TimeSource; - protected $_album; - protected $_user; const AUTH_URL = 'https://portal.mediatheque-numerique.com/sso_login', API_URL = 'https://vod.mediatheque-numerique.com', API_SUFFIX = '/api/v1/', MEDIATHEQUES_SUFFIX = '/mediatheques/'; + protected $_album; + protected $_user; + public static function forAlbumAndUser($album, $user) { return (new self())->setAlbum($album)->setUser($user); diff --git a/library/Class/File/Mime.php b/library/Class/File/Mime.php index c11e7b503d0c12258539479b1b065c855780a073..9c1039082528163871605ea153bb874846766808 100644 --- a/library/Class/File/Mime.php +++ b/library/Class/File/Mime.php @@ -210,6 +210,7 @@ class Class_File_Mime { */ public static function getType($ext) { + $ext = strtolower($ext); if (isset(self::$extToTypes[$ext])) { return self::$extToTypes[$ext]; } diff --git a/library/Class/Systeme/ModulesAppli.php b/library/Class/Systeme/ModulesAppli.php index 3ba3de66167c1967bf126177b15368167e37cd96..7146bc7c3f8357fd1c04cb54c0ee5e162f01b5b7 100644 --- a/library/Class/Systeme/ModulesAppli.php +++ b/library/Class/Systeme/ModulesAppli.php @@ -182,10 +182,9 @@ class Class_Systeme_ModulesAppli extends Class_Systeme_ModulesAbstract { public static function newFor($controller, $action, $subaction) { - if (('recherche' == $controller) && ('viewnotice' == substr($action, 0, 10))) - return new Class_Systeme_ModulesAppli_ViewRecord($controller, $action, $subaction); - - return new Class_Systeme_ModulesAppli_Default($controller, $action, $subaction); + return (('recherche' == $controller) && ('viewnotice' == substr($action, 0, 10))) + ? new Class_Systeme_ModulesAppli_ViewRecord($controller, $action, $subaction) + : new Class_Systeme_ModulesAppli_Default($controller, $action, $subaction); } diff --git a/library/Class/Systeme/ModulesAppli/ViewRecord.php b/library/Class/Systeme/ModulesAppli/ViewRecord.php index 8a12145e1377ae42e87db390c31416e519ce27d3..635cf9aaa579d6c3172869beead8072aed40cc53 100644 --- a/library/Class/Systeme/ModulesAppli/ViewRecord.php +++ b/library/Class/Systeme/ModulesAppli/ViewRecord.php @@ -33,9 +33,6 @@ class Class_Systeme_ModulesAppli_ViewRecord extends Class_Systeme_ModulesAppli_D if ($this->_defaults) return $this->_defaults; - if (false !== strpos($this->_action,'viewnotice')) - $this->_action = 'viewnotice'; - $valeurs = ['barre_nav' => 'Notice', // Barre de nav 'boite' => null, 'entete' => implode(';', diff --git a/library/Class/WebService/BibNumerique/ArteVOD.php b/library/Class/WebService/BibNumerique/ArteVOD.php index 51a9e987aca7c4029489250ac267ccc68d54b51a..3dfb9dd735295b70b5e05c4e937f1775269bbd4e 100644 --- a/library/Class/WebService/BibNumerique/ArteVOD.php +++ b/library/Class/WebService/BibNumerique/ArteVOD.php @@ -39,8 +39,12 @@ class Class_WebService_BibNumerique_ArteVOD extends Class_WebService_BibNumeriqu public function open_authenticated_url($url) { - return $this->getWebClient()->open_url($url, ['auth' => ['user' => Class_AdminVar::get('ARTE_VOD_LOGIN'), - 'password' => Class_AdminVar::get('ARTE_VOD_KEY')]]); + $client = $this->getWebClient(); + + return ($user = trim(Class_AdminVar::get('ARTE_VOD_LOGIN'))) && ($password = trim(Class_AdminVar::get('ARTE_VOD_KEY'))) + ? $client->open_url($url, ['auth' => ['user' => $user, + 'password' => $password]]) + : $client->open_url($url); } @@ -67,9 +71,9 @@ class Class_WebService_BibNumerique_ArteVOD extends Class_WebService_BibNumeriqu } while (!empty($ress_numerique)); $this->_deleteNonHarvested(); - } + protected function _deleteNonHarvested() { if (0 < count($this->getHarvestedIds())) Class_Album::getLoader() @@ -81,6 +85,7 @@ class Class_WebService_BibNumerique_ArteVOD extends Class_WebService_BibNumeriqu return Class_ArteVodLink::API_URL . Class_ArteVodLink::API_SUFFIX; } + public function isEnabled() { return Class_AdminVar::isArteVODEnabled(); } diff --git a/library/Class/WebService/SIGB/PreRegistration.php b/library/Class/WebService/SIGB/PreRegistration.php index 56164c231a53309f92f6f96460d61a0c60ed737b..cc22c45bed758af28c6110eb196cb033944242c4 100644 --- a/library/Class/WebService/SIGB/PreRegistration.php +++ b/library/Class/WebService/SIGB/PreRegistration.php @@ -172,6 +172,10 @@ class Class_WebService_SIGB_PreRegistrationKoha extends Class_WebService_SIGB_Pr return $this->_pre_registration->addError($this->_('Échec de la préinscription, les informations saisies sont invalides.')); $data['branchcode'] = $this->getBranchCode($data); + + if(isset($data['dateofbirth'])) + $data['dateofbirth'] = Class_Date::humanDate($data['dateofbirth'],'yyyy-MM-dd'); + $response = $int_bib->getSIGBComm()->preRegistration($data); if(!$response['statut']) diff --git a/library/ZendAfi/View/Helper/RenderCsv.php b/library/ZendAfi/View/Helper/RenderCsv.php index 35bbeb21b5ac20ee6e16208f4a7c0086c755322f..3069bbc315660c3bd6ae7aad3560cc837757eaf7 100644 --- a/library/ZendAfi/View/Helper/RenderCsv.php +++ b/library/ZendAfi/View/Helper/RenderCsv.php @@ -73,7 +73,7 @@ class ZendAfi_View_Helper_RenderCsv extends ZendAfi_View_Helper_BaseHelper { ->_description ->columnsCollect(function($column) use ($model) { - return $column->renderModelOn($model, $this); + return $column->renderModelOn($model,$this); }); return $this->_values; } @@ -91,4 +91,4 @@ class ZendAfi_View_Helper_RenderCsv extends ZendAfi_View_Helper_BaseHelper { public function renderModelAction($model, $description) { } } -?> \ No newline at end of file +?> diff --git a/library/ZendAfi/View/Helper/Telephone/RenderLibrary.php b/library/ZendAfi/View/Helper/Telephone/RenderLibrary.php new file mode 100644 index 0000000000000000000000000000000000000000..2d31113cad2915c29209e22140ca39d8a5d6d30e --- /dev/null +++ b/library/ZendAfi/View/Helper/Telephone/RenderLibrary.php @@ -0,0 +1,78 @@ +<?php +/** + * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved. + * + * BOKEH is free software; you can redistribute it and/or modify + * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by + * the Free Software Foundation. + * + * There are special exceptions to the terms and conditions of the AGPL as it + * is applied to this software (see README file). + * + * BOKEH is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE + * along with BOKEH; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +class ZendAfi_View_Helper_Telephone_RenderLibrary extends ZendAfi_View_Helper_BaseHelper { + + public function renderLibrary($library) { + if (!$library) + return ''; + + $html = [$this->view->toolbar($this->_("Bib")), + + $this->_tag('h1', $this->view->escape($library->getLibelle())), + + $this->_libraryInfo($library) + ]; + + return implode($html); + } + + + protected function _libraryInfo($library) { + $lis = [$this->_tag('li', + $this->_('Coordonnées'), + ['data-role' => 'list-divider']), + + $this->_tag('li', + $this->view->div(['style' => 'float:left'], + $this->view->mapForLieu($library->answersLocation(), + ['size' => '100x100'])) + . $this->_tag('address', + nl2br($library->getAdresse()) + . BR + . $library->getCp() + . $library->getVille()) + + . $this->_tag('div', '', ['class' => 'clear'])), + ]; + + if ($phone = $library->getTelephone()) + $lis [] = $this->_tag('li', $phone); + + if ($mail = $library->getMail()) + $lis [] = $this->_tag('li', + $this->view->tagAnchor(sprintf('mailto:%s', + $mail), + $mail)); + + if ($openings = $this->view->libraryOpenings($library)) { + $lis [] = $this->_tag('li', + $this->_('Horaires'), + ['data-role' => 'list-divider']); + $lis [] = $this->_tag('li', + $openings); + } + + return $this->_tag('ul', + implode($lis), + ['data-role' => 'listview']); + } +} \ No newline at end of file diff --git a/library/startup.php b/library/startup.php index b6fb3b83c303e70d584e1261bf43c270fafe00bf..0bbb965ae7a7258ce720a5e2f7488cf4e31784f1 100644 --- a/library/startup.php +++ b/library/startup.php @@ -81,7 +81,7 @@ class Bokeh_Engine { function setupConstants() { defineConstant('BOKEH_MAJOR_VERSION','8.0'); - defineConstant('BOKEH_RELEASE_NUMBER', BOKEH_MAJOR_VERSION . '.22'); + defineConstant('BOKEH_RELEASE_NUMBER', BOKEH_MAJOR_VERSION . '.23'); defineConstant('BOKEH_REMOTE_FILES', 'http://git.afi-sa.fr/afi/opacce/'); diff --git a/scripts/export_csv_category.php b/scripts/export_csv_category.php new file mode 100755 index 0000000000000000000000000000000000000000..bf988c1d4bdfc8056509822a2abe4bedebe9ce81 --- /dev/null +++ b/scripts/export_csv_category.php @@ -0,0 +1,45 @@ +<?php +error_reporting(E_ERROR | E_PARSE); +require(__DIR__.'/../console.php'); + +class Scripts_ExportCsvCategory extends ZendAfi_Controller_Action{ + + public function __construct($cat_id, $filename){ + $usage = "usage : php export_category_csv.php catid filename.csv + + catid = id category à utiliser pour l'export + + filename = nom du fichier à générer +"; + +if (!isset($cat_id) || !($categories = Class_AlbumCategorie::find($cat_id))){ + print $usage; +} + + +$description = (new Class_TableDescription('ressources')) + ->addColumn($this->_('Categorie'), 'album_category_absolute_path') + ->addColumn($this->_('Titre Album'), 'titre_album') + ->addColumn($this->_('Description Album'), 'description_album') + ->addColumn($this->_('Date'), 'annee') + ->addColumn($this->_('Créateur'), 'auteur') + ->addColumn($this->_('Editeur'), 'editeur') + ->addColumn($this->_('Titre'), 'titre') + ->addColumn($this->_('Description'), 'description') + ->addColumn($this->_('Ressource'), 'play_ressource_url'); + +$datas = []; +foreach(Class_AlbumCategorie::getAlbumsFromCategories([$cat_id]) as $album) + $datas = array_merge( $album->getRessources(),$datas); + + +$handle = fopen($filename?$filename:'export.csv','w'); + +$zf_render_csv = new ZendAfi_View_Helper_RenderCsv(); +fwrite($handle, $zf_render_csv->renderCsv($description, $datas)); +fclose($handle); + +} +} +new Scripts_ExportCsvCategory($argv[1], $argv[2]); +?> diff --git a/tests/application/modules/admin/controllers/AlbumControllerTest.php b/tests/application/modules/admin/controllers/AlbumControllerTest.php index 385cc9044c1f45376b881bcd583b81a90fc06622..79ff16ab2cf39ff3e87aa469ad6068cf5b05a7f5 100644 --- a/tests/application/modules/admin/controllers/AlbumControllerTest.php +++ b/tests/application/modules/admin/controllers/AlbumControllerTest.php @@ -2956,6 +2956,78 @@ abstract class ControllerAlbumMultiMediasTestCase extends Admin_AlbumControllerT +class AlbumControllerMultiMediasExportCSV extends ControllerAlbumMultiMediasTestCase { + protected $_csv = []; + + public function setUp() { + parent::setUp(); + + $this->fixture('Class_AlbumCategorie', + ['id' => '34', + 'libelle' => 'Jeunesse']); + + Class_AlbumCategorie::find(33) + ->setParentCategorie(Class_AlbumCategorie::find(34)) + ->save(); + + Class_Album::find('999') + ->AddEditor('Dargaud') + ->setAnnee('2019'); + + $this->postDispatch('/admin/album/export-csv', + ['cat_id' => 34], + true); + $this->_csv = array_map(function($line) { return str_getcsv($line, ";", '"'); }, + explode("\n", rtrim($this->_response->getBody()))); + } + + + /** @test */ + public function responseBodyShouldBeAttachment() { + $this->assertHeaderContains('Content-Disposition', 'attachment'); + } + + + /** @test */ + public function csvShouldCountFiveLines() { + $this->assertCount(5, $this->_csv); + } + + + /** @test */ + public function firstRowShouldContainsAllHeaders() { + // cannot assertEquals entire row due to array sort diff between php5 and php7 + foreach(['Categorie', "Titre Album", "Description Album", 'Date', 'Créateur', 'Editeur', 'Titre', 'Description', 'Ressource'] + as $header) + $this->assertContains($header, $this->_csv[0]); + } + + + /** @test + */ + public function secondRowShouldContainsValuesForAlbum() { + // cannot assertEquals entire row due to array sort diff between php5 and php7 + foreach(['Jeunesse > Comics', 'Plein de medias', '<p>pour passer la soirée</p>', '2019','Titi','Dargaud'] + as $value) + $this->assertContains($value, $this->_csv[1]); + } + + + /** @test + */ + public function thirdRowShouldContainsValuesForBatmanDarkKnightRessource() { + foreach(['Batman Dark Knight', 'Une nouvelle aventure du justicier noir' ] + as $value) + $this->assertContains($value, $this->_csv[2]); + + $this->assertEquals(1, substr_count($this->_csv[2][8], + '/bib-numerique/play-ressource/id')); + } +} + + + + class AlbumControllerMultiMediasExportEAD extends ControllerAlbumMultiMediasTestCase { public function setUp() { parent::setUp(); diff --git a/tests/application/modules/opac/controllers/AuthControllerPreRegistrationTest.php b/tests/application/modules/opac/controllers/AuthControllerPreRegistrationTest.php index 6e1f538461fa7a0f1d51e8f37eee1ca75427d7c2..2171c3acee16ae1d16477ce58cd0c2e05ac054ce 100644 --- a/tests/application/modules/opac/controllers/AuthControllerPreRegistrationTest.php +++ b/tests/application/modules/opac/controllers/AuthControllerPreRegistrationTest.php @@ -136,7 +136,7 @@ class AuthControllerPreRegistrationKohaPostDispatchTest extends AuthControllerPr ['data' => json_encode(['branchcode' => 'GRA', 'surname' => 'Boulard', 'firstname' => 'Thom', - 'dateofbirth' => '15-09-1940', + 'dateofbirth' => '1940-09-15', 'streetnumber' => '10', 'address' => 'rue secret', 'zipcode' => '01630', @@ -156,8 +156,7 @@ class AuthControllerPreRegistrationKohaPostDispatchTest extends AuthControllerPr 'city' => 'Gotham', 'email' => 'thom@mail.com', 'phone' => '0123456789', - 'emailCheck' => ''], - true); + 'emailCheck' => '']); } @@ -213,7 +212,7 @@ class AuthControllerPreRegistrationKohaPostDispatchWithErrorReturnedTest extends ['data' => json_encode(['branchcode' => 'GRA', 'surname' => 'Boulard', 'firstname' => 'Thom', - 'dateofbirth' => '15-09-1940', + 'dateofbirth' => '1940-09-15', 'streetnumber' => '10', 'address' => 'rue secret', 'zipcode' => '01630', diff --git a/tests/application/modules/opac/controllers/RechercheControllerReservationTest.php b/tests/application/modules/opac/controllers/RechercheControllerReservationTest.php index 35d11009686023ab40ec69e30a74cddd6a6f4104..a30d24dc17324037de2b805c39fb64c56fe3065d 100644 --- a/tests/application/modules/opac/controllers/RechercheControllerReservationTest.php +++ b/tests/application/modules/opac/controllers/RechercheControllerReservationTest.php @@ -800,7 +800,8 @@ abstract class RechercheControllerReservationPickupAjaxWithNanookPickupLocations ->whenCalled('pickupLocationsFor') ->answers(['36' => 'Annecy', '37' => 'Cran', - '45' => 'Istres']); + '45' => 'Istres', + '99' => 'Lunel <strong>(Disponible)</strong>']); Class_WebService_SIGB_Nanook::setService(['url_serveur' => 'http://bib.valensol.net', 'id_bib' => 12, @@ -899,6 +900,30 @@ class RechercheControllerReservationPickupAjaxNanookPickupLocationsPrecheckFirst } +class RechercheControllerReservationPickupAjaxNanookPickupLocationsStrongInLabel + extends RechercheControllerReservationPickupAjaxWithNanookPickupLocationsTestCase { + + public function setUp() { + parent::setUp(); + + $this->nanook->whenCalled('getUserAnnexe')->answers('66'); + + $this->dispatch('recherche/reservation-pickup-ajax?id_bib=2&id_origine=12&code_annexe=99©_id=12', true); + + $this->_json = json_decode($this->_response->getBody()); + } + + + /** + @see https://forge.afi-sa.net/issues/94332 + @test + */ + public function LunelShouldContainStrong() { + $this->_xpath + ->assertXPath($this->_json->content, '//strong',$this->_json->content); + } +} + class RechercheControllerReservationPickupAjaxAndNotifyByMailEnabledTest extends RechercheControllerReservationWithPickupChoiceTestCase { diff --git a/tests/application/modules/opac/controllers/RechercheControllerViewnoticeTest.php b/tests/application/modules/opac/controllers/RechercheControllerViewnoticeTest.php index 0a598c72ce3564dab18abae097bab97b44a1a37e..98cb57fdc73f45be9c7875761c828633c8f6232b 100644 --- a/tests/application/modules/opac/controllers/RechercheControllerViewnoticeTest.php +++ b/tests/application/modules/opac/controllers/RechercheControllerViewnoticeTest.php @@ -100,6 +100,7 @@ class RechercheControllerViewnoticeWithInspectorGadgetTest extends AbstractContr + class RechercheControllerSearchResultWithInspectorGadgetTest extends AbstractControllerTestCase { protected $_storm_default_to_volatile = true; @@ -120,4 +121,65 @@ class RechercheControllerSearchResultWithInspectorGadgetTest extends AbstractCon public function boiteResultatRechercheShouldContainElements() { $this->assertXPath('//div[@class="contenu"]/div[@class="resultats_page"]'); } +} + + + +/** @see http://forge.afi-sa.fr/issues/93542 */ +class RechercheControllerViewnoticeVignetteFromUnimarcTest + extends AbstractControllerTestCase { + + protected $_storm_default_to_volatile = true; + + /** @test */ + public function thumbnailShouldBeFromEpicpicsDotOrg() { + Zend_Registry::set('sql', + $this->mock() + ->whenCalled('fetchOne')->answers(null) + ->whenCalled('fetchAll')->answers([]) + ->whenCalled('execute')->answers(null)); + + // portal with defaults for typedoc 3 + $defaults = Class_Systeme_ModulesAppli::newFor('recherche', 'viewnotice', '') + ->getDefaultPreferences(); + Class_Profil::getPortail() + ->setCfgModulesPreferences($defaults, 'recherche', 'viewnotice', '3'); + + // profile view thumbnail fields for typedoc 3 + $this->fixture('Class_Profil', + ['id' => '23', + 'cfg_modules' => file_get_contents(__DIR__.'/profile_23_cfg_module.txt')]); + + $this->fixture('Class_Notice', + ['id' => 120893, + 'type_doc' => 3, + 'alpha_titre' => 'SHE', + 'alpha_auteur' => 'MUTHONI DRUMMER QUEEN', + 'titres' => 'SHE MILLION MILION VOICE VOIS KENYAN KENIAN MESSAGE MESAJ SUZIE SUZI NOMA LOVER LOV DEAR MATHILDE MATILD CAGED KAJ BIRD BIR MORE MOR CRIMINAL KRIMINAL SQUAD SKA TIME TIM BOMB BONB ELEVATE ELEVAT MAKE MAK RIGHT RI', + 'auteurs' => 'MUTHONI MUTONI DRUMMER DRUM QUEEN KAN', + 'editeur' => 'PIAS', + 'collection' => '', + 'matieres' => 'MUSIQUE MUSIK KENYANE KENIAN', + 'dewey' => '', + 'facettes' => 'A109804 M31689 T3 B1 S3 E1 Y1 V1', + 'cote' => '13 MUT 2', + 'id_commerciale' => 'YOTANKAYO78CDSHE', + 'clef_alpha' => 'SHE--MUTHONIDRUMMERQUEEN--PIAS-2019-3', + 'clef_oeuvre' => 'SHE--MUTHONIDRUMMERQUEEN-', + 'clef_chapeau' => '', + 'annee' => '2019', + 'qualite' => 5, + 'exportable' => 1, + 'date_creation' => '0000-00-00 00:00:00', + 'date_maj' => '2019-07-21 16:24:53', + 'unimarc' => '00690njm0 2200193 450 001001500000005001900015071002000034100004100054126002000095200003100115210001500146215001900161327014400180345003600324606002000360700002600380801002200406856006800428frOr130110180920190425114743.586 aYO78CDbYotanka a20190416d2019 m y0frea0103 ba aagbxhx cd aShefMuthoni Drummer Queen cPIASd2019 a1 CDe1 livret aMillion voiceaKenyan messageaSuzie nomaaLoveraDear MathildeaCaged birdaNo moreaCriminalaSquad upaTime bombaElevateaMake it right aCVSb5051083143967cCDd14,50 E2 aMusique kenyane aMuthoni Drummer Queen aFRbCVSc20190416 uhttps://www.cvs-mediatheques.com/home/notices/0/266/1094266.jpg', + 'url_vignette' => Class_WebService_Vignette::NO_DATA, + 'url_image' => Class_WebService_Vignette::NO_DATA, + ]); + + $this->dispatch('/recherche/viewnotice/titre/nouveaut%C3%A9s/style_liste/mycarousel_horizontal/nb_notices/20/only_img/1/aleatoire/1/tri/date_creation+desc/nb_analyse/50/op_hauteur_img/150/op_transition//op_largeur_img/120/op_hauteur_boite/0/op_captions/0/op_autoplay/0/op_visible/0/op_speed/100/op_auto/0/op_scroll/1/rss_avis/0/id_catalogue/4/id_panier//profil_redirect/23/boite/boite_nouveautes/id_module/1-6/type_module/KIOSQUE/division/2/profile_id/1/styles_reload/0/id_profil/23/page/5/clef/SHE--MUTHONIDRUMMERQUEEN--PIAS-2019-3/id/120893'); + + $this->assertXPath('//img[@src="https://www.cvs-mediatheques.com/home/notices/0/266/1094266.jpg"]', + $this->_response->getBody()); + } } \ No newline at end of file diff --git a/tests/application/modules/opac/controllers/profile_23_cfg_module.txt b/tests/application/modules/opac/controllers/profile_23_cfg_module.txt new file mode 100644 index 0000000000000000000000000000000000000000..310b250524df76baa8859f93176d6a1c02375e0d --- /dev/null +++ b/tests/application/modules/opac/controllers/profile_23_cfg_module.txt @@ -0,0 +1 @@ +a:1:{s:9:"recherche";a:18:{s:14:"resultatsimple";a:31:{s:9:"barre_nav";s:9:"Résultat";s:5:"titre";s:0:"";s:20:"search_term_editable";s:1:"1";s:17:"liste_nb_par_page";s:2:"10";s:12:"liste_format";s:1:"3";s:11:"liste_codes";s:6:"W;N;R;";s:14:"facettes_actif";s:1:"1";s:14:"multi_facettes";s:1:"1";s:14:"facettes_codes";s:9:"S;G;F;A;M";s:15:"facettes_nombre";s:1:"6";s:16:"facettes_message";s:23:"Affiner le résultat...";s:16:"suggests_enabled";s:1:"1";s:15:"suggests_number";s:1:"3";s:17:"bookmarks_enabled";s:1:"1";s:10:"tags_actif";s:1:"1";s:10:"tags_codes";s:5:"A;M;F";s:11:"tags_nombre";s:2:"30";s:11:"tags_calcul";s:1:"0";s:13:"tags_position";s:1:"2";s:12:"tags_message";s:23:"Elargir la recherche...";s:20:"cvs_display_position";s:1:"3";s:18:"cvs_resultat_titre";s:22:"Ressources numériques";s:20:"cvs_autres_resultats";s:9:"Documents";s:12:"cvs_msg_deco";s:25:"Vous devez etre connecté";s:13:"cvs_nb_result";s:1:"5";s:13:"cvs_msg_droit";s:59:"Merci de contacter la médiathèque pour obtenir un accès.";s:16:"suggestion_achat";s:1:"1";s:11:"zones_titre";s:17:"200$e;200$h;200$i";s:18:"header_composition";s:0:"";s:5:"boite";s:0:"";s:4:"xslt";s:0:"";}s:11:"viewnotice5";a:6:{s:7:"onglets";a:16:{s:6:"detail";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:1:"1";s:5:"titre";s:23:"Description du document";s:7:"largeur";s:1:"0";}s:4:"avis";a:4:{s:3:"aff";s:1:"1";s:5:"ordre";s:1:"3";s:5:"titre";s:9:"Critiques";s:7:"largeur";s:1:"0";}s:11:"exemplaires";a:4:{s:3:"aff";s:1:"1";s:5:"ordre";s:1:"2";s:5:"titre";s:11:"Exemplaires";s:7:"largeur";s:1:"0";}s:6:"resume";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"4";s:5:"titre";s:9:"Résumés";s:7:"largeur";s:1:"0";}s:4:"tags";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"5";s:5:"titre";s:26:"Rebondir dans le catalogue";s:7:"largeur";s:1:"0";}s:10:"biographie";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"6";s:5:"titre";s:22:"Biographie de l'auteur";s:7:"largeur";s:1:"0";}s:6:"series";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"7";s:5:"titre";s:28:"Documents de la même série";s:7:"largeur";s:1:"0";}s:10:"similaires";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"1";s:5:"titre";s:20:"Documents similaires";s:7:"largeur";s:1:"0";}s:13:"bibliographie";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"9";s:5:"titre";s:12:"Discographie";s:7:"largeur";s:1:"0";}s:8:"morceaux";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"10";s:5:"titre";s:8:"Morceaux";s:7:"largeur";s:1:"0";}s:12:"bandeAnnonce";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"11";s:5:"titre";s:13:"Bande-annonce";s:7:"largeur";s:1:"0";}s:6:"photos";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"12";s:5:"titre";s:6:"Photos";s:7:"largeur";s:1:"0";}s:6:"videos";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"13";s:5:"titre";s:15:"Archives vidéo";s:7:"largeur";s:1:"0";}s:13:"resnumeriques";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"14";s:5:"titre";s:22:"Ressources numériques";s:7:"largeur";s:1:"0";}s:11:"babeltheque";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"15";s:5:"titre";s:12:"Babelthèque";s:7:"largeur";s:1:"0";}s:4:"frbr";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"16";s:5:"titre";s:14:"Notices liées";s:7:"largeur";s:1:"0";}}s:6:"entete";s:13:"J;A;W;N;F;G;M";s:9:"analytics";s:0:"";s:15:"analytics_title";s:0:"";s:17:"analytics_authors";s:0:"";s:5:"boite";s:0:"";}s:11:"viewnotice1";a:7:{s:6:"entete";s:5:"W;N;G";s:7:"onglets";a:16:{s:6:"detail";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:1:"2";s:5:"titre";s:14:"en savoir plus";s:7:"largeur";s:1:"0";}s:4:"avis";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"17";s:5:"titre";s:9:"Critiques";s:7:"largeur";s:1:"0";}s:11:"exemplaires";a:4:{s:3:"aff";s:1:"1";s:5:"ordre";s:1:"1";s:5:"titre";s:11:"Exemplaires";s:7:"largeur";s:1:"0";}s:6:"resume";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"4";s:5:"titre";s:9:"Résumés";s:7:"largeur";s:1:"0";}s:4:"tags";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"5";s:5:"titre";s:26:"Rebondir dans le catalogue";s:7:"largeur";s:1:"0";}s:10:"biographie";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"6";s:5:"titre";s:22:"Biographie de l'auteur";s:7:"largeur";s:1:"0";}s:6:"series";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"7";s:5:"titre";s:28:"Documents de la même série";s:7:"largeur";s:1:"0";}s:10:"similaires";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:2:"20";s:5:"titre";s:20:"Documents similaires";s:7:"largeur";s:1:"0";}s:13:"bibliographie";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"9";s:5:"titre";s:12:"Discographie";s:7:"largeur";s:1:"0";}s:8:"morceaux";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"10";s:5:"titre";s:8:"Morceaux";s:7:"largeur";s:1:"0";}s:12:"bandeAnnonce";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"11";s:5:"titre";s:13:"Bande-annonce";s:7:"largeur";s:1:"0";}s:6:"photos";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"12";s:5:"titre";s:6:"Photos";s:7:"largeur";s:1:"0";}s:6:"videos";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"13";s:5:"titre";s:15:"Archives vidéo";s:7:"largeur";s:1:"0";}s:13:"resnumeriques";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"14";s:5:"titre";s:22:"Ressources numériques";s:7:"largeur";s:1:"0";}s:11:"babeltheque";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"15";s:5:"titre";s:12:"Babelthèque";s:7:"largeur";s:1:"0";}s:4:"frbr";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"16";s:5:"titre";s:14:"Notices liées";s:7:"largeur";s:1:"0";}}s:4:"xslt";s:0:"";s:9:"analytics";s:0:"";s:15:"analytics_title";s:0:"";s:17:"analytics_authors";s:0:"";s:5:"boite";s:0:"";}s:11:"viewnotice3";a:10:{s:9:"barre_nav";s:6:"Notice";s:5:"boite";s:0:"";s:6:"entete";s:5:"W;N;G";s:9:"analytics";s:0:"";s:15:"analytics_title";s:0:"";s:17:"analytics_authors";s:0:"";s:11:"links_zones";s:0:"";s:16:"thumbnail_fields";s:5:"856-u";s:7:"onglets";a:17:{s:6:"detail";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:1:"2";s:5:"titre";s:14:"en savoir plus";s:7:"largeur";s:1:"0";}s:4:"avis";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"17";s:5:"titre";s:9:"Critiques";s:7:"largeur";s:1:"0";}s:11:"exemplaires";a:4:{s:3:"aff";s:1:"1";s:5:"ordre";s:1:"1";s:5:"titre";s:11:"Exemplaires";s:7:"largeur";s:1:"0";}s:6:"resume";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"4";s:5:"titre";s:9:"Résumés";s:7:"largeur";s:1:"0";}s:4:"tags";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"5";s:5:"titre";s:26:"Rebondir dans le catalogue";s:7:"largeur";s:1:"0";}s:10:"biographie";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"6";s:5:"titre";s:22:"Biographie de l'auteur";s:7:"largeur";s:1:"0";}s:6:"series";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"7";s:5:"titre";s:28:"Documents de la même série";s:7:"largeur";s:1:"0";}s:10:"similaires";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:2:"20";s:5:"titre";s:20:"Documents similaires";s:7:"largeur";s:1:"0";}s:13:"bibliographie";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"9";s:5:"titre";s:12:"Discographie";s:7:"largeur";s:1:"0";}s:8:"morceaux";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"10";s:5:"titre";s:8:"Morceaux";s:7:"largeur";s:1:"0";}s:12:"bandeAnnonce";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"11";s:5:"titre";s:13:"Bande-annonce";s:7:"largeur";s:1:"0";}s:6:"photos";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"12";s:5:"titre";s:6:"Photos";s:7:"largeur";s:1:"0";}s:6:"videos";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"13";s:5:"titre";s:15:"Archives vidéo";s:7:"largeur";s:1:"0";}s:13:"resnumeriques";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"14";s:5:"titre";s:22:"Ressources numériques";s:7:"largeur";s:1:"0";}s:11:"babeltheque";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"15";s:5:"titre";s:12:"Babelthèque";s:7:"largeur";s:1:"0";}s:4:"frbr";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"16";s:5:"titre";s:14:"Notices liées";s:7:"largeur";s:1:"0";}s:8:"recounts";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:2:"17";s:5:"titre";s:8:"Contient";s:7:"largeur";s:1:"0";}}s:4:"xslt";s:0:"";}s:11:"viewnotice2";a:10:{s:9:"barre_nav";s:6:"Notice";s:6:"entete";s:5:"W;N;G";s:9:"analytics";s:0:"";s:15:"analytics_title";s:0:"";s:17:"analytics_authors";s:0:"";s:11:"links_zones";s:0:"";s:16:"thumbnail_fields";s:0:"";s:7:"onglets";a:16:{s:6:"detail";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:1:"2";s:5:"titre";s:14:"en savoir plus";s:7:"largeur";s:1:"0";}s:4:"avis";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"17";s:5:"titre";s:9:"Critiques";s:7:"largeur";s:1:"0";}s:11:"exemplaires";a:4:{s:3:"aff";s:1:"1";s:5:"ordre";s:1:"1";s:5:"titre";s:11:"Exemplaires";s:7:"largeur";s:1:"0";}s:6:"resume";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"4";s:5:"titre";s:9:"Résumés";s:7:"largeur";s:1:"0";}s:4:"tags";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"5";s:5:"titre";s:26:"Rebondir dans le catalogue";s:7:"largeur";s:1:"0";}s:10:"biographie";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"6";s:5:"titre";s:22:"Biographie de l'auteur";s:7:"largeur";s:1:"0";}s:6:"series";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"7";s:5:"titre";s:28:"Documents de la même série";s:7:"largeur";s:1:"0";}s:10:"similaires";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:2:"20";s:5:"titre";s:20:"Documents similaires";s:7:"largeur";s:1:"0";}s:13:"bibliographie";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"9";s:5:"titre";s:12:"Discographie";s:7:"largeur";s:1:"0";}s:8:"morceaux";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"10";s:5:"titre";s:8:"Morceaux";s:7:"largeur";s:1:"0";}s:12:"bandeAnnonce";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"11";s:5:"titre";s:13:"Bande-annonce";s:7:"largeur";s:1:"0";}s:6:"photos";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"12";s:5:"titre";s:6:"Photos";s:7:"largeur";s:1:"0";}s:6:"videos";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"13";s:5:"titre";s:15:"Archives vidéo";s:7:"largeur";s:1:"0";}s:13:"resnumeriques";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"14";s:5:"titre";s:22:"Ressources numériques";s:7:"largeur";s:1:"0";}s:11:"babeltheque";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"15";s:5:"titre";s:12:"Babelthèque";s:7:"largeur";s:1:"0";}s:4:"frbr";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"16";s:5:"titre";s:14:"Notices liées";s:7:"largeur";s:1:"0";}}s:5:"boite";s:0:"";s:4:"xslt";s:0:"";}s:11:"viewnotice4";a:8:{s:6:"entete";s:5:"W;N;G";s:7:"onglets";a:17:{s:6:"detail";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:1:"2";s:5:"titre";s:14:"en savoir plus";s:7:"largeur";s:1:"0";}s:4:"avis";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"17";s:5:"titre";s:9:"Critiques";s:7:"largeur";s:1:"0";}s:11:"exemplaires";a:4:{s:3:"aff";s:1:"1";s:5:"ordre";s:1:"1";s:5:"titre";s:11:"Exemplaires";s:7:"largeur";s:1:"0";}s:6:"resume";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"4";s:5:"titre";s:9:"Résumés";s:7:"largeur";s:1:"0";}s:4:"tags";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"5";s:5:"titre";s:26:"Rebondir dans le catalogue";s:7:"largeur";s:1:"0";}s:10:"biographie";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"6";s:5:"titre";s:22:"Biographie de l'auteur";s:7:"largeur";s:1:"0";}s:6:"series";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"7";s:5:"titre";s:28:"Documents de la même série";s:7:"largeur";s:1:"0";}s:10:"similaires";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:2:"20";s:5:"titre";s:20:"Documents similaires";s:7:"largeur";s:1:"0";}s:13:"bibliographie";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"9";s:5:"titre";s:12:"Discographie";s:7:"largeur";s:1:"0";}s:8:"morceaux";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"10";s:5:"titre";s:8:"Morceaux";s:7:"largeur";s:1:"0";}s:12:"bandeAnnonce";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"11";s:5:"titre";s:13:"Bande-annonce";s:7:"largeur";s:1:"0";}s:6:"photos";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"12";s:5:"titre";s:6:"Photos";s:7:"largeur";s:1:"0";}s:6:"videos";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"13";s:5:"titre";s:15:"Archives vidéo";s:7:"largeur";s:1:"0";}s:13:"resnumeriques";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"14";s:5:"titre";s:22:"Ressources numériques";s:7:"largeur";s:1:"0";}s:11:"babeltheque";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"15";s:5:"titre";s:12:"Babelthèque";s:7:"largeur";s:1:"0";}s:4:"frbr";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"16";s:5:"titre";s:14:"Notices liées";s:7:"largeur";s:1:"0";}s:8:"recounts";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:2:"17";s:5:"titre";s:8:"Contient";s:7:"largeur";s:1:"0";}}s:4:"xslt";s:0:"";s:9:"analytics";s:0:"";s:15:"analytics_title";s:0:"";s:17:"analytics_authors";s:0:"";s:5:"boite";s:0:"";s:16:"thumbnail_fields";s:5:"856-u";}s:13:"viewnotice112";a:7:{s:6:"entete";s:5:"W;C;N";s:7:"onglets";a:17:{s:6:"detail";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:1:"1";s:5:"titre";s:23:"Description du document";s:7:"largeur";s:1:"0";}s:4:"avis";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"2";s:5:"titre";s:9:"Critiques";s:7:"largeur";s:1:"0";}s:11:"exemplaires";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"3";s:5:"titre";s:11:"Exemplaires";s:7:"largeur";s:1:"0";}s:6:"resume";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"4";s:5:"titre";s:9:"Résumés";s:7:"largeur";s:1:"0";}s:4:"tags";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"5";s:5:"titre";s:26:"Rebondir dans le catalogue";s:7:"largeur";s:1:"0";}s:10:"biographie";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"6";s:5:"titre";s:22:"Biographie de l'auteur";s:7:"largeur";s:1:"0";}s:6:"series";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"7";s:5:"titre";s:28:"Documents de la même série";s:7:"largeur";s:1:"0";}s:10:"similaires";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"8";s:5:"titre";s:20:"Documents similaires";s:7:"largeur";s:1:"0";}s:13:"bibliographie";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"9";s:5:"titre";s:12:"Discographie";s:7:"largeur";s:1:"0";}s:8:"morceaux";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"10";s:5:"titre";s:8:"Morceaux";s:7:"largeur";s:1:"0";}s:12:"bandeAnnonce";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"11";s:5:"titre";s:13:"Bande-annonce";s:7:"largeur";s:1:"0";}s:6:"photos";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"12";s:5:"titre";s:6:"Photos";s:7:"largeur";s:1:"0";}s:6:"videos";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"13";s:5:"titre";s:15:"Archives vidéo";s:7:"largeur";s:1:"0";}s:13:"resnumeriques";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"1";s:5:"titre";s:22:"Ressources numériques";s:7:"largeur";s:1:"0";}s:11:"babeltheque";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"15";s:5:"titre";s:12:"Babelthèque";s:7:"largeur";s:1:"0";}s:4:"frbr";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"16";s:5:"titre";s:14:"Notices liées";s:7:"largeur";s:1:"0";}s:8:"recounts";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"17";s:5:"titre";s:8:"Contient";s:7:"largeur";s:1:"0";}}s:4:"xslt";s:0:"";s:9:"analytics";s:0:"";s:15:"analytics_title";s:0:"";s:17:"analytics_authors";s:0:"";s:5:"boite";s:0:"";}s:13:"viewnotice119";a:8:{s:6:"entete";s:5:"W;C;N";s:7:"onglets";a:17:{s:6:"detail";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:1:"1";s:5:"titre";s:23:"Description du document";s:7:"largeur";s:1:"0";}s:4:"avis";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"2";s:5:"titre";s:9:"Critiques";s:7:"largeur";s:1:"0";}s:11:"exemplaires";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"3";s:5:"titre";s:11:"Exemplaires";s:7:"largeur";s:1:"0";}s:6:"resume";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"4";s:5:"titre";s:9:"Résumés";s:7:"largeur";s:1:"0";}s:4:"tags";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"5";s:5:"titre";s:26:"Rebondir dans le catalogue";s:7:"largeur";s:1:"0";}s:10:"biographie";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"6";s:5:"titre";s:22:"Biographie de l'auteur";s:7:"largeur";s:1:"0";}s:6:"series";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"7";s:5:"titre";s:28:"Documents de la même série";s:7:"largeur";s:1:"0";}s:10:"similaires";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"8";s:5:"titre";s:20:"Documents similaires";s:7:"largeur";s:1:"0";}s:13:"bibliographie";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"9";s:5:"titre";s:12:"Discographie";s:7:"largeur";s:1:"0";}s:8:"morceaux";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"10";s:5:"titre";s:8:"Morceaux";s:7:"largeur";s:1:"0";}s:12:"bandeAnnonce";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"11";s:5:"titre";s:13:"Bande-annonce";s:7:"largeur";s:1:"0";}s:6:"photos";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"12";s:5:"titre";s:6:"Photos";s:7:"largeur";s:1:"0";}s:6:"videos";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"13";s:5:"titre";s:15:"Archives vidéo";s:7:"largeur";s:1:"0";}s:13:"resnumeriques";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"1";s:5:"titre";s:22:"Ressources numériques";s:7:"largeur";s:1:"0";}s:11:"babeltheque";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"15";s:5:"titre";s:12:"Babelthèque";s:7:"largeur";s:1:"0";}s:4:"frbr";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"16";s:5:"titre";s:14:"Notices liées";s:7:"largeur";s:1:"0";}s:8:"recounts";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"17";s:5:"titre";s:8:"Contient";s:7:"largeur";s:1:"0";}}s:4:"xslt";s:0:"";s:9:"analytics";s:0:"";s:15:"analytics_title";s:0:"";s:17:"analytics_authors";s:0:"";s:5:"boite";s:0:"";s:16:"thumbnail_fields";s:5:"959-u";}s:11:"viewnotice7";a:10:{s:9:"barre_nav";s:6:"Notice";s:6:"entete";s:5:"W;N;G";s:9:"analytics";s:0:"";s:15:"analytics_title";s:0:"";s:17:"analytics_authors";s:0:"";s:11:"links_zones";s:0:"";s:16:"thumbnail_fields";s:0:"";s:7:"onglets";a:16:{s:6:"detail";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:1:"2";s:5:"titre";s:14:"en savoir plus";s:7:"largeur";s:1:"0";}s:4:"avis";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"17";s:5:"titre";s:9:"Critiques";s:7:"largeur";s:1:"0";}s:11:"exemplaires";a:4:{s:3:"aff";s:1:"1";s:5:"ordre";s:1:"1";s:5:"titre";s:11:"Exemplaires";s:7:"largeur";s:1:"0";}s:6:"resume";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"4";s:5:"titre";s:9:"Résumés";s:7:"largeur";s:1:"0";}s:4:"tags";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"5";s:5:"titre";s:26:"Rebondir dans le catalogue";s:7:"largeur";s:1:"0";}s:10:"biographie";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"6";s:5:"titre";s:22:"Biographie de l'auteur";s:7:"largeur";s:1:"0";}s:6:"series";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"7";s:5:"titre";s:28:"Documents de la même série";s:7:"largeur";s:1:"0";}s:10:"similaires";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:2:"20";s:5:"titre";s:20:"Documents similaires";s:7:"largeur";s:1:"0";}s:13:"bibliographie";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"9";s:5:"titre";s:12:"Discographie";s:7:"largeur";s:1:"0";}s:8:"morceaux";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"10";s:5:"titre";s:8:"Morceaux";s:7:"largeur";s:1:"0";}s:12:"bandeAnnonce";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"11";s:5:"titre";s:13:"Bande-annonce";s:7:"largeur";s:1:"0";}s:6:"photos";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"12";s:5:"titre";s:6:"Photos";s:7:"largeur";s:1:"0";}s:6:"videos";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"13";s:5:"titre";s:15:"Archives vidéo";s:7:"largeur";s:1:"0";}s:13:"resnumeriques";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"14";s:5:"titre";s:22:"Ressources numériques";s:7:"largeur";s:1:"0";}s:11:"babeltheque";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"15";s:5:"titre";s:12:"Babelthèque";s:7:"largeur";s:1:"0";}s:4:"frbr";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"16";s:5:"titre";s:14:"Notices liées";s:7:"largeur";s:1:"0";}}s:5:"boite";s:0:"";s:4:"xslt";s:0:"";}s:12:"viewnotice12";a:10:{s:9:"barre_nav";s:6:"Notice";s:6:"entete";s:5:"W;N;G";s:9:"analytics";s:0:"";s:15:"analytics_title";s:0:"";s:17:"analytics_authors";s:0:"";s:11:"links_zones";s:0:"";s:16:"thumbnail_fields";s:0:"";s:7:"onglets";a:16:{s:6:"detail";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:1:"2";s:5:"titre";s:14:"en savoir plus";s:7:"largeur";s:1:"0";}s:4:"avis";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"17";s:5:"titre";s:9:"Critiques";s:7:"largeur";s:1:"0";}s:11:"exemplaires";a:4:{s:3:"aff";s:1:"1";s:5:"ordre";s:1:"1";s:5:"titre";s:11:"Exemplaires";s:7:"largeur";s:1:"0";}s:6:"resume";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"4";s:5:"titre";s:9:"Résumés";s:7:"largeur";s:1:"0";}s:4:"tags";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"5";s:5:"titre";s:26:"Rebondir dans le catalogue";s:7:"largeur";s:1:"0";}s:10:"biographie";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"6";s:5:"titre";s:22:"Biographie de l'auteur";s:7:"largeur";s:1:"0";}s:6:"series";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"7";s:5:"titre";s:28:"Documents de la même série";s:7:"largeur";s:1:"0";}s:10:"similaires";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:2:"20";s:5:"titre";s:20:"Documents similaires";s:7:"largeur";s:1:"0";}s:13:"bibliographie";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"9";s:5:"titre";s:12:"Discographie";s:7:"largeur";s:1:"0";}s:8:"morceaux";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"10";s:5:"titre";s:8:"Morceaux";s:7:"largeur";s:1:"0";}s:12:"bandeAnnonce";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"11";s:5:"titre";s:13:"Bande-annonce";s:7:"largeur";s:1:"0";}s:6:"photos";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"12";s:5:"titre";s:6:"Photos";s:7:"largeur";s:1:"0";}s:6:"videos";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"13";s:5:"titre";s:15:"Archives vidéo";s:7:"largeur";s:1:"0";}s:13:"resnumeriques";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"14";s:5:"titre";s:22:"Ressources numériques";s:7:"largeur";s:1:"0";}s:11:"babeltheque";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"15";s:5:"titre";s:12:"Babelthèque";s:7:"largeur";s:1:"0";}s:4:"frbr";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"16";s:5:"titre";s:14:"Notices liées";s:7:"largeur";s:1:"0";}}s:5:"boite";s:0:"";s:4:"xslt";s:0:"";}s:12:"viewnotice14";a:10:{s:9:"barre_nav";s:6:"Notice";s:6:"entete";s:5:"W;N;G";s:9:"analytics";s:0:"";s:15:"analytics_title";s:0:"";s:17:"analytics_authors";s:0:"";s:11:"links_zones";s:0:"";s:16:"thumbnail_fields";s:0:"";s:7:"onglets";a:16:{s:6:"detail";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:1:"2";s:5:"titre";s:14:"en savoir plus";s:7:"largeur";s:1:"0";}s:4:"avis";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"17";s:5:"titre";s:9:"Critiques";s:7:"largeur";s:1:"0";}s:11:"exemplaires";a:4:{s:3:"aff";s:1:"1";s:5:"ordre";s:1:"1";s:5:"titre";s:11:"Exemplaires";s:7:"largeur";s:1:"0";}s:6:"resume";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"4";s:5:"titre";s:9:"Résumés";s:7:"largeur";s:1:"0";}s:4:"tags";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"5";s:5:"titre";s:26:"Rebondir dans le catalogue";s:7:"largeur";s:1:"0";}s:10:"biographie";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"6";s:5:"titre";s:22:"Biographie de l'auteur";s:7:"largeur";s:1:"0";}s:6:"series";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"7";s:5:"titre";s:28:"Documents de la même série";s:7:"largeur";s:1:"0";}s:10:"similaires";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:2:"20";s:5:"titre";s:20:"Documents similaires";s:7:"largeur";s:1:"0";}s:13:"bibliographie";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"9";s:5:"titre";s:12:"Discographie";s:7:"largeur";s:1:"0";}s:8:"morceaux";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"10";s:5:"titre";s:8:"Morceaux";s:7:"largeur";s:1:"0";}s:12:"bandeAnnonce";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"11";s:5:"titre";s:13:"Bande-annonce";s:7:"largeur";s:1:"0";}s:6:"photos";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"12";s:5:"titre";s:6:"Photos";s:7:"largeur";s:1:"0";}s:6:"videos";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"13";s:5:"titre";s:15:"Archives vidéo";s:7:"largeur";s:1:"0";}s:13:"resnumeriques";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"14";s:5:"titre";s:22:"Ressources numériques";s:7:"largeur";s:1:"0";}s:11:"babeltheque";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"15";s:5:"titre";s:12:"Babelthèque";s:7:"largeur";s:1:"0";}s:4:"frbr";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"16";s:5:"titre";s:14:"Notices liées";s:7:"largeur";s:1:"0";}}s:5:"boite";s:0:"";s:4:"xslt";s:0:"";}s:12:"viewnotice17";a:10:{s:9:"barre_nav";s:6:"Notice";s:6:"entete";s:5:"W;N;G";s:9:"analytics";s:0:"";s:15:"analytics_title";s:0:"";s:17:"analytics_authors";s:0:"";s:11:"links_zones";s:0:"";s:16:"thumbnail_fields";s:0:"";s:7:"onglets";a:16:{s:6:"detail";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:1:"2";s:5:"titre";s:14:"en savoir plus";s:7:"largeur";s:1:"0";}s:4:"avis";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"17";s:5:"titre";s:9:"Critiques";s:7:"largeur";s:1:"0";}s:11:"exemplaires";a:4:{s:3:"aff";s:1:"1";s:5:"ordre";s:1:"1";s:5:"titre";s:11:"Exemplaires";s:7:"largeur";s:1:"0";}s:6:"resume";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"4";s:5:"titre";s:9:"Résumés";s:7:"largeur";s:1:"0";}s:4:"tags";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"5";s:5:"titre";s:26:"Rebondir dans le catalogue";s:7:"largeur";s:1:"0";}s:10:"biographie";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"6";s:5:"titre";s:22:"Biographie de l'auteur";s:7:"largeur";s:1:"0";}s:6:"series";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"7";s:5:"titre";s:28:"Documents de la même série";s:7:"largeur";s:1:"0";}s:10:"similaires";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:2:"20";s:5:"titre";s:20:"Documents similaires";s:7:"largeur";s:1:"0";}s:13:"bibliographie";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"9";s:5:"titre";s:12:"Discographie";s:7:"largeur";s:1:"0";}s:8:"morceaux";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"10";s:5:"titre";s:8:"Morceaux";s:7:"largeur";s:1:"0";}s:12:"bandeAnnonce";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"11";s:5:"titre";s:13:"Bande-annonce";s:7:"largeur";s:1:"0";}s:6:"photos";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"12";s:5:"titre";s:6:"Photos";s:7:"largeur";s:1:"0";}s:6:"videos";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"13";s:5:"titre";s:15:"Archives vidéo";s:7:"largeur";s:1:"0";}s:13:"resnumeriques";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"14";s:5:"titre";s:22:"Ressources numériques";s:7:"largeur";s:1:"0";}s:11:"babeltheque";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"15";s:5:"titre";s:12:"Babelthèque";s:7:"largeur";s:1:"0";}s:4:"frbr";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"16";s:5:"titre";s:14:"Notices liées";s:7:"largeur";s:1:"0";}}s:5:"boite";s:0:"";s:4:"xslt";s:0:"";}s:12:"viewnotice11";a:10:{s:9:"barre_nav";s:6:"Notice";s:6:"entete";s:5:"W;N;G";s:9:"analytics";s:0:"";s:15:"analytics_title";s:0:"";s:17:"analytics_authors";s:0:"";s:11:"links_zones";s:0:"";s:16:"thumbnail_fields";s:0:"";s:7:"onglets";a:16:{s:6:"detail";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:1:"2";s:5:"titre";s:14:"en savoir plus";s:7:"largeur";s:1:"0";}s:4:"avis";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"17";s:5:"titre";s:9:"Critiques";s:7:"largeur";s:1:"0";}s:11:"exemplaires";a:4:{s:3:"aff";s:1:"1";s:5:"ordre";s:1:"1";s:5:"titre";s:11:"Exemplaires";s:7:"largeur";s:1:"0";}s:6:"resume";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"4";s:5:"titre";s:9:"Résumés";s:7:"largeur";s:1:"0";}s:4:"tags";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"5";s:5:"titre";s:26:"Rebondir dans le catalogue";s:7:"largeur";s:1:"0";}s:10:"biographie";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"6";s:5:"titre";s:22:"Biographie de l'auteur";s:7:"largeur";s:1:"0";}s:6:"series";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"7";s:5:"titre";s:28:"Documents de la même série";s:7:"largeur";s:1:"0";}s:10:"similaires";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:2:"20";s:5:"titre";s:20:"Documents similaires";s:7:"largeur";s:1:"0";}s:13:"bibliographie";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"9";s:5:"titre";s:12:"Discographie";s:7:"largeur";s:1:"0";}s:8:"morceaux";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"10";s:5:"titre";s:8:"Morceaux";s:7:"largeur";s:1:"0";}s:12:"bandeAnnonce";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"11";s:5:"titre";s:13:"Bande-annonce";s:7:"largeur";s:1:"0";}s:6:"photos";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"12";s:5:"titre";s:6:"Photos";s:7:"largeur";s:1:"0";}s:6:"videos";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"13";s:5:"titre";s:15:"Archives vidéo";s:7:"largeur";s:1:"0";}s:13:"resnumeriques";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"14";s:5:"titre";s:22:"Ressources numériques";s:7:"largeur";s:1:"0";}s:11:"babeltheque";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"15";s:5:"titre";s:12:"Babelthèque";s:7:"largeur";s:1:"0";}s:4:"frbr";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"16";s:5:"titre";s:14:"Notices liées";s:7:"largeur";s:1:"0";}}s:5:"boite";s:0:"";s:4:"xslt";s:0:"";}s:12:"viewnotice13";a:10:{s:9:"barre_nav";s:6:"Notice";s:6:"entete";s:5:"W;N;G";s:9:"analytics";s:0:"";s:15:"analytics_title";s:0:"";s:17:"analytics_authors";s:0:"";s:11:"links_zones";s:0:"";s:16:"thumbnail_fields";s:0:"";s:7:"onglets";a:16:{s:6:"detail";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:1:"2";s:5:"titre";s:14:"en savoir plus";s:7:"largeur";s:1:"0";}s:4:"avis";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"17";s:5:"titre";s:9:"Critiques";s:7:"largeur";s:1:"0";}s:11:"exemplaires";a:4:{s:3:"aff";s:1:"1";s:5:"ordre";s:1:"1";s:5:"titre";s:11:"Exemplaires";s:7:"largeur";s:1:"0";}s:6:"resume";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"4";s:5:"titre";s:9:"Résumés";s:7:"largeur";s:1:"0";}s:4:"tags";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"5";s:5:"titre";s:26:"Rebondir dans le catalogue";s:7:"largeur";s:1:"0";}s:10:"biographie";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"6";s:5:"titre";s:22:"Biographie de l'auteur";s:7:"largeur";s:1:"0";}s:6:"series";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"7";s:5:"titre";s:28:"Documents de la même série";s:7:"largeur";s:1:"0";}s:10:"similaires";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:2:"20";s:5:"titre";s:20:"Documents similaires";s:7:"largeur";s:1:"0";}s:13:"bibliographie";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"9";s:5:"titre";s:12:"Discographie";s:7:"largeur";s:1:"0";}s:8:"morceaux";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"10";s:5:"titre";s:8:"Morceaux";s:7:"largeur";s:1:"0";}s:12:"bandeAnnonce";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"11";s:5:"titre";s:13:"Bande-annonce";s:7:"largeur";s:1:"0";}s:6:"photos";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"12";s:5:"titre";s:6:"Photos";s:7:"largeur";s:1:"0";}s:6:"videos";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"13";s:5:"titre";s:15:"Archives vidéo";s:7:"largeur";s:1:"0";}s:13:"resnumeriques";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"14";s:5:"titre";s:22:"Ressources numériques";s:7:"largeur";s:1:"0";}s:11:"babeltheque";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"15";s:5:"titre";s:12:"Babelthèque";s:7:"largeur";s:1:"0";}s:4:"frbr";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"16";s:5:"titre";s:14:"Notices liées";s:7:"largeur";s:1:"0";}}s:5:"boite";s:0:"";s:4:"xslt";s:0:"";}s:12:"viewnotice15";a:10:{s:9:"barre_nav";s:6:"Notice";s:6:"entete";s:5:"W;N;G";s:9:"analytics";s:0:"";s:15:"analytics_title";s:0:"";s:17:"analytics_authors";s:0:"";s:11:"links_zones";s:0:"";s:16:"thumbnail_fields";s:0:"";s:7:"onglets";a:16:{s:6:"detail";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:1:"2";s:5:"titre";s:14:"en savoir plus";s:7:"largeur";s:1:"0";}s:4:"avis";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"17";s:5:"titre";s:9:"Critiques";s:7:"largeur";s:1:"0";}s:11:"exemplaires";a:4:{s:3:"aff";s:1:"1";s:5:"ordre";s:1:"1";s:5:"titre";s:11:"Exemplaires";s:7:"largeur";s:1:"0";}s:6:"resume";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"4";s:5:"titre";s:9:"Résumés";s:7:"largeur";s:1:"0";}s:4:"tags";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"5";s:5:"titre";s:26:"Rebondir dans le catalogue";s:7:"largeur";s:1:"0";}s:10:"biographie";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"6";s:5:"titre";s:22:"Biographie de l'auteur";s:7:"largeur";s:1:"0";}s:6:"series";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"7";s:5:"titre";s:28:"Documents de la même série";s:7:"largeur";s:1:"0";}s:10:"similaires";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:2:"20";s:5:"titre";s:20:"Documents similaires";s:7:"largeur";s:1:"0";}s:13:"bibliographie";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"9";s:5:"titre";s:12:"Discographie";s:7:"largeur";s:1:"0";}s:8:"morceaux";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"10";s:5:"titre";s:8:"Morceaux";s:7:"largeur";s:1:"0";}s:12:"bandeAnnonce";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"11";s:5:"titre";s:13:"Bande-annonce";s:7:"largeur";s:1:"0";}s:6:"photos";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"12";s:5:"titre";s:6:"Photos";s:7:"largeur";s:1:"0";}s:6:"videos";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"13";s:5:"titre";s:15:"Archives vidéo";s:7:"largeur";s:1:"0";}s:13:"resnumeriques";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"14";s:5:"titre";s:22:"Ressources numériques";s:7:"largeur";s:1:"0";}s:11:"babeltheque";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"15";s:5:"titre";s:12:"Babelthèque";s:7:"largeur";s:1:"0";}s:4:"frbr";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"16";s:5:"titre";s:14:"Notices liées";s:7:"largeur";s:1:"0";}}s:5:"boite";s:0:"";s:4:"xslt";s:0:"";}s:23:"viewnoticeToutApprendre";a:10:{s:9:"barre_nav";s:6:"Notice";s:6:"entete";s:5:"W;C;N";s:9:"analytics";s:0:"";s:15:"analytics_title";s:0:"";s:17:"analytics_authors";s:0:"";s:11:"links_zones";s:0:"";s:16:"thumbnail_fields";s:5:"959-u";s:7:"onglets";a:17:{s:6:"detail";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:1:"1";s:5:"titre";s:23:"Description du document";s:7:"largeur";s:1:"0";}s:4:"avis";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"2";s:5:"titre";s:9:"Critiques";s:7:"largeur";s:1:"0";}s:11:"exemplaires";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"3";s:5:"titre";s:11:"Exemplaires";s:7:"largeur";s:1:"0";}s:6:"resume";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"4";s:5:"titre";s:9:"Résumés";s:7:"largeur";s:1:"0";}s:4:"tags";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"5";s:5:"titre";s:26:"Rebondir dans le catalogue";s:7:"largeur";s:1:"0";}s:10:"biographie";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"6";s:5:"titre";s:22:"Biographie de l'auteur";s:7:"largeur";s:1:"0";}s:6:"series";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"7";s:5:"titre";s:28:"Documents de la même série";s:7:"largeur";s:1:"0";}s:10:"similaires";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"8";s:5:"titre";s:20:"Documents similaires";s:7:"largeur";s:1:"0";}s:13:"bibliographie";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"9";s:5:"titre";s:12:"Discographie";s:7:"largeur";s:1:"0";}s:8:"morceaux";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"10";s:5:"titre";s:8:"Morceaux";s:7:"largeur";s:1:"0";}s:12:"bandeAnnonce";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"11";s:5:"titre";s:13:"Bande-annonce";s:7:"largeur";s:1:"0";}s:6:"photos";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"12";s:5:"titre";s:6:"Photos";s:7:"largeur";s:1:"0";}s:6:"videos";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"13";s:5:"titre";s:15:"Archives vidéo";s:7:"largeur";s:1:"0";}s:13:"resnumeriques";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"1";s:5:"titre";s:22:"Ressources numériques";s:7:"largeur";s:1:"0";}s:11:"babeltheque";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"15";s:5:"titre";s:12:"Babelthèque";s:7:"largeur";s:1:"0";}s:4:"frbr";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"16";s:5:"titre";s:14:"Notices liées";s:7:"largeur";s:1:"0";}s:8:"recounts";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"17";s:5:"titre";s:8:"Contient";s:7:"largeur";s:1:"0";}}s:5:"boite";s:0:"";s:4:"xslt";s:0:"";}s:12:"viewnotice18";a:10:{s:9:"barre_nav";s:6:"Notice";s:5:"boite";s:0:"";s:6:"entete";s:5:"W;N;G";s:9:"analytics";s:0:"";s:15:"analytics_title";s:0:"";s:17:"analytics_authors";s:0:"";s:11:"links_zones";s:0:"";s:16:"thumbnail_fields";s:0:"";s:7:"onglets";a:17:{s:6:"detail";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:1:"2";s:5:"titre";s:14:"en savoir plus";s:7:"largeur";s:1:"0";}s:4:"avis";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"17";s:5:"titre";s:9:"Critiques";s:7:"largeur";s:1:"0";}s:11:"exemplaires";a:4:{s:3:"aff";s:1:"1";s:5:"ordre";s:1:"1";s:5:"titre";s:11:"Exemplaires";s:7:"largeur";s:1:"0";}s:6:"resume";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"4";s:5:"titre";s:9:"Résumés";s:7:"largeur";s:1:"0";}s:4:"tags";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"5";s:5:"titre";s:26:"Rebondir dans le catalogue";s:7:"largeur";s:1:"0";}s:10:"biographie";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"6";s:5:"titre";s:22:"Biographie de l'auteur";s:7:"largeur";s:1:"0";}s:6:"series";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"7";s:5:"titre";s:28:"Documents de la même série";s:7:"largeur";s:1:"0";}s:10:"similaires";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:2:"20";s:5:"titre";s:20:"Documents similaires";s:7:"largeur";s:1:"0";}s:13:"bibliographie";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"9";s:5:"titre";s:12:"Discographie";s:7:"largeur";s:1:"0";}s:8:"morceaux";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"10";s:5:"titre";s:8:"Morceaux";s:7:"largeur";s:1:"0";}s:12:"bandeAnnonce";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"11";s:5:"titre";s:13:"Bande-annonce";s:7:"largeur";s:1:"0";}s:6:"photos";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"12";s:5:"titre";s:6:"Photos";s:7:"largeur";s:1:"0";}s:6:"videos";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"13";s:5:"titre";s:15:"Archives vidéo";s:7:"largeur";s:1:"0";}s:13:"resnumeriques";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"14";s:5:"titre";s:22:"Ressources numériques";s:7:"largeur";s:1:"0";}s:11:"babeltheque";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"15";s:5:"titre";s:12:"Babelthèque";s:7:"largeur";s:1:"0";}s:4:"frbr";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"16";s:5:"titre";s:14:"Notices liées";s:7:"largeur";s:1:"0";}s:8:"recounts";a:4:{s:5:"titre";s:0:"";s:3:"aff";s:1:"2";s:5:"ordre";s:2:"17";s:7:"largeur";s:1:"0";}}s:4:"xslt";s:0:"";}s:11:"viewnotice6";a:10:{s:9:"barre_nav";s:6:"Notice";s:5:"boite";s:0:"";s:6:"entete";s:5:"W;N;G";s:9:"analytics";s:0:"";s:15:"analytics_title";s:0:"";s:17:"analytics_authors";s:0:"";s:11:"links_zones";s:0:"";s:16:"thumbnail_fields";s:0:"";s:7:"onglets";a:17:{s:6:"detail";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:1:"2";s:5:"titre";s:14:"en savoir plus";s:7:"largeur";s:1:"0";}s:4:"avis";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"17";s:5:"titre";s:9:"Critiques";s:7:"largeur";s:1:"0";}s:11:"exemplaires";a:4:{s:3:"aff";s:1:"1";s:5:"ordre";s:1:"1";s:5:"titre";s:11:"Exemplaires";s:7:"largeur";s:1:"0";}s:6:"resume";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"4";s:5:"titre";s:9:"Résumés";s:7:"largeur";s:1:"0";}s:4:"tags";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"5";s:5:"titre";s:26:"Rebondir dans le catalogue";s:7:"largeur";s:1:"0";}s:10:"biographie";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:1:"6";s:5:"titre";s:22:"Biographie de l'auteur";s:7:"largeur";s:1:"0";}s:6:"series";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"7";s:5:"titre";s:28:"Documents de la même série";s:7:"largeur";s:1:"0";}s:10:"similaires";a:4:{s:3:"aff";s:1:"2";s:5:"ordre";s:2:"20";s:5:"titre";s:20:"Documents similaires";s:7:"largeur";s:1:"0";}s:13:"bibliographie";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:1:"9";s:5:"titre";s:12:"Discographie";s:7:"largeur";s:1:"0";}s:8:"morceaux";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"10";s:5:"titre";s:8:"Morceaux";s:7:"largeur";s:1:"0";}s:12:"bandeAnnonce";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"11";s:5:"titre";s:13:"Bande-annonce";s:7:"largeur";s:1:"0";}s:6:"photos";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"12";s:5:"titre";s:6:"Photos";s:7:"largeur";s:1:"0";}s:6:"videos";a:4:{s:3:"aff";s:1:"3";s:5:"ordre";s:2:"13";s:5:"titre";s:15:"Archives vidéo";s:7:"largeur";s:1:"0";}s:13:"resnumeriques";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"14";s:5:"titre";s:22:"Ressources numériques";s:7:"largeur";s:1:"0";}s:11:"babeltheque";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"15";s:5:"titre";s:12:"Babelthèque";s:7:"largeur";s:1:"0";}s:4:"frbr";a:4:{s:3:"aff";s:1:"0";s:5:"ordre";s:2:"16";s:5:"titre";s:14:"Notices liées";s:7:"largeur";s:1:"0";}s:8:"recounts";a:4:{s:5:"titre";s:0:"";s:3:"aff";s:1:"2";s:5:"ordre";s:2:"17";s:7:"largeur";s:1:"0";}}s:4:"xslt";s:0:"";}}} diff --git a/tests/application/modules/telephone/controllers/RechercheControllerTest.php b/tests/application/modules/telephone/controllers/RechercheControllerTest.php index d2bdced0ced16caa444babdb854c4c4d3feae4e2..7f8e881b88758d8c68a8b2f3546e162ad7fcb1eb 100644 --- a/tests/application/modules/telephone/controllers/RechercheControllerTest.php +++ b/tests/application/modules/telephone/controllers/RechercheControllerTest.php @@ -113,16 +113,25 @@ class Telephone_RechercheControllerSimpleByPertinenceActionTest extends Telephon class Telephone_RechercheControllerBibliothequeActionTest extends TelephoneAbstractControllerTestCase { + protected $_bib; + public function setUp() { parent::setUp(); - Class_Bib::getLoader()->newInstanceWithId(34) + + $this->_bib = Class_Bib::getLoader() + ->newInstanceWithId(34) ->setLibelle('La turbine') ->setAdresse('5 av. des Harmonies') ->setCp('74960') ->setVille('Cran-Gevrier') ->setTelephone('04 50 50 50 50') - ->setMail('turbine@bib.com') - ->setHoraire(urlencode('Tous les jours')); + ->setMail('turbine@bib.com'); + + $this->fixture('Class_Ouverture', + ['id' => 1, + 'id_site' => 34, + 'jour_semaine' => Class_Ouverture::LUNDI, + 'label' => 'D\'habitude']); $this->dispatch('/telephone/recherche/bibliotheque/id/34', true); } @@ -164,8 +173,48 @@ class Telephone_RechercheControllerBibliothequeActionTest extends TelephoneAbstr /** @test */ - public function pageShouldContainHoraires() { - $this->assertXPathContentContains('//li', 'Tous les jours'); + public function withOuvertureShouldContainDefaultOpening() { + $this->assertXPathContentContains('//li', 'D\'habitude'); + } +} + + + +class Telephone_RechercheControllerBibliothequeOpeningsTest extends TelephoneAbstractControllerTestCase { + protected $_bib; + + public function setUp() { + parent::setUp(); + + $this->_bib = Class_Bib::getLoader() + ->newInstanceWithId(34) + ->setLibelle('La turbine') + ->setAdresse('5 av. des Harmonies') + ->setCp('74960') + ->setVille('Cran-Gevrier') + ->setTelephone('04 50 50 50 50') + ->setMail('turbine@bib.com') + ->setHoraire('Exceptionnel'); + + $this->fixture('Class_Ouverture', + ['id' => 1, + 'id_site' => 34, + 'jour_semaine' => Class_Ouverture::LUNDI, + 'label' => 'D\'habitude']); + + $this->dispatch('/telephone/recherche/bibliotheque/id/34', true); + } + + + /** @test */ + public function shouldContainHoraireExceptionnel() { + $this->assertXPathContentContains('//li', 'Exceptionnel'); + } + + + /** @test */ + public function shouldNotContainOpenings() { + $this->assertNotXPathContentContains('//li', 'D\'habitude'); } } diff --git a/tests/library/Class/ArteVodLinkTest.php b/tests/library/Class/ArteVodLinkTest.php index 21be0b9554cc035810057807f84379f9e943de24..566fc8feaf5a8282fef7cedd0cd57ab57027aa99 100644 --- a/tests/library/Class/ArteVodLinkTest.php +++ b/tests/library/Class/ArteVodLinkTest.php @@ -22,10 +22,7 @@ class ArteVodLinkBaseUrlWithoutAlbumTest extends ModelTestCase { public function setUp() { - $this->fixture('Class_AdminVar', - ['id' => 'ARTE_VOD_LOGIN', - 'valeur' => 'miiop' - ]); + Class_AdminVar::set('ARTE_VOD_LOGIN', 'miiop'); $this->_arte_vod_link = new Class_ArteVodLink(); } @@ -40,8 +37,10 @@ class ArteVodLinkBaseUrlWithoutAlbumTest extends ModelTestCase { class ArteVodLinkWithUserAndAlbumTest extends ModelTestCase { - protected $_james_bond; - protected $_arte_vod_link; + protected + $_sso_key = 'secret', + $_james_bond, + $_arte_vod_link; public function setUp() { parent::setUp(); @@ -57,27 +56,27 @@ class ArteVodLinkWithUserAndAlbumTest extends ModelTestCase { ->setMail('jbond@007.fr') ->setDateFin('2023-09-12'); + Class_AdminVar::set('ARTE_VOD_SSO_KEY', $this->_sso_key); + $this->_arte_vod_link = Class_ArteVodLink::forAlbumAndUser($entre_les_murs, $this->_james_bond); } /** @test */ - public function baseUrlForBondShouldBeMediathequeNumeriqueDotCom() { + public function baseUrlForBondShouldBeMediathequeNumeriqueDotComFilmEntreLesMurs() { $this->assertEquals('http://www.mediatheque-numerique.com/films/entre-les-murs', $this->_arte_vod_link->baseUrl()); } /** @test */ - public function withKeySECRETUrlShouldContainsEncryptedDate() { - Class_AdminVar::newInstanceWithId('ARTE_VOD_SSO_KEY')->setValeur('GOGO'); - + public function withKeyUrlShouldContainsEncryptedDate() { $this->assertEquals('https://portal.mediatheque-numerique.com/sso_login' .'?sso_id=afi' .'&id=45' - .'&id_encrypted='. hash('sha256', '45GOGO') - .'&d='. hash('sha256', date('dmY').'GOGO') + .'&id_encrypted='. hash('sha256', '45' . $this->_sso_key) + .'&d='. hash('sha256', date('dmY') . $this->_sso_key) .'&prenom=James' .'&nom=Bond' .'&email='.urlencode('jbond@007.fr') @@ -90,8 +89,6 @@ class ArteVodLinkWithUserAndAlbumTest extends ModelTestCase { /** @test */ public function userWithoutNomEmailAndPrenomUrlSSOShouldNotContainsNomEmailPrenom() { - Class_AdminVar::newInstanceWithId('ARTE_VOD_SSO_KEY')->setValeur('secret'); - $this->_james_bond ->setPrenom('') ->setNom('') @@ -100,8 +97,8 @@ class ArteVodLinkWithUserAndAlbumTest extends ModelTestCase { $this->assertEquals('https://portal.mediatheque-numerique.com/sso_login' .'?sso_id=afi' .'&id=45' - .'&id_encrypted='. hash('sha256', '45secret') - .'&d='. hash('sha256', date('dmY').'secret') + .'&id_encrypted='. hash('sha256', '45' . $this->_sso_key) + .'&d='. hash('sha256', date('dmY'). $this->_sso_key) .'&datout=2023-09-12' .'&return_url=' . urlencode('http://www.mediatheque-numerique.com/films/entre-les-murs'), $this->_arte_vod_link->url()); @@ -110,8 +107,6 @@ class ArteVodLinkWithUserAndAlbumTest extends ModelTestCase { /** @test */ public function userInviteShouldHaveUserIdInSSOLink() { - Class_AdminVar::newInstanceWithId('ARTE_VOD_SSO_KEY')->setValeur('secret'); - $this->_james_bond ->setPrenom('') ->setNom('') @@ -123,19 +118,16 @@ class ArteVodLinkWithUserAndAlbumTest extends ModelTestCase { $this->assertEquals('https://portal.mediatheque-numerique.com/sso_login' .'?sso_id=afi' .'&id=19' - .'&id_encrypted='. hash('sha256', '19secret') - .'&d='. hash('sha256', date('dmY').'secret') + .'&id_encrypted='. hash('sha256', '19' . $this->_sso_key) + .'&d='. hash('sha256', date('dmY') . $this->_sso_key) .'&return_url=' . urlencode('http://www.mediatheque-numerique.com/films/entre-les-murs'), $this->_arte_vod_link->url()); } - /** @test */ public function userWithDateNaissanceShouldContainsDnaissInUrl() { - Class_AdminVar::newInstanceWithId('ARTE_VOD_SSO_KEY')->setValeur('secret'); - $this->_james_bond ->setPrenom('') ->setNom('') @@ -146,8 +138,8 @@ class ArteVodLinkWithUserAndAlbumTest extends ModelTestCase { $this->assertEquals('https://portal.mediatheque-numerique.com/sso_login' .'?sso_id=afi' .'&id=45' - .'&id_encrypted='. hash('sha256', '45secret') - .'&d='. hash('sha256', date('dmY').'secret') + .'&id_encrypted='. hash('sha256', '45' . $this->_sso_key) + .'&d='. hash('sha256', date('dmY') . $this->_sso_key) .'&dnaiss=1975-01-01' .'&return_url=' . urlencode('http://www.mediatheque-numerique.com/films/entre-les-murs'), diff --git a/tests/library/Class/File/MimeTest.php b/tests/library/Class/File/MimeTest.php index 9ee77a4b1b1f204c77294f4b570304e3aa4625fb..92fd9b30b788889ed243ad8ad354a75b04b20200 100644 --- a/tests/library/Class/File/MimeTest.php +++ b/tests/library/Class/File/MimeTest.php @@ -16,7 +16,7 @@ * * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE * along with BOKEH; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ class MimeTest extends PHPUnit_Framework_TestCase { @@ -31,4 +31,10 @@ class MimeTest extends PHPUnit_Framework_TestCase { $this->assertEquals('application/javascript', Class_File_Mime::getType('js')); } + + /** @test */ + public function typeOfJPGShouldBeImageJpg() { + $this->assertEquals('image/jpeg', Class_File_Mime::getType('JPG')); + } + } \ No newline at end of file diff --git a/tests/library/Class/WebService/ArteVODTest.php b/tests/library/Class/WebService/ArteVODTest.php index 2279151d955bc3a053e0a97872ad94199c6fa3b9..a2961322ca9701a5bbf30ecae5d1f0ff221b9d1a 100644 --- a/tests/library/Class/WebService/ArteVODTest.php +++ b/tests/library/Class/WebService/ArteVODTest.php @@ -24,7 +24,6 @@ require_once 'ArteVODFixtures.php'; abstract class ArteVODHarverstingTestCase extends ModelTestCase { protected $_web_client; - protected $_storm_default_to_volatile = true; public function setUp() { parent::setUp(); @@ -32,7 +31,6 @@ abstract class ArteVODHarverstingTestCase extends ModelTestCase { $this->fixture('Class_CosmoVar', ['id' => 'types_docs', 'liste' => "1:cd\r\n200:non identifié\r\n201:livres\r\n202:bd"]); - Class_AdminVar::set('ARTE_VOD', '1'); Class_AdminVar::set('ARTE_VOD_LOGIN', 'user'); Class_AdminVar::set('ARTE_VOD_KEY', 'pass'); @@ -217,3 +215,73 @@ class ArteVODHarverstingFourFilmsInTwoPages extends ArteVODHarverstingTestCase { $this->assertNotEquals(null, $this->edouard->addAuthor('Cibien, Laurent', '005')); } } + + + + +class ArteVODHarvestingWithoutPasswordTest extends ArteVODHarverstingTestCase { + public function setUp() { + parent::setUp(); + + Class_AdminVar::set('ARTE_VOD_KEY', ''); + + $this->_web_client + ->whenCalled('open_url') + ->with('https://vod.mediatheque-numerique.com/api/v1/films?page_nb=1') + ->answers(ArteVODFixtures::emptyPage()); + + $this->_web_client->beStrict(); + + (new Class_WebService_BibNumerique_ArteVOD())->harvest(); + } + + + /** @test */ + public function shouldHaveHarvestedWithoutAuth() { + $this->assertTrue($this->_web_client->methodHasBeenCalled('open_url')); + } +} + + + + +class ArteVODHarverstingEnablingTest extends ArteVODHarverstingTestCase { + /** @test */ + public function withAllShouldBeEnabled() { + Class_AdminVar::set('ARTE_VOD_LOGIN', 'user'); + Class_AdminVar::set('ARTE_VOD_KEY', 'pass'); + Class_AdminVar::set('ARTE_VOD_SSO_KEY', 'key'); + + $this->assertTrue((new Class_WebService_BibNumerique_ArteVOD())->isEnabled()); + } + + + /** @test */ + public function withoutLoginShouldNotBeEnabled() { + Class_AdminVar::set('ARTE_VOD_LOGIN', ''); + Class_AdminVar::set('ARTE_VOD_KEY', 'pass'); + Class_AdminVar::set('ARTE_VOD_SSO_KEY', 'key'); + + $this->assertFalse((new Class_WebService_BibNumerique_ArteVOD())->isEnabled()); + } + + + /** @test */ + public function withoutHarvestKeyShouldBeEnabled() { + Class_AdminVar::set('ARTE_VOD_LOGIN', 'user'); + Class_AdminVar::set('ARTE_VOD_KEY', ''); + Class_AdminVar::set('ARTE_VOD_SSO_KEY', 'key'); + + $this->assertTrue((new Class_WebService_BibNumerique_ArteVOD())->isEnabled()); + } + + + /** @test */ + public function withoutSSOKeyShouldNotBeEnabled() { + Class_AdminVar::set('ARTE_VOD_LOGIN', 'user'); + Class_AdminVar::set('ARTE_VOD_KEY', 'pass'); + Class_AdminVar::set('ARTE_VOD_SSO_KEY', ''); + + $this->assertFalse((new Class_WebService_BibNumerique_ArteVOD())->isEnabled()); + } +} \ No newline at end of file diff --git a/tests/library/ZendAfi/View/Helper/Abonne/AbonnementTest.php b/tests/library/ZendAfi/View/Helper/Abonne/AbonnementTest.php index f7950c99748ce7535d247d0493e796de2af3a302..023c743fa742119df5f74c611dc3f3a6ba1d5a3a 100644 --- a/tests/library/ZendAfi/View/Helper/Abonne/AbonnementTest.php +++ b/tests/library/ZendAfi/View/Helper/Abonne/AbonnementTest.php @@ -16,7 +16,7 @@ * * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE * along with BOKEH; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ require_once 'library/ZendAfi/View/Helper/ViewHelperTestCase.php'; @@ -44,7 +44,7 @@ class View_Helper_Abonne_AbonnementTest extends ViewHelperTestCase { public function userDateFinAbonnementShouldReturnAbonnementValid() { $this->assertXPathContentContains($this->_helper->abonne_abonnement(Class_Users::newInstanceWithId(3) ->beAbonneSIGB() - ->setDateFin('2019-08-19')), + ->setDateFin('2050-08-19')), '//div[@class="abonnement"]', 'Votre abonnement est valide'); } diff --git a/tests/library/ZendAfi/View/Helper/Notice/VignetteTest.php b/tests/library/ZendAfi/View/Helper/Notice/VignetteTest.php index 2ac8be2e7c1bbd8f75b5726bcd9f920674000c8b..0cf3af2b289e392ac1a23275a45cd33c998bf4e3 100644 --- a/tests/library/ZendAfi/View/Helper/Notice/VignetteTest.php +++ b/tests/library/ZendAfi/View/Helper/Notice/VignetteTest.php @@ -68,6 +68,25 @@ class ZendAfi_View_Helper_Notice_VignetteNoThumbnailTest } + protected function _setupRecordOtherWayWithThumbnailUrl($thumbnail_url) { + $cfg_modules = Class_Profil::getCurrentProfil()->getCfgModulesAsArray(); + $cfg_modules + ['recherche'] + ['viewnotice1'] = ['thumbnail_fields' => '859-u']; + + if(Class_Profil::getCurrentProfil()->setCfgModules($cfg_modules)->save()) + return $this + ->fixture('Class_Notice', + ['id' => 42, + 'type_doc' => 1, + 'titre_principal' => 'Never Giveup', + 'url_vignette' => Class_WebService_Vignette::NO_DATA, + 'url_image' => Class_WebService_Vignette::NO_DATA, + ]) + ->set_subfield('859', 'u', $thumbnail_url); + } + + /** @test */ public function withThumbnailZoneAndUrlInUnimarcViewnoticeShouldContainsThumbnail() { $record = $this->_setupRecordWithThumbnailUrl('https://epicpics.org/7bxDlg.png'); @@ -76,6 +95,14 @@ class ZendAfi_View_Helper_Notice_VignetteNoThumbnailTest } + /** @test */ + public function withThumbnailZoneAndUrlInUnimarcAndOtherWayToSaveProfilViewnoticeShouldContainsThumbnail() { + $record = $this->_setupRecordOtherWayWithThumbnailUrl('https://epicpics.org/7bxDlg.png'); + $html = $this->_helper->notice_Vignette($record, [], ZendAfi_View_Helper_Notice_Vignette::MODE_VIEW); + $this->assertXPath($html, '//img[@src="https://epicpics.org/7bxDlg.png"]', $html); + } + + public function invalidThumbnailUrls() { return [ ['https://bloub.org/7364?zork=glub'], @@ -126,4 +153,4 @@ class ZendAfi_View_Helper_Notice_VignetteNoThumbnailTest $html = $this->_helper->notice_Vignette($record); $this->assertXPath($html, '//img[contains(@src, "/recherche/vignette/clef/")]', $html); } -} +} \ No newline at end of file