diff --git a/VERSIONS_WIP/13442 b/VERSIONS_WIP/13442 new file mode 100644 index 0000000000000000000000000000000000000000..6877598328eee249dbec3cc3d1743e2dff207791 --- /dev/null +++ b/VERSIONS_WIP/13442 @@ -0,0 +1 @@ + - ticket #13442 : Bibliothèque numérique: moissonnage des notices de la Cité de la Musique \ No newline at end of file diff --git a/application/modules/admin/views/scripts/album/album-form.phtml b/application/modules/admin/views/scripts/album/album-form.phtml index c148858b5f26e3bc0c0cacc3fcc37435a8c8dd79..7e6803df84482de928eb5adb472923165ee721cd 100644 --- a/application/modules/admin/views/scripts/album/album-form.phtml +++ b/application/modules/admin/views/scripts/album/album-form.phtml @@ -1,25 +1,38 @@ <?php if (!$this->album->isNew()) - echo $this->partial('album/_album_panel.phtml', - array('album' => $this->album)); + echo $this->partial('album/_album_panel.phtml', ['album' => $this->album]); -if ($this->album->hasErrors()) { - echo $this->htmlList($this->album->getErrors(), false, array('class' => 'errors')); -} +if ($this->album->hasErrors()) + echo $this->htmlList($this->album->getErrors(), false, ['class' => 'errors']); if (!$this->album->isNew()) { - echo '<dl class="info">'; - echo sprintf('<dt>Dernière modification:</dt><dd>%s</dd>', - $this->humanDate($this->album->getDateMaj())); + $dt_render = function($term, $definition) { + return $this->tag('dt', $term) . $this->tag('dd', $definition); + }; + + $link_render = function($label, $link) use ($dt_render){ + return $dt_render($label, + $this->tag('input', null, ['value' => $link, + 'class' => 'permalink', + 'readonly' => 'true', + 'size' => '80'])); + }; + + echo $this->tag('dl', + $dt_render($this->_('Dernière modification :'), + $this->humanDate($this->album->getDateMaj())) - echo sprintf('<dt>Permalien:</dt><dd><input class="permalink" value="%s" readonly="true" size="80"/></dd>', - $this->absoluteUrl($this->album->getPermalink(), null, true)); + . $link_render($this->_('Permalien :'), + $this->absoluteUrl($this->album->getPermalink(), null, true)) - echo sprintf('<dt>Permalien vignette:</dt><dd><input class="permalink" value="%s" readonly="true" size="80"/></dd>', - $this->absoluteUrl($this->album->getPermalinkThumbnail(), null, true)); - echo '</dl><div class="clear"/>'; + . $link_render($this->_('Permalien vignette :'), + $this->absoluteUrl($this->album->getPermalinkThumbnail(), null, true)) + + . (($external = $this->album->getExternalUri()) ? $dt_render($this->_('Url externe : '), + $this->tag('a', $external, ['href' => $external, 'target' => '_blank'])) : ''), + ['class' => 'info']) + + . $this->tag('div', null, ['class' => 'clear']); } echo $this->renderForm($this->form); - -?> \ No newline at end of file diff --git a/application/modules/opac/controllers/ModulesController.php b/application/modules/opac/controllers/ModulesController.php index ed6f8f0fd7e6397c903aebe4ae1934727a6acc4b..ae670fa72349f5b3a9a65a464fa83dfe0a542fd8 100644 --- a/application/modules/opac/controllers/ModulesController.php +++ b/application/modules/opac/controllers/ModulesController.php @@ -28,7 +28,8 @@ class ModulesController extends Zend_Controller_Action { 'mycow' => 'MyCow', 'planetnemo' => 'PlanetNemo', 'kidilangues' => 'Kidilangues', - 'orthodidacte' => 'Orthodidacte']; + 'orthodidacte' => 'Orthodidacte', + 'cite-de-la-musique' => 'CiteDeLaMusique']; $action = $this->_request->getActionName(); if (array_key_exists($action, $mapping)) diff --git a/cosmogramme/php/_init.php b/cosmogramme/php/_init.php index 41fc40f2dc7f4a878e45e92d1703d829a2d56d15..7f07dd18b444bc4b1080a1348dc9602ed2e5e883 100644 --- a/cosmogramme/php/_init.php +++ b/cosmogramme/php/_init.php @@ -1,7 +1,7 @@ <?php error_reporting(E_ERROR | E_PARSE); -define("PATCH_LEVEL","303"); +define("PATCH_LEVEL","304"); define("APPLI","cosmogramme"); define("COSMOPATH", "/var/www/html/vhosts/opac2/www/htdocs"); diff --git a/cosmogramme/sql/patch/patch_304.php b/cosmogramme/sql/patch/patch_304.php new file mode 100644 index 0000000000000000000000000000000000000000..5f9b9a7ffd5163496ab1745a2108f60559e37a28 --- /dev/null +++ b/cosmogramme/sql/patch/patch_304.php @@ -0,0 +1,5 @@ +<?php +//try { + Zend_Db_Table_Abstract::getDefaultAdapter() + ->query('alter table user_groups MODIFY rights_token bigint;'); +//} catch(Exception $e) {} diff --git a/library/Class/AdminVar.php b/library/Class/AdminVar.php index d46c525fac13ca274913bafe5c687efa8eed0346..9ea4859f0c0d00a2698f2fb0b1d274277b461f91 100644 --- a/library/Class/AdminVar.php +++ b/library/Class/AdminVar.php @@ -264,6 +264,9 @@ class Class_AdminVarLoader extends Storm_Model_Loader { 'multioptions' => (new Class_OneDTouchLink())->getVersionOptions()]]])->bePrivate(), 'ONEDTOUCH_ID' => Class_AdminVar_Meta::newDefault($this->_('Identifiant du portail chez 1D touch'))->bePrivate(), + 'CITEDELAMUSIQUE' => Class_AdminVar_Meta::newDefault($this->_('Adresse du serveur OAI Cité de la Musique'))->bePrivate(), + 'CITEDELAMUSIQUE_ID' => Class_AdminVar_Meta::newDefault($this->_('Identifiant d\'accès au serveur OAI Cité de la Musique'))->bePrivate(), + 'CITEDELAMUSIQUE_SETS' => Class_AdminVar_Meta::newMultiInput($this->_('Sets du serveur OAI Cité de la Musique à moissonner'))->bePrivate(), 'ORPHEA_URL' => Class_AdminVar_Meta::newDefault($this->_('Adresse du serveur Orphea'))->bePrivate(), 'ORPHEA_USERNAME' => Class_AdminVar_Meta::newDefault($this->_('Nom de l\'utilisateur Orphea'))->bePrivate(), @@ -485,6 +488,14 @@ class Class_AdminVarLoader extends Storm_Model_Loader { } + /** + * @return bool + */ + public function isCiteDeLaMusiqueEnabled() { + return (new Class_AdminVar_CiteDeLaMusique())->isEnabled(); + } + + /** * @return bool */ diff --git a/library/Class/AdminVar/CiteDeLaMusique.php b/library/Class/AdminVar/CiteDeLaMusique.php new file mode 100644 index 0000000000000000000000000000000000000000..e4366408048603780d4baef2d597396d13486d49 --- /dev/null +++ b/library/Class/AdminVar/CiteDeLaMusique.php @@ -0,0 +1,44 @@ +<?php +/** + * Copyright (c) 2012-2014, 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 Class_AdminVar_CiteDeLaMusique { + /** + * @return bool + */ + public function isEnabled() { + return + ('' != trim(Class_AdminVar::get('CITEDELAMUSIQUE'))) + && ('' != $this->getLibraryId()) + && (0 < count($this->getSets())); + } + + + public function getLibraryId() { + return trim(Class_AdminVar::get('CITEDELAMUSIQUE_ID')); + } + + + public function getSets() { + return array_filter(explode(';', Class_AdminVar::get('CITEDELAMUSIQUE_SETS'))); + } +} +?> \ No newline at end of file diff --git a/library/Class/Album.php b/library/Class/Album.php index 726fccafc88d58780ed5062c86745e45d98c5359..0af50ac1d16e162f11c0cfc0187d0f5c20be8f5c 100644 --- a/library/Class/Album.php +++ b/library/Class/Album.php @@ -445,6 +445,16 @@ class Class_Album extends Storm_Model_Abstract { } + public function beCiteDeLaMusique() { + return $this->setTypeDocId(Class_TypeDoc::CITEDELAMUSIQUE); + } + + + public function isCiteDeLaMusique() { + return Class_TypeDoc::CITEDELAMUSIQUE == $this->getTypeDocId(); + } + + public function beNumeriquePremium() { return $this->setTypeDocId(Class_TypeDoc::NUMERIQUEPREMIUM); } diff --git a/library/Class/Album/Renderer.php b/library/Class/Album/Renderer.php index 0914e7f8f9805d00c154bead74e74ee297c4e530..f3e8c18a9d14cbbcd92cd0f1fc4ee3be347320e0 100644 --- a/library/Class/Album/Renderer.php +++ b/library/Class/Album/Renderer.php @@ -47,6 +47,7 @@ class Class_Album_Renderer { 'tagOrpheaRessource' => function($album) { return $album->isOrphea(); }, 'tagOneDTouch' => function($album) { return $album->isOneDTouch(); }, 'tagWebSite' => function($album) { return $album->isWebSite(); }, + 'album_CiteDeLaMusique' => function($album) { return $album->isCiteDeLaMusique(); }, 'tagAssimil' => function($album) {return $album->isAssimil();}, 'tagAlbumMediaList' => function($album) { return true; }]; diff --git a/library/Class/Batch.php b/library/Class/Batch.php index 0622253c2326c892f50288098e2472a3c5e48d5c..8cb6f3098cd7a6485d691038f70443f47c4ef494 100644 --- a/library/Class/Batch.php +++ b/library/Class/Batch.php @@ -47,7 +47,8 @@ class Class_BatchLoader extends Storm_Model_Loader { Class_Batch_Orphea::TYPE => new Class_Batch_Orphea(), Class_Batch_Jamendo::TYPE => new Class_Batch_Jamendo(), Class_Batch_Dilicom::TYPE => new Class_Batch_Dilicom(), - Class_Batch_Assimil::TYPE => new Class_Batch_Assimil(), + Class_Batch_CiteDeLaMusique::TYPE => new Class_Batch_CiteDeLaMusique(), + Class_Batch_Assimil::TYPE => new Class_Batch_Assimil() ]; } diff --git a/library/Class/Batch/CiteDeLaMusique.php b/library/Class/Batch/CiteDeLaMusique.php new file mode 100644 index 0000000000000000000000000000000000000000..49db2602b52c6af868375c990fd649ae32872eeb --- /dev/null +++ b/library/Class/Batch/CiteDeLaMusique.php @@ -0,0 +1,30 @@ +<?php +/** + * Copyright (c) 2012-2014, 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 Class_Batch_CiteDeLaMusique extends Class_Batch_RessourceNumerique{ + const TYPE = 'MOISSONAGE_CITEDELAMUSIQUE'; + + protected function _getService() { + return new Class_WebService_BibNumerique_CiteDeLaMusique(); + } +} +?> diff --git a/library/Class/Entity.php b/library/Class/Entity.php index 4856dea78b7f12b239294aa38d3b9305e16f717f..c047e850406f01b1cb899c036322a2c80aa7dcab 100644 --- a/library/Class/Entity.php +++ b/library/Class/Entity.php @@ -34,10 +34,10 @@ class Class_Entity { switch ($matches[1]) { case 'get': - return $this->_get($matches[2]); + return $this->get($matches[2]); break; case 'set': - $this->_set($matches[2], $params[0]); + $this->set($matches[2], $params[0]); return $this; break; } @@ -46,13 +46,13 @@ class Class_Entity { } - protected function _get($name) { + public function get($name, $default=null) { return array_key_exists($name, $this->_attribs) ? - $this->_attribs[$name] : null; + $this->_attribs[$name] : $default; } - protected function _set($name, $value) { + public function set($name, $value) { $this->_attribs[$name] = $value; return $this; } diff --git a/library/Class/Systeme/ModulesMenu.php b/library/Class/Systeme/ModulesMenu.php index c36dbab3b57c954e30c1b5341e9984d4e4af5935..1109f64ae79bbcf702b9c3eecb26b09ea29e7e68 100644 --- a/library/Class/Systeme/ModulesMenu.php +++ b/library/Class/Systeme/ModulesMenu.php @@ -129,6 +129,7 @@ class Class_Systeme_ModulesMenu extends Class_Systeme_ModulesAbstract { "RESERVER_POSTE" => new Class_Systeme_ModulesMenu_ReserverPoste(), 'SUGGESTION_ACHAT' => new Class_Systeme_ModulesMenu_SuggestionAchat(), 'WEBKIOSK_RESERVATION' => new Class_Systeme_ModulesMenu_WebkioskReservation(), + 'CITE_DE_LA_MUSIQUE' => new Class_Systeme_ModulesMenu_CiteDeLaMusique(), 'ASSIMIL' => new Class_Systeme_ModulesMenu_Assimil(), ]; diff --git a/library/Class/Systeme/ModulesMenu/CiteDeLaMusique.php b/library/Class/Systeme/ModulesMenu/CiteDeLaMusique.php new file mode 100644 index 0000000000000000000000000000000000000000..5516a773a63e52e7a4acd9d79573a254d81007d0 --- /dev/null +++ b/library/Class/Systeme/ModulesMenu/CiteDeLaMusique.php @@ -0,0 +1,62 @@ +<?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 Class_Systeme_ModulesMenu_CiteDeLaMusique extends Class_Systeme_ModulesMenu_SSOAbstract { + /** @var string */ + protected $_group = Class_Systeme_ModulesMenu::GROUP_MENU_ABONNES; + + /** @var string */ + protected $_type_module = 'CITE_DE_LA_MUSIQUE'; + + /** @var string */ + protected $_libelle = 'Lien vers Cité de la Musique'; + + + protected $_url = [ + 'controller' => 'modules', + 'action' => 'cite-de-la-musique' + ]; + + public function urlForUser($user) { + $cite_musique = new Class_AdminVar_CiteDeLaMusique(); + + if (!$cite_musique->isEnabled()) { + $this->setMessage($this->_('Accès à la Cité de la Musique non configuré')); + return ''; + } + + + if (!$user->hasRightAccessCiteDeLaMusique()) { + $this->setMessage($this->_('Vous devez être connecté sous un compte avec abonnement valide pour pouvoir accéder à la ressource numérique')); + return ''; + } + + return 'http://media.citedelamusique.fr/medias/logon/' . $cite_musique->getLibraryId(); + } + + + public function isVisibleForProfil($profil) { + return (new Class_AdminVar_CiteDeLaMusique())->isEnabled(); + } +} + +?> \ No newline at end of file diff --git a/library/Class/TypeDoc.php b/library/Class/TypeDoc.php index ea45f6051ef9789fbc3cafcd4a4dfa2f8fc32b89..8bfef82b786383557a4438e08b2da6717e5e9767 100644 --- a/library/Class/TypeDoc.php +++ b/library/Class/TypeDoc.php @@ -222,7 +222,7 @@ class Class_TypeDoc extends Storm_Model_Abstract { const WEBSITE = 116; const SOUNDCLOUD = 117; const ASSIMIL = 118; - + const CITEDELAMUSIQUE = 119; public static function getDefaultTypeDocs() { return [self::LIVRE => 'Livres', @@ -251,7 +251,8 @@ class Class_TypeDoc extends Storm_Model_Abstract { self::JAMENDO => 'Jamendo', self::WEBSITE => 'Site web', self::SOUNDCLOUD => 'SoundCloud', - self::ASSIMIL => 'ASSIMIL e-méthode' + self::ASSIMIL => 'ASSIMIL e-méthode', + self::CITEDELAMUSIQUE => 'Cite De La Musique' ]; } diff --git a/library/Class/UserGroup.php b/library/Class/UserGroup.php index af4c6b1c9d1f88d90d72278f08917c10c6114e86..7d410665a63134e52d1b3234b9180b2c74e07f12 100644 --- a/library/Class/UserGroup.php +++ b/library/Class/UserGroup.php @@ -60,6 +60,8 @@ class Class_UserGroup extends Storm_Model_Abstract { const RIGHT_ACCESS_ORTHODIDACTE = 28; const RIGHT_ACCESS_LESOCIAL = 29; const RIGHT_ACCESS_ASSIMIL = 30; + const RIGHT_ACCESS_CITEDELAMUSIQUE = 31; + // droits moderateurs const RIGHT_USER_DOMAINES_SUPPRESSION_LIMIT = 8; const RIGHT_USER_FILE_ACCESS = 9; @@ -101,6 +103,7 @@ class Class_UserGroup extends Storm_Model_Abstract { self::RIGHT_ACCESS_ORTHODIDACTE => 'Bibliothèque numérique: accéder à Orthodidacte.com', self::RIGHT_ACCESS_LESOCIAL => 'Bibliothèque numérique: accéder à Le Social', self::RIGHT_ACCESS_ASSIMIL => 'Bibliothèque numérique: accéder à ASSIMIL', + self::RIGHT_ACCESS_CITEDELAMUSIQUE => 'Bibliothèque numérique: accéder à La Cité de la musique', self::RIGHT_ACCES_PNB_DILICOM => 'Bibliothèque numérique: autoriser le prêt numérique Dilicom', self::RIGHT_USER_DOMAINES_SUPPRESSION_LIMIT => 'Domaines: accès, modification et suppression limitée au créateur', self::RIGHT_USER_DOMAINES_TOTAL_ACCESS => 'Domaines: accès total en modification et suppression', @@ -122,10 +125,6 @@ class Class_UserGroup extends Storm_Model_Abstract { 'group_type' => 0, 'id_bib' => 0]; - public static function getLoader() { - return self::getLoaderFor(__CLASS__); - } - public static function getRightDefinitionList() { return self::$_rights_definition; @@ -152,7 +151,9 @@ class Class_UserGroup extends Storm_Model_Abstract { 'MyCow' => [Class_UserGroup::RIGHT_ACCES_MYCOW], 'Kidilangues' => [Class_UserGroup::RIGHT_ACCES_KIDILANGUES], 'LeSocial' => [Class_UserGroup::RIGHT_ACCESS_LESOCIAL], - 'Assimil' => [Class_UserGroup::RIGHT_ACCESS_ASSIMIL] + 'Assimil' => [Class_UserGroup::RIGHT_ACCESS_ASSIMIL], + 'CiteDeLaMusique' => [static::RIGHT_ACCESS_CITEDELAMUSIQUE] + ]; foreach($mapping as $type => $tokens) { diff --git a/library/Class/Users.php b/library/Class/Users.php index 9b04e8dd42d4378b09f41fff625352fef75f3371..7e1468ffeb5c117b343854dda76f8140d2dd0fed 100644 --- a/library/Class/Users.php +++ b/library/Class/Users.php @@ -887,6 +887,11 @@ class Class_Users extends Storm_Model_Abstract { } + public function hasRightAccessCiteDeLaMusique() { + return $this->isAbonneAndHasRightToAccess(Class_UserGroup::RIGHT_ACCESS_CITEDELAMUSIQUE); + } + + public function hasRightAccessMyCow() { return $this->isAbonneAndHasRightToAccess(Class_UserGroup::RIGHT_ACCES_MYCOW); } diff --git a/library/Class/WebService/BibNumerique/AbstractOAI.php b/library/Class/WebService/BibNumerique/AbstractOAI.php index 4235aaf5754115de65a66854e56477d6ff46d60e..6bc3b4d0a6f5a363946d7c55f11829129c18385d 100644 --- a/library/Class/WebService/BibNumerique/AbstractOAI.php +++ b/library/Class/WebService/BibNumerique/AbstractOAI.php @@ -29,25 +29,31 @@ abstract class Class_WebService_BibNumerique_AbstractOAI extends Class_WebServic while($this->getOaiWS()->hasRecordsToHarvest()) $this->addHarvestedIds($this->_importRessources($this->loadPage())); + return $this->_logRun(); + } + + + protected function _logRun() { Class_WebService_HarvestLog::newInstance(['end_date' => $this->getCurrentDate(), 'type_doc' => $this->getTypeDoc()])->save(); - return $this; } protected function loadPage($page_number = 1) { - $params = []; + return $this->getOaiWS() + ->getRecordsResourcesNumerique($this->_addFromTo([])); + } - $count = Class_Album::countBy(['type_doc_id' => $this->getTypeDoc()]); + protected function _addFromTo($params) { + $count = Class_Album::countBy(['type_doc_id' => $this->getTypeDoc()]); $harvest_log = Class_WebService_HarvestLog::findFirstBy(['type_doc' => $this->getTypeDoc(), 'order' => 'end_date desc']); - if ( $harvest_log && (0 < $count)) - $params = ['from' => $harvest_log->getEndDate()]; - - return $this->getOaiWS()->getRecordsResourcesNumerique($params); + return $harvest_log && (0 < $count) + ? array_merge($params, ['from' => $harvest_log->getEndDate()]) + : $params; } @@ -71,15 +77,16 @@ abstract class Class_WebService_BibNumerique_AbstractOAI extends Class_WebServic } - protected function _deleteNonHarvested() {} + protected function getOaiWS() { + return $this->_oaiws; + } - abstract protected function getTypeDoc(); + protected function _deleteNonHarvested() {} - abstract protected function getOaiWS(); + abstract protected function getTypeDoc(); abstract protected function getUrlOrigine(); } -?> diff --git a/library/Class/WebService/BibNumerique/CiteDeLaMusique.php b/library/Class/WebService/BibNumerique/CiteDeLaMusique.php new file mode 100644 index 0000000000000000000000000000000000000000..1707f7ba313c3310b4a838ad03af455bd1cc162f --- /dev/null +++ b/library/Class/WebService/BibNumerique/CiteDeLaMusique.php @@ -0,0 +1,79 @@ +<?php +/** + * Copyright (c) 2012-2014, 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 Class_WebService_BibNumerique_CiteDeLaMusique + extends Class_WebService_BibNumerique_AbstractOAI { + + const CATEGORY_LABEL = 'CiteDeLaMusique'; + + protected $_sets = []; + + public function __construct() { + $this->_ermes_parser = new Class_WebService_OAI_ErmesParser(); + $this->_oaiws = (new Class_WebService_OAI()) + ->setMetadataPrefix('Ermes') + ->setParser($this->_ermes_parser) + ->setOAIHandler($this->getUrlOrigine()) + ->setNumericResourceClass('Class_WebService_BibNumerique_CiteDeLaMusique_Album'); + + $this->_sets = (new Class_AdminVar_CiteDeLaMusique())->getSets(); + } + + + public function harvest() { + foreach($this->_sets as $set) + $this->_harvestSet($set); + + return $this->_logRun(); + } + + + protected function _harvestSet($set) { + while($this->getOaiWS()->hasRecordsToHarvest()) + $this->addHarvestedIds($this->_importRessources($this->_loadPageOf($set))); + + $this->getOaiWS()->reset(); + } + + + protected function _loadPageOf($set) { + $params = $this->_addFromTo([Class_WebService_OAI::Set => $set]); + + return $this->getOaiWS() + ->getRecordsResourcesNumerique($params); + } + + + public function isEnabled() { + return (new Class_AdminVar_CiteDeLaMusique())->isEnabled(); + } + + + protected function getTypeDoc() { + return Class_TypeDoc::CITEDELAMUSIQUE; + } + + + protected function getUrlOrigine() { + return Class_AdminVar::get('CITEDELAMUSIQUE'); + } +} \ No newline at end of file diff --git a/library/Class/WebService/BibNumerique/CiteDeLaMusique/Album.php b/library/Class/WebService/BibNumerique/CiteDeLaMusique/Album.php new file mode 100644 index 0000000000000000000000000000000000000000..dda8bc2c27fcf99e1e7504c10969e9601124f348 --- /dev/null +++ b/library/Class/WebService/BibNumerique/CiteDeLaMusique/Album.php @@ -0,0 +1,61 @@ +<?php +/** + * Copyright (c) 2012-2014, 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 Class_WebService_BibNumerique_CiteDeLaMusique_Album extends Class_WebService_BibNumerique_RessourceNumerique { + + public function getBaseUrl() { + return Class_AdminVar::get('CITEDELAMUSIQUE'); + } + + + public function fillAlbum($album) { + $album->beCiteDeLaMusique() + ->setDescription($this->getDescription()) + ->setEditeur($this->getEditeur()); + + return $album; + } + + + public function import() { + if (!$album = $this->findAlbumInDB()) + $album = Class_Album::newInstance(); + + return $this->updateAlbum($album); + } + + + public function isAlreadyHarvested() { + return false; + } + + + public function getRessourceCategorieLibelle() { + return Class_WebService_BibNumerique_CiteDeLaMusique::CATEGORY_LABEL; + } + + + public function setOaiId($data) { + return $this->setId($data); + } +} +?> diff --git a/library/Class/WebService/BibNumerique/Cyberlibris/LivreNumerique.php b/library/Class/WebService/BibNumerique/Cyberlibris/LivreNumerique.php index b97c5fbfa2c8268240dd6038cdbd99c12283c233..7982391cf08a74e311607d58f30d9b7f5523fd05 100644 --- a/library/Class/WebService/BibNumerique/Cyberlibris/LivreNumerique.php +++ b/library/Class/WebService/BibNumerique/Cyberlibris/LivreNumerique.php @@ -43,10 +43,10 @@ class Class_WebService_BibNumerique_Cyberlibris_LivreNumerique extends Class_Web return Class_WebService_BibNumerique_Cyberlibris::CATEGORY_LABEL; } + public function setOaiId($data) { $result = explode('=', $data); $this->_id = ($result) ? $result[1] : ''; - $this->setExternalURI($data); + return $this->setExternalURI($data); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/library/Class/WebService/BibNumerique/OneDTouch.php b/library/Class/WebService/BibNumerique/OneDTouch.php index f1fb141cc9993fe8ad68279836dd4fae2d4cc640..0fa6c21bd89cd5a9c18a4421d67674c24cbca0a4 100644 --- a/library/Class/WebService/BibNumerique/OneDTouch.php +++ b/library/Class/WebService/BibNumerique/OneDTouch.php @@ -47,9 +47,4 @@ class Class_WebService_BibNumerique_OneDTouch extends Class_WebService_BibNumeri protected function getUrlOrigine() { return Class_AdminVar::get('ONEDTOUCH_URL'); } - - protected function getOaiWS() { - return $this->_oaiws; - } } -?> diff --git a/library/Class/WebService/BibNumerique/RessourceNumerique.php b/library/Class/WebService/BibNumerique/RessourceNumerique.php index 530a099023d4e5a832298e6f9417d5bbad9fd156..fd9652fbc08a975b8906587d2b822496bd5c1dac 100644 --- a/library/Class/WebService/BibNumerique/RessourceNumerique.php +++ b/library/Class/WebService/BibNumerique/RessourceNumerique.php @@ -223,26 +223,28 @@ class Class_WebService_BibNumerique_RessourceNumerique { public function importMatieres($album) { - $ids=[]; - $indexation = new Class_Indexation(); - foreach (array_filter($this->_matieres) as $matiere_libelle) { - if ( $matiere=Class_CodifMatiere::findFirstBy(['libelle' => $matiere_libelle])) { - $ids[]=$matiere->getId(); - continue; - } - - $matiere= new Class_CodifMatiere(); - $matiere->setLibelle($matiere_libelle); - $matiere->setCodeAlpha($indexation->alphaMaj($matiere_libelle)); - $matiere->save(); - $ids[]=$matiere->getId(); - - } + $ids = []; + foreach (array_filter($this->_matieres) as $label) + if ($id = $this->_importMatiere($label)) + $ids[] = $id; + if ($ids) $album->setMatiere(implode(';',$ids)); } + protected function _importMatiere($label) { + if ($matiere = Class_CodifMatiere::findFirstBy(['libelle' => $label])) + return $matiere->getId(); + + $matiere = new Class_CodifMatiere(); + $matiere->setLibelle($label); + $matiere->setCodeAlpha((new Class_Indexation())->alphaMaj($label)); + $matiere->save(); + return $matiere->getId(); + } + + public function import() { if (null != $album = $this->findAlbumInDB()) return $album; @@ -265,7 +267,8 @@ class Class_WebService_BibNumerique_RessourceNumerique { ->setStatus(Class_Album::STATUS_VALIDATED) ->setDroits($this->getRights()); - array_map([$album, 'addAuthor'], $this->getAuthors()); + foreach ($this->getAuthors() as $author) + $album->addAuthor($author); $this->importMatieres($album); @@ -326,15 +329,18 @@ class Class_WebService_BibNumerique_RessourceNumerique { return $this; } + public function fillAlbum($album) { } + public function fillAlbumTypeDoc($album) { - if ($type_doc=$album->getTypeDoc()) { - $album->setBibliotheques($type_doc->getBibliotheques()); - $album->setAnnexes($type_doc->getAnnexes()); - $album->setSections($type_doc->getSections()); - } + if (!$type_doc = $album->getTypeDoc()) + return; + + $album->setBibliotheques($type_doc->getBibliotheques()) + ->setAnnexes($type_doc->getAnnexes()) + ->setSections($type_doc->getSections()); } @@ -346,14 +352,17 @@ class Class_WebService_BibNumerique_RessourceNumerique { public function setOaiId($id) { if (!$id) - return; - $explode_id=explode(':',$id); - $this->_id=$explode_id[count($explode_id)-1]; + return $this; + + $explode_id = explode(':', $id); + $this->_id = $explode_id[count($explode_id)-1]; + return $this; } public function setRessources($ressources) { - $this->_ressources=$ressources; + $this->_ressources = $ressources; + return $this; } @@ -361,4 +370,3 @@ class Class_WebService_BibNumerique_RessourceNumerique { return $this->_ressources; } } -?> diff --git a/library/Class/WebService/OAI.php b/library/Class/WebService/OAI.php index b081a6693b9aa494a6b2a844925677c283d50ba9..893567223569a8ef3596501b49ca7f69b00cc16b 100644 --- a/library/Class/WebService/OAI.php +++ b/library/Class/WebService/OAI.php @@ -38,18 +38,21 @@ */ class Class_WebService_OAI extends Class_WebService_Abstract { - protected static $continu = true; - protected static $_default_web_client; + const Verb = 'verb'; + const MetadataPrefix = 'metadataPrefix'; + const Set = 'set'; + const ResumptionToken = 'resumptionToken'; + const ListSets = 'ListSets'; + const ListRecords = 'ListRecords'; + + protected $web_client; protected $numeric_resource_class = 'Class_WebService_BibNumerique_Numilog_LivreNumerique'; protected $_listRecordsResumptionToken; protected $metadata_prefix = 'oai_dc'; - protected $_first_page = 1; + protected $_first_page = true; protected $_logger; - const ListSets = 'ListSets'; - const ListRecords = 'ListRecords'; - public static function baseURL() { return 'http://' . $_SERVER['SERVER_NAME'] . BASE_URL . '/opac/oai/request'; } @@ -74,7 +77,7 @@ class Class_WebService_OAI extends Class_WebService_Abstract { public function getWebClient() { if (!isset($this->web_client)) - $this->setWebClient(self::getHttpClient()); + $this->setWebClient(static::getHttpClient()); return $this->web_client; } @@ -96,10 +99,13 @@ class Class_WebService_OAI extends Class_WebService_Abstract { public function oaiAsks($verb, $parameters) { - unset($parameters['verb']); - $parameters = array_merge(['verb' => $verb], + unset($parameters[static::Verb]); + $parameters = array_merge([static::Verb => $verb], $parameters); - $url = $this->oai_handler.'?'.http_build_query($parameters); + $separator = (false !== strpos($this->oai_handler, '?')) + ? '&' + : '?'; + $url = $this->oai_handler . $separator . http_build_query($parameters); $response = $this->getContent($url); $this->_log($url, $response); @@ -121,7 +127,7 @@ class Class_WebService_OAI extends Class_WebService_Abstract { public function listSets() { - return $this->oaiAsks(self::ListSets, array()); + return $this->oaiAsks(static::ListSets, []); } @@ -134,12 +140,12 @@ class Class_WebService_OAI extends Class_WebService_Abstract { public function getSets() { /* Pour l'instant ne gère pas le resumptionToken, ça suffit pour la démo*/ $xml_data = $this->listSets(); - $setspecs = array(); - $setnames = array(); + $setspecs = []; + $setnames = []; if (0==preg_match_all('/<setSpec>([^<]*)<\/setSpec>/i', $xml_data, $setspecs)) - return array(); - preg_match_all('/<setName>([^<]*)<\/setName>/i', $xml_data, $setnames); + return []; + preg_match_all('/<setName>([^<]*)<\/setName>/i', $xml_data, $setnames); return array_combine($setspecs[1], $setnames[1]); } @@ -157,9 +163,9 @@ class Class_WebService_OAI extends Class_WebService_Abstract { public function getRecordsFromSetNumericResources($set) { - $xml_data = $this->oaiAsks(self::ListRecords, - ['metadataPrefix' => 'oai_dc', - 'set' => $set]); + $xml_data = $this + ->oaiAsks(static::ListRecords, + [static::MetadataPrefix => 'oai_dc', static::Set => $set]); return $this->parseListRecordsRessourcesNumeriqueXML($xml_data); } @@ -169,22 +175,23 @@ class Class_WebService_OAI extends Class_WebService_Abstract { if (!$this->isFirstPage()) return $this->getNextNumericResources(); - $params = array_merge(['metadataPrefix' => $this->metadata_prefix], $params); - $this->_first_page = 0; + $params = array_merge([static::MetadataPrefix => $this->metadata_prefix], $params); + $this->_first_page = false; + $xml_data = $this->oaiAsks(static::ListRecords, $params); - $xml_data = $this->oaiAsks(self::ListRecords, $params); return $this->parseListRecordsRessourcesNumeriqueXML($xml_data); } public function getRecordsFromSet($set) { - return $this->getRecords(['set' => $set]); + return $this->getRecords([static::Set => $set]); } public function getRecords($params = []) { - $params = array_merge(['metadataPrefix' => $this->metadata_prefix], $params); - $xml_data = $this->oaiAsks(self::ListRecords, $params); + $params = array_merge([static::MetadataPrefix => $this->metadata_prefix], $params); + $xml_data = $this->oaiAsks(static::ListRecords, $params); + return $this->parseListRecordsXML($xml_data); } @@ -210,31 +217,32 @@ class Class_WebService_OAI extends Class_WebService_Abstract { public function hasNextRecords() { - if (!$this->getListRecordsResumptionToken()) return false; + if (!$this->getListRecordsResumptionToken()) + return false; + return ($this->getListRecordsResumptionToken()->getToken() != null); } public function getNextRecords() { - if (!$this->hasNextRecords()) - return []; - - $xml_data = $this->oaiAsks( - self::ListRecords, - ['resumptionToken' => $this->getListRecordsResumptionToken()->getToken()]); - return $this->parseListRecordsXML($xml_data); + return $this->_withNextPageDo('parseListRecordsXML'); } public function getNextNumericResources() { + return $this->_withNextPageDo('parseListRecordsRessourcesNumeriqueXML'); + } + + + protected function _withNextPageDo($method) { if (!$this->hasNextRecords()) return []; - $xml_data = $this->oaiAsks( - self::ListRecords, - ['resumptionToken' => $this->getListRecordsResumptionToken()->getToken()]); + $xml_data = $this + ->oaiAsks(static::ListRecords, + [static::ResumptionToken => $this->getListRecordsResumptionToken()->getToken()]); - return $this->parseListRecordsRessourcesNumeriqueXML($xml_data); + return $this->$method($xml_data); } @@ -255,21 +263,32 @@ class Class_WebService_OAI extends Class_WebService_Abstract { public function getTotalNumberOfRecords() { - if (!isset($this->_listRecordsResumptionToken)) return 0; + if (!isset($this->_listRecordsResumptionToken)) + return 0; + return $this->_listRecordsResumptionToken->getListSize(); } public function setMetadataPrefix($metadata_prefix) { - $this->metadata_prefix=$metadata_prefix; + $this->metadata_prefix = $metadata_prefix; return $this; } protected function isFirstPage() { - return $this->_first_page == 1; + return $this->_first_page; + } + + + protected function beFirstPage() { + $this->_first_page = true; + return $this; } -} -?> + public function reset() { + return $this->setListRecordsResumptionToken(null) + ->beFirstPage(); + } +} \ No newline at end of file diff --git a/library/Class/WebService/OAI/DublinCoreParser.php b/library/Class/WebService/OAI/DublinCoreParser.php index c61f05324dd63ccad26ad1305239f082b62ef025..77a2491ae863416a2b51cc142cf42cda2739444d 100644 --- a/library/Class/WebService/OAI/DublinCoreParser.php +++ b/library/Class/WebService/OAI/DublinCoreParser.php @@ -29,7 +29,7 @@ */ class Class_WebService_OAI_DublinCoreParser extends Class_WebService_OAI_ParserAbstract { - protected $_record; + protected $_record; public function endns1_record($data) { $this->endRecord($data); diff --git a/library/Class/WebService/OAI/DublinCoreParser/ForRessourceNumerique.php b/library/Class/WebService/OAI/DublinCoreParser/ForRessourceNumerique.php index 816dae9966f1520d52fc7c473e4f677b16e3109b..584b2c447ea091b87d22ec0fb76e60e59f0d4595 100644 --- a/library/Class/WebService/OAI/DublinCoreParser/ForRessourceNumerique.php +++ b/library/Class/WebService/OAI/DublinCoreParser/ForRessourceNumerique.php @@ -39,6 +39,7 @@ class Class_WebService_OAI_DublinCoreParser_ForRessourceNumerique extends Class_ $this->visitor = $this; } + public function acceptVisitor($visitor) { $this->visitor=$visitor; } @@ -69,7 +70,7 @@ class Class_WebService_OAI_DublinCoreParser_ForRessourceNumerique extends Class_ protected function getRessourceNumerique() { - if(!$this->ressource_numerique) + if (!$this->ressource_numerique) $this->ressource_numerique = new Class_WebService_BibNumerique_RessourceNumerique(); return $this->ressource_numerique; } @@ -84,21 +85,22 @@ class Class_WebService_OAI_DublinCoreParser_ForRessourceNumerique extends Class_ ? $this->_record['description'][0] : ''; - $this->getRessourceNumerique()->setOaiId($this->_record['id_oai']); - $this->getRessourceNumerique()->setTitle($this->_record['titre']); - $this->getRessourceNumerique()->setEditeur($first_editor); - $this->getRessourceNumerique()->setYear(substr($this->_record['date'],0,4)); - $this->getRessourceNumerique()->setDescription($first_description); + $resource = $this->getRessourceNumerique() + ->setOaiId($this->_record['id_oai']) + ->setTitle($this->_record['titre']) + ->setEditeur($first_editor) + ->setYear(substr($this->_record['date'], 0, 4)) + ->setDescription($first_description); foreach($this->_record['auteur'] as $author) - $this->getRessourceNumerique()->addAuthor($author); + $resource->addAuthor($author); foreach($this->_record['matiere'] as $matiere) - $this->getRessourceNumerique()->addMatiere($matiere); + $resource->addMatiere($matiere); - if($relation = $this->_record['relation']) - $this->getRessourceNumerique()->setExternalUri($relation[0]); + if ($relation = $this->_record['relation']) + $resource->setExternalUri($relation[0]); - parent::endRecord($data); + return parent::endRecord($data); } } diff --git a/library/Class/WebService/OAI/ErmesParser.php b/library/Class/WebService/OAI/ErmesParser.php new file mode 100644 index 0000000000000000000000000000000000000000..246195a4045f9902c569352b575b59fe218ec524 --- /dev/null +++ b/library/Class/WebService/OAI/ErmesParser.php @@ -0,0 +1,94 @@ +<?php +/** + * Copyright (c) 2012-2014, 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 Class_WebService_OAI_ErmesParser extends Class_WebService_OAI_DublinCoreParser_ForRessourceNumerique { + protected + $_current_data, + $_ermes, + $_attribs; + + + public function newRecord($attributes) { + parent::newRecord($attributes); + $this->_ermes = new Class_Entity(); + $this->_attribs = []; + $this->_current_data = null; + } + + + public function startArr($attributes) { + $this->_current_data = $attributes['NAME']; + } + + + public function startStr($attributes) { + if (isset($attributes['NAME'])) + $this->_current_data = $attributes['NAME']; + } + + + public function endStr($data) { + $this->_attribs[$this->_current_data][] = $data; + } + + + public function endRecord($data) { + $this->_record = $this->_ermesToAlbum(); + + if ($poster_url = $this->_firstValueFromErmes('ThumbMedium')) + $this + ->getRessourceNumerique() + ->addPoster('http://media.citedelamusique.fr' . $poster_url); + + + return parent::endRecord($data); + } + + + protected function _ermesToAlbum() { + $this->_ermes->updateAttributes($this->_attribs); + + + + return ['id_oai' => $this->_firstValueFromErmes('Identifier'), + 'titre' => $this->_firstValueFromErmes('Title_exact'), + 'date' => $this->_firstValueFromErmes('publication_date'), + 'auteur' => $this->_fromErmes('Author', []), + 'editeur' => $this->_fromErmes('Publisher', []), + 'matiere' => $this->_fromErmes('SubjectTopic_exact', []), + 'relation' => $this->_fromErmes('PrimaryDoc', []), + 'description' => $this->_fromErmes('FullRefToDisplay', []), + 'language' => [] + ]; + } + + + protected function _firstValueFromErmes($name) { + $values = $this->_fromErmes($name, []); + return reset($values); + } + + + protected function _fromErmes($name, $default='') { + return $this->_ermes->get($name, $default); + } +} \ No newline at end of file diff --git a/library/Class/WebService/OAI/ParserAbstract.php b/library/Class/WebService/OAI/ParserAbstract.php index 6d3bacad89f06233c6c26e1ad205a3f74585c7af..3aa83f10c95fa18484615401a1c19688d3e207f0 100644 --- a/library/Class/WebService/OAI/ParserAbstract.php +++ b/library/Class/WebService/OAI/ParserAbstract.php @@ -54,7 +54,6 @@ abstract class Class_WebService_OAI_ParserAbstract { } - public function getResumptionToken() { return $this->_resumptionToken; } diff --git a/library/Class/WebService/Redmine/Issue.php b/library/Class/WebService/Redmine/Issue.php index a85a3fe26aae2d3790e8a19936c7a324c1d9aea1..25bc46db98f34ed1bc3bfe861ebf389ced566836 100644 --- a/library/Class/WebService/Redmine/Issue.php +++ b/library/Class/WebService/Redmine/Issue.php @@ -30,7 +30,7 @@ class Class_WebService_Redmine_Issue extends Class_Entity { public function callGetterByAttributeName($attribute) { - return parent::_get($attribute); + return parent::get($attribute); } diff --git a/library/ZendAfi/View/Helper/Album/CiteDeLaMusique.php b/library/ZendAfi/View/Helper/Album/CiteDeLaMusique.php new file mode 100644 index 0000000000000000000000000000000000000000..27849b79e772bc44e3b19b2cabb425cd1d0b14c7 --- /dev/null +++ b/library/ZendAfi/View/Helper/Album/CiteDeLaMusique.php @@ -0,0 +1,47 @@ +<?php +/** + * Copyright (c) 2012-2014, 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_Album_CiteDeLaMusique extends ZendAfi_View_Helper_TagRessourceNumerique { + public function album_CiteDeLaMusique($album) { + $cite_musique = new Class_AdminVar_CiteDeLaMusique(); + if (!$cite_musique->isEnabled()) + return ''; + + if (!$this->canAccessRessourceNumerique()) + return $this->view->tag('p', + $this->view->_('Vous devez être connecté sous un compte avec abonnement valide pour pouvoir accéder à la ressource numérique')); + + + $url = 'http://media.citedelamusique.fr/extranet/autologon/autologon.ashx?' + . http_build_query(['bib' => $cite_musique->getLibraryId(), + 'backUrl' => $album->getExternalUri()]); + + return $this->view->tagAnchor($url, + $this->view->_('Accéder à la ressource numérique')); + } + + + function hasRightAccesRessourcesNumeriques($user) { + return $user->hasRightAccessCiteDeLaMusique(); + } +} +?> \ No newline at end of file diff --git a/library/ZendAfi/View/Helper/IconeSupport.php b/library/ZendAfi/View/Helper/IconeSupport.php index 8b35aeb660e283cf660cf40841c215758a09ab81..6a44d8a1faa6042576972b3cc63a5477b6db2946 100644 --- a/library/ZendAfi/View/Helper/IconeSupport.php +++ b/library/ZendAfi/View/Helper/IconeSupport.php @@ -41,7 +41,8 @@ class ZendAfi_View_Helper_IconeSupport extends ZendAfi_View_Helper_BaseHelper { Class_TypeDoc::JAMENDO => 'jamendo_s.png', Class_TypeDoc::SOUNDCLOUD => 'soundcloud_s.png', Class_TypeDoc::WEBSITE => 'support_10.gif', - Class_TypeDoc::ASSIMIL => 'assimil_s.png' + Class_TypeDoc::ASSIMIL => 'assimil_s.png', + Class_TypeDoc::CITEDELAMUSIQUE => 'cite_musique.png' ); diff --git a/public/admin/images/supports/cite_musique.png b/public/admin/images/supports/cite_musique.png new file mode 100644 index 0000000000000000000000000000000000000000..d1e80f92932e263bd98c48aaecb2269ff6cf5ee3 Binary files /dev/null and b/public/admin/images/supports/cite_musique.png differ diff --git a/tests/application/modules/admin/controllers/UserGroupControllerTest.php b/tests/application/modules/admin/controllers/UserGroupControllerTest.php index 078a0ccad32000695d15cc09c16f72cb13cdd4c6..cb0755c3ba890b43989ad0c18d33bace1afd7c63 100644 --- a/tests/application/modules/admin/controllers/UserGroupControllerTest.php +++ b/tests/application/modules/admin/controllers/UserGroupControllerTest.php @@ -18,19 +18,19 @@ * along with BOKEH; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -require_once 'AdminAbstractControllerTestCase.php'; abstract class Admin_UserGroupControllerTestCase extends Admin_AbstractControllerTestCase { - protected $_spiderman, + protected + $_spiderman, $_association, $_etablissement, $_user_group, $_batman, $_group_search, $_group_moderateurs, - $_group_subscribers; + $_group_subscribers, - protected $_storm_default_to_volatile = true; + $_storm_default_to_volatile = true; public function setUp() { parent::setUp(); @@ -1009,16 +1009,14 @@ class Admin_UserGroupControllerWrongIdsTest extends Admin_UserGroupControllerTes class Admin_UserGroupControllerRessourcesNumeriquesTest extends Admin_UserGroupControllerTestCase { public function datas() { - return [ - ['ArteVod', 'ARTE'], - ['Vodeclic', 'Vodéclic'], - ['Numilog', 'Numilog'], - ['CVS', 'CVS'], - ['ToutApprendre', 'Tout Apprendre'], - ['MusicMe', 'Music Me'], - ['NumeriquePremium', 'Numérique Premium'], - ['Lekiosk', 'Lekiosk.com'], - ]; + return [['ArteVod', 'ARTE'], + ['Vodeclic', 'Vodéclic'], + ['Numilog', 'Numilog'], + ['CVS', 'CVS'], + ['ToutApprendre', 'Tout Apprendre'], + ['MusicMe', 'Music Me'], + ['NumeriquePremium', 'Numérique Premium'], + ['Lekiosk', 'Lekiosk.com']]; } diff --git a/tests/db/UpgradeDBTest.php b/tests/db/UpgradeDBTest.php index 626e0e54053027cb084d43d0f6e0569bdefaa516..57259cdbd58a489d19e5fb8c16fc1636c131705d 100644 --- a/tests/db/UpgradeDBTest.php +++ b/tests/db/UpgradeDBTest.php @@ -837,4 +837,22 @@ class UpgradeDB_303_Test extends UpgradeDBTestCase { public function locationIdShouldBeIndexed() { $this->assertIndex('bib_c_site', 'id_lieu', 'BTREE'); } +} + + + +class UpgradeDB_304_Test extends UpgradeDBTestCase { + public function prepare() { + try { + $this->query('alter table user_groups MODIFY rights_token int(11);'); + } catch(Exception $e) { + + } + } + + + /** @test */ + public function userGroupsRightsTokenShouldBeBigInt() { + $this->assertFieldType('user_groups', 'rights_token', 'bigint(20)'); + } } \ No newline at end of file diff --git a/tests/fixtures/RessourcesNumeriquesFixtures.php b/tests/fixtures/RessourcesNumeriquesFixtures.php index 55ecdac20e29ea8be97b8b4dd5810d45c94b5b98..2c4efa39e7a1c4e1c830d7be046f1bf39f211235 100644 --- a/tests/fixtures/RessourcesNumeriquesFixtures.php +++ b/tests/fixtures/RessourcesNumeriquesFixtures.php @@ -39,6 +39,7 @@ class RessourcesNumeriquesFixtures { self::deactivateDilicom(); self::deactivateOrthodidacte(); self::deactivateLeSocial(); + self::deactivateCiteDeLaMusique(); self::deactivateAssimil(); } @@ -63,6 +64,7 @@ class RessourcesNumeriquesFixtures { self::activateDilicom(); self::activateOrthodidacte(); self::activateLeSocial(); + self::activateCiteDeLaMusique(); self::activateAssimil(); } @@ -299,11 +301,30 @@ class RessourcesNumeriquesFixtures { Class_AdminVar::newInstanceWithId('LESOCIAL_URL', ['valeur' => 'http://www.lesocial.fr']); } + public static function deactivateLeSocial() { Class_AdminVar::newInstanceWithId('LESOCIAL_ID', ['valeur' => '']); } + public static function activateCiteDeLaMusique() { + Class_AdminVar::newInstanceWithId('CITEDELAMUSIQUE', + ['valeur' => 'http://media.citedelamusique.fr/EXTRANET/oaiserver.ashx']); + Class_AdminVar::newInstanceWithId('CITEDELAMUSIQUE_SETS', + ['valeur' => 'videos-concerts-docu-entiers;audios-concerts-entiers']); + + Class_AdminVar::newInstanceWithId('CITEDELAMUSIQUE_ID', + ['valeur' => '34-mylib']); + } + + + public static function deactivateCiteDeLaMusique() { + Class_AdminVar::newInstanceWithId('CITEDELAMUSIQUE', ['valeur' => '']); + Class_AdminVar::newInstanceWithId('CITEDELAMUSIQUE_ID', ['valeur' => '']); + Class_AdminVar::newInstanceWithId('CITEDELAMUSIQUE_SETS', ['valeur' => '']); + } + + public static function activateAssimil() { Class_AdminVar::newInstanceWithId('ASSIMIL', ['valeur' => '1']); } @@ -312,6 +333,4 @@ class RessourcesNumeriquesFixtures { public static function deactivateAssimil() { Class_AdminVar::newInstanceWithId('ASSIMIL', ['valeur' => '']); } - } -?> diff --git a/tests/library/Class/WebService/CyberlibrisTest.php b/tests/library/Class/WebService/CyberlibrisTest.php index 631039548d49b7561bc1a00f0cfb2d3b33f293b0..59d60fce4b7ba7f565741703aafe2f8f9c4af5a7 100644 --- a/tests/library/Class/WebService/CyberlibrisTest.php +++ b/tests/library/Class/WebService/CyberlibrisTest.php @@ -20,7 +20,9 @@ */ include_once('tests/fixtures/RessourcesNumeriquesFixtures.php'); -class CyberlibrisHarvestSaveTest extends Storm_Test_ModelTestCase { +class CyberlibrisHarvestSaveTest extends ModelTestCase { + protected $_storm_default_to_volatile = true; + public function setUp() { parent::setUp(); diff --git a/tests/scenarios/CiteDeLaMusique/CiteDeLaMusiqueTest.php b/tests/scenarios/CiteDeLaMusique/CiteDeLaMusiqueTest.php new file mode 100644 index 0000000000000000000000000000000000000000..fcf8459908bfcd8874fd7d1e1be680c7acac0590 --- /dev/null +++ b/tests/scenarios/CiteDeLaMusique/CiteDeLaMusiqueTest.php @@ -0,0 +1,425 @@ +<?php +/** + * Copyright (c) 2012-2014, 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 CiteDeLaMusiqueFixtures { + public static function activate() { + Class_AdminVar::set('CITEDELAMUSIQUE', + 'http://media.citedelamusique.fr/EXTRANET/oaiserver.ashx'); + + Class_AdminVar::set('CITEDELAMUSIQUE_SETS', + 'videos-concerts-docu-entiers;audios-concerts-entiers'); + + Class_AdminVar::set('CITEDELAMUSIQUE_ID', + '34-mylib'); + } + + + public static function deactivate() { + Class_AdminVar::set('CITEDELAMUSIQUE', ''); + Class_AdminVar::set('CITEDELAMUSIQUE_SETS', ''); + Class_AdminVar::set('CITEDELAMUSIQUE_ID', ''); + } + + + public static function getFixtureContent($name) { + return file_get_contents(__DIR__ . '/' . $name); + } + + + public static function prepare($test) { + $group = $test->fixture('Class_UserGroup', + ['id' => 1, + 'libelle' => 'Patrons', + 'users' => [], + 'rights' => [Class_UserGroup::RIGHT_ACCESS_CITEDELAMUSIQUE]]); + + $user = $test->fixture('Class_Users', + ['id' => 3, + 'login' => 'someone', + 'password' => 'secret', + 'idabon' => '876', + 'bib' => $test->fixture('Class_Bib', + ['id' => 2, + 'libelle' => 'Tombouctou']), + 'user_groups' => [$group]]); + $user->beAbonneSIGB() + ->assertSave(); + + + $test->fixture('Class_Profil', + ['id' => 5, + 'browser' => 'opac', + 'libelle' => 'My library']) + ->beCurrentProfil(); + } +} + + + + +class CiteDeLaMusiqueActivatedAdminTest extends Admin_AbstractControllerTestCase { + protected + $_storm_default_to_volatile = true; + + public function setUp() { + parent::setUp(); + CiteDeLaMusiqueFixtures::prepare($this); + CiteDeLaMusiqueFixtures::activate(); + } + + + /** @test */ + public function userGroupRightsShouldContainsCiteDeLaMusique() { + $this->dispatch('admin/usergroup/edit/id/1', true); + $this->assertXPathContentContains('//label', 'Cité de la musique'); + } + + + /** @test */ + public function profilAvailableMenusShouldContainsCiteDeLaMusique() { + $this->dispatch('admin/profil/menusmaj/id_profil/5/id_menu/H/mode/edit', true); + $this->assertXPathContentContains('//option[@value="CITE_DE_LA_MUSIQUE"]', + 'Lien vers Cité de la Musique', + $this->_response->getBody()); + } +} + + + + +class CiteDeLaMusiqueDisabledAdminTest extends Admin_AbstractControllerTestCase { + protected + $_storm_default_to_volatile = true; + + public function setUp() { + parent::setUp(); + CiteDeLaMusiqueFixtures::prepare($this); + CiteDeLaMusiqueFixtures::deactivate(); + } + + + /** @test */ + public function userGroupRightsShouldNotContainsCiteDeLaMusique() { + $this->dispatch('admin/usergroup/edit/id/1', true); + $this->assertNotXPathContentContains('//label', 'Cité de la musique'); + } + + + /** @test */ + public function profilAvailableMenusShouldNotContainsCiteDeLaMusique() { + $this->dispatch('admin/profil/menusmaj/id_profil/5/id_menu/H/mode/edit', true); + $this->assertNotXPath('//option[@value="CITE_DE_LA_MUSIQUE"]'); + } +} + + + + +class CiteDeLaMusiqueModulesControllerTest extends AbstractControllerTestCase { + public function setUp() { + parent::setUp(); + CiteDeLaMusiqueFixtures::prepare($this); + CiteDeLaMusiqueFixtures::activate(); + ZendAfi_Auth::getInstance()->logUser(Class_Users::find(3)); + } + + + /** @test */ + public function citeDeLaMusiqueActionShouldRedirectToCiteDeLaMusiqueLogon() { + $this->dispatch('/modules/cite-de-la-musique', true); + $this->assertXPathContentContains('//script', + 'location="http://media.citedelamusique.fr/medias/logon/34-mylib"'); + } + + + /** @test */ + public function withoutRightCiteDeLaMusiqueActionShouldDiplayInvalidAccount() { + Class_Users::getIdentity() + ->setUserGroups([]) + ->assertSave(); + $this->dispatch('/modules/cite-de-la-musique', true); + + $this->assertFlashMessengerContentContains('Vous devez être connecté'); + } + + + /** @test */ + public function withoutActivatienCiteDeLaMusiqueActionShouldDiplayNotEnabled() { + CiteDeLaMusiqueFixtures::deactivate(); + $this->dispatch('/modules/cite-de-la-musique', true); + + $this->assertFlashMessengerContentContains('Accès à la Cité de la Musique non configuré'); + } +} + + + +class CiteDeLaMusiqueRenderAlbumTest extends ViewHelperTestCase { + public function setUp() { + parent::setUp(); + CiteDeLaMusiqueFixtures::prepare($this); + ZendAfi_Auth::getInstance()->logUser(Class_Users::find(3)); + } + + + protected function _renderAlbum() { + $rising_star = $this->fixture('Class_Album', + ['id' => 2, + 'type_doc_id' => Class_TypeDoc::CITEDELAMUSIQUE, + 'titre' => 'Rising Stars : Dionysis Grammenos', + 'id_origine' => '1038311', + 'external_uri' => 'http://media.citedelamusique.fr/medias/doc/EXTRANET/CIMU/1038311/DETAIL']); + + $helper = new ZendAfi_View_Helper_RenderAlbum(); + $helper->setView(new ZendAfi_Controller_Action_Helper_View()); + return $helper->renderAlbum($rising_star); + } + + + /** @test */ + public function htmlShouldContainsSsoLinkToCiteDeLaMusiqueWhenActivated() { + CiteDeLaMusiqueFixtures::activate(); + + $expected_url = 'http://media.citedelamusique.fr/extranet/autologon/autologon.ashx?' + . http_build_query(['bib' => '34-mylib', + 'backUrl' => 'http://media.citedelamusique.fr/medias/doc/EXTRANET/CIMU/1038311/DETAIL']); + $this->assertXPathContentContains($this->_renderAlbum(), + '//a[@href="' . $expected_url . '"]', + utf8_encode('Accéder à la ressource numérique')); + } + + + /** @test */ + public function htmlShouldBeEmptyWhenCiteDeLaMusiqueNotActivated() { + CiteDeLaMusiqueFixtures::deactivate(); + $this->assertNotXPath($this->_renderAlbum(), '//a'); + } + + + /** @test */ + public function withoutRightShouldDisplayInvalidAccount() { + CiteDeLaMusiqueFixtures::activate(); + Class_Users::getIdentity() + ->setUserGroups([]) + ->assertSave(); + $this->assertXPathContentContains($this->_renderAlbum(), + '//p', + utf8_encode('Vous devez être connecté')); + } +} + + + + +class CiteDeLaMusiqueParserTest extends ModelTestCase { + protected + $_storm_default_to_volatile = true, + $_service, + $_hommage, + $_rising_stars; + + public function setUp() { + parent::setUp(); + + CiteDeLaMusiqueFixtures::activate(); + + $this->_http_client = $this->mock(); + $this->_http_client + ->whenCalled('open_url') + ->with('http://media.citedelamusique.fr/EXTRANET/oaiserver.ashx?verb=ListRecords&metadataPrefix=Ermes&set=videos-concerts-docu-entiers') + ->answers(CiteDeLaMusiqueFixtures::getFixtureContent('cite_de_la_musique_oai.xml')) + + ->whenCalled('open_url') + ->with('http://media.citedelamusique.fr/EXTRANET/oaiserver.ashx?verb=ListRecords&resumptionToken=%21%21videos-concerts-docu-entiers%21100%211061%21Ermes') + ->answers(CiteDeLaMusiqueFixtures::getFixtureContent('cite_de_la_musique_oai_end.xml')) + + ->whenCalled('open_url') + ->with('http://media.citedelamusique.fr/EXTRANET/oaiserver.ashx?verb=ListRecords&metadataPrefix=Ermes&set=audios-concerts-entiers') + ->answers(CiteDeLaMusiqueFixtures::getFixtureContent('cite_de_la_musique_oai_audios.xml')) + + ->whenCalled('open_url') + ->answers(''); + + $this->_service = new Class_WebService_BibNumerique_CiteDeLaMusique(); + $this->_service->setTimeSource(new TimeSourceForTest('2015-01-18 10:00:00')); + Class_WebService_BibNumerique_CiteDeLaMusique::setDefaultHttpClient($this->_http_client); + $this->_service->harvest(); + Class_Album::clearCache(); + + $this->_hommage = Class_Album::find(1); + $this->_rising_stars = Class_Album::find(7); + } + + + public function tearDown() { + CiteDeLaMusiqueFixtures::deactivate(); + parent::tearDown(); + } + + + /** @test */ + public function nameShouldBeCiteDeLaMusique() { + $this->assertEquals('Cite De La Musique', $this->_service->getName()); + } + + + /** @test */ + public function shouldBeEnabled() { + $this->assertTrue($this->_service->isEnabled()); + } + + + /** @test */ + public function shouldHaveSaved6Albums() { + $this->assertCount(7, Class_Album::findAll()); + } + + + /** @test */ + public function harvestLogShouldContainsExpectedDate() { + $this->assertEquals('2015-01-18', + Class_WebService_HarvestLog::find(1)->getEndDate()); + } + + + /** @test */ + public function hommageDocTypeShouldBeCiteDeLaMusique() { + $this->assertTrue($this->_hommage->isCiteDeLaMusique()); + } + + + /** @test */ + public function hommageTitreShouldBeHommageAPierreboulez() { + $this->assertEquals('Hommage à Pierre Boulez. Ensemble intercontemporain, Orchestre de Paris, Conservatoire de Paris, Ircam', + $this->_hommage->getTitre()); + } + + + /** @test */ + public function hommageAuthorsShouldContainsPierreBoulez() { + $this->assertContains('Pierre Boulez', $this->_hommage->getAuthorsNames()); + } + + + /** @test */ + public function hommageEditeurShouldBeCiteDeLaMusique() { + $this->assertEquals('Cité de la musique', $this->_hommage->getEditeur()); + } + + + /** @test */ + public function hommageDescriptionShouldContainsHommageAPierreBoulez() { + $this->assertContains('<h3>Hommage à Pierre Boulez. Ensemble', + $this->_hommage->getDescription()); + } + + + /** @test */ + public function hommageDateShouldBe2016() { + $this->assertEquals('2016', $this->_hommage->getAnnee()); + } + + + /** @test */ + public function posterShouldBePPVI000232500Dotjpg() { + $this->assertEquals('http://media.citedelamusique.fr/images/DocThumbs/PPVI000232500.jpg', + $this->_hommage->getPoster()); + } + + + /** @test */ + public function hommageUrlOrigineShouldBeMediaDotCiteDeLaMusique() { + $this->assertEquals('http://media.citedelamusique.fr/EXTRANET/oaiserver.ashx', + $this->_hommage->getUrlOrigine()); + } + + + /** @test */ + public function hommageRights() { + $this->assertEquals('', $this->_hommage->getDroits()); + } + + + /** @test */ + public function hommageAlbumIdOrigine() { + $this->assertEquals('1046000', $this->_hommage->getIdOrigine()); + } + + + /** @test */ + public function hommageMatiereShouldContainsMusiqueContemporaine() { + $mater = Class_CodifMatiere::findFirstBy(['libelle' => 'Musique contemporaine']); + $this->assertContains((string)$mater->getId(), $this->_hommage->getMatiere()); + } + + + /** @test */ + public function risingStarsTitleShouldBeRisingStarsDionysisGrammenos() { + $this->assertEquals('Rising Stars : Dionysis Grammenos', + $this->_rising_stars->getTitre()); + } + + + /** @test */ + public function risingStarsIdOrigineShouldBe1038311() { + $this->assertEquals('1038311', $this->_rising_stars->getIdOrigine()); + } + + + /** @test */ + public function risingStarsAnneeShouldBe2014() { + $this->assertEquals('2014', $this->_rising_stars->getAnnee()); + } + + + /** @test */ + public function risingStarsAuthorsShouldContainsDionysisAndChrisa() { + $names = $this->_rising_stars->getAuthorsNames(); + $this->assertContains('Dionysis Grammenos', $names); + $this->assertContains('Chrisa Grenda', $names); + } + + + /** @test */ + public function risingStarsPublisherShouldBeCiteDeLaMusique() { + $this->assertEquals('Cité de la musique', $this->_rising_stars->getEditeur()); + } + + + /** @test */ + public function risingStarsMatiereShouldBeEmpty() { + $this->assertEquals('', $this->_rising_stars->getMatiere()); + } + + + /** @test */ + public function risingStarsExternalUriShouldBePresent() { + $this->assertEquals('http://media.citedelamusique.fr/medias/doc/EXTRANET/CIMU/1038311/DETAIL', + $this->_rising_stars->getExternalUri()); + } + + + /** @test */ + public function risingStarsDescriptionShouldContainsRisingStars() { + $this->assertContains('<h3>Rising Stars : Dionysis Grammenos</h3>', + $this->_rising_stars->getDescription()); + } +} \ No newline at end of file diff --git a/tests/scenarios/CiteDeLaMusique/cite_de_la_musique_oai.xml b/tests/scenarios/CiteDeLaMusique/cite_de_la_musique_oai.xml new file mode 100644 index 0000000000000000000000000000000000000000..79ea9d998b5ccd89b5293f5cfb011e1331c3b188 --- /dev/null +++ b/tests/scenarios/CiteDeLaMusique/cite_de_la_musique_oai.xml @@ -0,0 +1,96 @@ +<?xml version="1.0" encoding="UTF-8"?><OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"><responseDate>2016-05-12T09:22:43Z</responseDate><request verb="ListRecords">media.citedelamusique.fr/EXTRANET/oaiserver.ashx</request><ListRecords><resumptionToken expirationDate="NEVER" completeListSize="1061" cursor="100" xmlns="">!!videos-concerts-docu-entiers!100!1061!Ermes</resumptionToken><record xmlns=""><header><identifier>1046000</identifier><datestamp>2016-05-12T00:00:00Z</datestamp><setSpec></setSpec></header><metadata><arr name="Author"><str>Pierre Boulez</str><str>Bruno Mantovani</str><str>Ensemble intercontemporain</str><str>Orchestre de Paris</str><str>Etudiants du Conservatoire de Paris</str><str>Institut de Recherche et Coordination Acoustique / Musique</str></arr><arr name="Author_exact"><str>Pierre Boulez</str><str>Bruno Mantovani</str><str>Ensemble intercontemporain</str><str>Orchestre de Paris</str><str>Etudiants du Conservatoire de Paris</str><str>Institut de Recherche et Coordination Acoustique / Musique</str></arr><arr name="ConcertLie"><str>Générique / . - CLC, 2016</str><str>Dialogue de l'ombre double : extraits / Pierre Boulez, compositeur. - CLC, 2016</str><str>Improvisation I sur Mallarmé / Pierre Boulez, compositeur. - CLC, 2016</str><str>Messagesquisse / Pierre Boulez, compositeur. - CLC, 2016</str><str>Dérive 1 / Pierre Boulez, compositeur. - CLC, 2016</str><str>Improvisation II sur Mallarmé / Pierre Boulez, compositeur. - CLC, 2016</str><str>Notations I-IV / Pierre Boulez, compositeur. - CLC, 2016</str><str>Notation pour orchestre VII / Pierre Boulez, compositeur. - CLC, 2016</str></arr><arr name="ConcertLie_id_exact"><str>1051220</str><str>1051221</str><str>1051222</str><str>1051223</str><str>1051226</str><str>1051229</str><str>1051230</str><str>1051231</str></arr><arr name="ConcertLie_video"><str>Générique / . - CLC, 2016</str><str>Dialogue de l'ombre double : extraits / Pierre Boulez, compositeur. - CLC, 2016</str><str>Improvisation I sur Mallarmé / Pierre Boulez, compositeur. - CLC, 2016</str><str>Messagesquisse / Pierre Boulez, compositeur. - CLC, 2016</str><str>Dérive 1 / Pierre Boulez, compositeur. - CLC, 2016</str><str>Improvisation II sur Mallarmé / Pierre Boulez, compositeur. - CLC, 2016</str><str>Notations I-IV / Pierre Boulez, compositeur. - CLC, 2016</str><str>Notation pour orchestre VII / Pierre Boulez, compositeur. - CLC, 2016</str></arr><arr name="ConcertLie_video_id_exact"><str>1051220</str><str>1051221</str><str>1051222</str><str>1051223</str><str>1051226</str><str>1051229</str><str>1051230</str><str>1051231</str></arr><arr name="DateOfInsertion"><str>12/05/2016</str></arr><arr name="DateOfInsertion_idx"><str>20160512</str></arr><str name="DateOfInsertion_sort">20160512093837</str><str name="DateOfPublication">26/01/2016</str><arr name="DossierPedagogique"><str>Le piano</str></arr><arr name="DossierPedagogique_id_exact"><str>0811728</str></arr><arr name="FormDescription"><str>Concert vidéo</str></arr><arr name="FormDescription_exact"><str>Concert vidéo</str></arr><str name="Identifier">1046000</str><str name="Identifier_idx">1046000</str><arr name="PartTitle"><str>Générique / .</str><str>Dialogue de l'ombre double : extraits / Pierre Boulez, compositeur</str><str>Improvisation I sur Mallarmé / Pierre Boulez, compositeur</str><str>Messagesquisse / Pierre Boulez, compositeur</str><str>Dérive 1 / Pierre Boulez, compositeur</str><str>Improvisation II sur Mallarmé / Pierre Boulez, compositeur</str><str>Notations I-IV / Pierre Boulez, compositeur</str><str>Notation pour orchestre VII / Pierre Boulez, compositeur</str></arr><arr name="PartTitle_id_exact"><str>1051220</str><str>1051221</str><str>1051222</str><str>1051223</str><str>1051226</str><str>1051229</str><str>1051230</str><str>1051231</str></arr><arr name="Publisher"><str>Cité de la musique</str></arr><arr name="Publisher_exact"><str>Cité de la musique</str></arr><str name="RightsContract">LIBRE</str><str name="RightsContract_exact">LIBRE</str><str name="RightsContract_idx">LIBRE</str><arr name="SubjectPeriod_exact"><str>20ème siècle (1945-2000)</str></arr><arr name="SubjectTopic_exact"><str>Musique contemporaine</str></arr><arr name="ThumbLarge"><str>/images/DocThumbs/PPVI000232500.jpg</str></arr><arr name="ThumbMedium"><str>/images/DocThumbs/PPVI000232500.jpg</str></arr><arr name="ThumbSmall"><str>/images/DocThumbs/PPVI000232500.jpg</str></arr><str name="Title">Hommage à Pierre Boulez. Ensemble intercontemporain, Orchestre de Paris, Conservatoire de Paris, Ircam</str><arr name="Title_exact"><str>Hommage à Pierre Boulez. Ensemble intercontemporain, Orchestre de Paris, Conservatoire de Paris, Ircam</str></arr><arr name="Title_idx"><str>Hommage à Pierre Boulez. Ensemble intercontemporain, Orchestre de Paris, Conservatoire de Paris, Ircam</str></arr><arr name="TypeOfDocument"><str>Document vidéo</str></arr><arr name="TypeOfDocument_exact"><str>Document vidéo</str></arr><str name="YearOfPublication">2016</str><arr name="YearOfPublication_exact"><str>2016</str></arr><arr name="aloes_date"><str>20160126</str></arr><str name="aloes_date_sort">20160126</str><arr name="artiste_exact"><str>Boulez Pierre</str><str>Mantovani Bruno</str><str>Ensemble intercontemporain</str><str>Orchestre de Paris</str><str>Etudiants du Conservatoire de Paris</str><str>Institut de Recherche et Coordination Acoustique / Musique</str></arr><arr name="artiste_idx"><str>Boulez Pierre</str><str>Mantovani Bruno</str><str>Ensemble intercontemporain</str><str>Orchestre de Paris</str><str>Etudiants du Conservatoire de Paris</str><str>Institut de Recherche et Coordination Acoustique / Musique</str></arr><arr name="auteur_resp_principale"><str>Loisil Jean-Pierre</str></arr><arr name="auteur_resp_secondaire"><str>Pintscher Matthias</str><str>Järvi Paavo</str><str>Mantovani Bruno</str></arr><arr name="chef_facet"><str>Bruno Mantovani</str></arr><arr name="compositeur_facet"><str>Pierre Boulez</str></arr><arr name="compositeur_form_facet"><str>Boulez Pierre</str></arr><arr name="compositeur_idx"><str>Boulez Pierre</str></arr><arr name="contrat"><str>CONTRAT_3</str></arr><arr name="cote_a"><str>NE1065621</str></arr><arr name="cote_g"><str>ARCH 2016-01-26</str></arr><arr name="desc_mat_type_doc"><str>1 h 08 mn 35</str></arr><arr name="descripteur"><str>20 ème siècle - 2 ème moitié</str><str>Musique contemporaine</str></arr><arr name="descripteur_exact"><str>20 ème siècle - 2 ème moitié</str><str>Musique contemporaine</str></arr><arr name="descripteur_idx"><str>20 ème siècle - 2 ème moitié</str><str>Musique contemporaine</str></arr><arr name="genre_facet"><str>Musique contemporaine</str></arr><str name="id">CIMU_1046000</str><arr name="imgtypedocCIMU"><str>general/doctype/concertvideo.jpg</str></arr><arr name="indexation_libre"><str>20 ème siècle - 2 ème moitié</str><str>Musique contemporaine</str></arr><arr name="next_online_idx"><str>N</str></arr><arr name="note_edition"><str>Archivé à la Cité de la musique</str></arr><arr name="of_creator"><str>Loisil Jean-Pierre</str></arr><str name="of_title">Hommage à Pierre Boulez. Ensemble intercontemporain, Orchestre de Paris, Conservatoire de Paris, Ircam</str><arr name="orchestre_facet"><str>Ensemble intercontemporain</str><str>Orchestre de Paris</str><str>Etudiants du Conservatoire de Paris</str><str>Institut de Recherche et Coordination Acoustique / Musique</str></arr><arr name="orchestre_idx"><str>Ensemble intercontemporain</str><str>Orchestre de Paris</str><str>Etudiants du Conservatoire de Paris</str><str>Institut de Recherche et Coordination Acoustique / Musique</str></arr><arr name="periode_histo_facet"><str>20ème siècle (1945-2000)</str></arr><arr name="publication_date"><str>2016</str></arr><arr name="publication_date_facet"><str>2016</str></arr><arr name="publication_editeur"><str>CLC</str></arr><arr name="publication_editeur_facet"><str>CLC</str></arr><arr name="publication_lieu"><str>Paris</str></arr><arr name="sim_author"><str>0980439</str><str>0748111</str><str>0034649</str><str>0949049</str><str>0048780</str></arr><arr name="sim_author_idx"><str>0980439</str><str>0748111</str><str>0034649</str><str>0949049</str><str>0048780</str></arr><arr name="sous_ensemble"><str>1051220</str><str>1051221</str><str>1051222</str><str>1051223</str><str>1051226</str><str>1051229</str><str>1051230</str><str>1051231</str></arr><arr name="spellingShingle"><str>Hommage à Pierre Boulez. Ensemble intercontemporain, Orchestre de Paris, Conservatoire de Paris, Ircam</str><str>Pierre Boulez</str><str>Bruno Mantovani</str><str>Ensemble intercontemporain</str><str>Orchestre de Paris</str><str>Etudiants du Conservatoire de Paris</str><str>Institut de Recherche et Coordination Acoustique / Musique</str></arr><arr name="supportLabel_facet"><str>Concerts vidéo</str></arr><arr name="support_facet"><str>CONCERTS_VIDEO</str></arr><str name="sys_base">CIMU</str><arr name="sys_id"><str>1046000</str></arr><str name="sys_support">UNI4C</str><arr name="target_exact"><str>CIMU</str></arr><arr name="th_poly_id"><str>0067731</str><str>0067139</str></arr><arr name="th_poly_id_idx"><str>0067731</str><str>0067139</str></arr><arr name="titre_complement"><str>concert enregistré à la Philharmonie de Paris (grande salle) le 26 janvier 2016</str></arr><arr name="titre_mention_resp"><str>Ensemble intercontemporain, Orchestre de Paris, Elèves du Conservatoire de Paris</str><str>Matthias Pintscher, Paavo Järvi, Bruno Mantovani, direction</str></arr><arr name="titre_mention_resp_exact"><str>Ensemble intercontemporain, Orchestre de Paris, Elèves du Conservatoire de Paris</str><str>Matthias Pintscher, Paavo Järvi, Bruno Mantovani, direction</str></arr><arr name="titre_mention_resp_prem"><str>Jean-Pierre Loisil, réalisation ; Pierre Boulez, compositeur</str></arr><arr name="titre_mention_resp_prem_exact"><str>Jean-Pierre Loisil, réalisation ; Pierre Boulez, compositeur</str></arr><arr name="titre_propre"><str>Hommage à Pierre Boulez. Ensemble intercontemporain, Orchestre de Paris, Conservatoire de Paris, Ircam</str></arr><arr name="titre_type_ressource"><str>image animée</str></arr><str name="FullRefToDisplay"><h3>Hommage à Pierre Boulez. Ensemble intercontemporain, Orchestre de Paris, Conservatoire de Paris, Ircam</h3> +<br /><span> + <div class="logo_cimu" style="float:right;"> + <img class="logo_cimu" src="http://media.citedelamusique.fr/images/logo-citedelamusique-paris-2.png" title="Cité de la musique" alt="Cité de la musique" /> + </div> +concert enregistré à la Philharmonie de Paris (grande salle) le 26 janvier 2016 +<br/> +</span> +1 h 08 mn 35 + <br/> + +<br/> + <span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>Jean-Pierre Loisil, réalisation ; Pierre Boulez, compositeur</li></ul></span> + +<br/> + <span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>Ensemble intercontemporain, Orchestre de Paris, Elèves du Conservatoire de Paris</li><li class='desc-list-item'>Matthias Pintscher, Paavo Järvi, Bruno Mantovani, direction</li></ul></span> +<br/> + +<span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>Musique contemporaine</li></ul></span> + <span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>20ème siècle (1945-2000)</li></ul></span> +<br/> +<b>Plages :</b> +<span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>Générique / .</li><li class='desc-list-item'>Dialogue de l'ombre double : extraits / Pierre Boulez, compositeur</li><li class='desc-list-item'>Improvisation I sur Mallarmé / Pierre Boulez, compositeur</li><li class='desc-list-item'>Messagesquisse / Pierre Boulez, compositeur</li><li class='desc-list-item'>Dérive 1 / Pierre Boulez, compositeur</li><li class='desc-list-item'>Improvisation II sur Mallarmé / Pierre Boulez, compositeur</li><li class='desc-list-item'>Notations I-IV / Pierre Boulez, compositeur</li><li class='desc-list-item'>Notation pour orchestre VII / Pierre Boulez, compositeur</li></ul></span> +<br/> + +</str><str name="ShortRefToDisplay"><table><tr><td><img src="/Skins/Exploitation/images/general/doctype/$icon"/></td><td><strong>Titre :</strong> <br/><strong>Auteur :</strong> Loisil Jean-Pierre<br/></div></td></tr></table> </str><arr name="PrimaryDoc"><str>http://media.citedelamusique.fr/medias/doc/EXTRANET/CIMU/1046000/DETAIL</str></arr></metadata></record><record xmlns=""><header><identifier>1050857</identifier><datestamp>2016-05-11T00:00:00Z</datestamp><setSpec></setSpec></header><metadata><arr name="Contient"><str>Intervenants : Christophe Mazzella, réalisateur musical, ingénieur du son ; Bénédicte Schmitt, ingénieure du son, réalisatrice artistique, Labomatic Studios</str></arr><arr name="DateOfInsertion"><str>11/05/2016</str></arr><arr name="DateOfInsertion_idx"><str>20160511</str></arr><str name="DateOfInsertion_sort">20160511074826</str><arr name="FormDescription"><str>Documentaire et conférence</str></arr><arr name="FormDescription_exact"><str>Documentaire et conférence</str></arr><str name="Identifier">1050857</str><str name="Identifier_idx">1050857</str><arr name="PartTitle"><str>Parcours / avec Christophe Mazzella, Bénédicte Schmitt, intervenants</str><str>Les champs d'activité / avec Christophe Mazzella, Bénédicte Schmitt, intervenants</str><str>Se former / avec Christophe Mazzella, Bénédicte Schmitt, intervenants</str><str>Les outils et la technologie / avec Christophe Mazzella, Bénédicte Schmitt, intervenants</str><str>La dimension artistique et créative / avec Christophe Mazzella, Bénédicte Schmitt, intervenants</str><str>Statut et réseau / avec Christophe Mazzella, Bénédicte Schmitt, intervenants</str><str>L'insertion professionnelle / avec Christophe Mazzella, Bénédicte Schmitt, intervenants</str></arr><arr name="PartTitle_id_exact"><str>1051114</str><str>1051117</str><str>1051120</str><str>1051122</str><str>1051124</str><str>1051125</str><str>1051126</str></arr><arr name="Publisher"><str>Cité de la musique</str></arr><arr name="Publisher_exact"><str>Cité de la musique</str></arr><str name="RightsContract">LIBRE</str><str name="RightsContract_exact">LIBRE</str><str name="RightsContract_idx">LIBRE</str><arr name="SubjectTopic_exact"><str>Métiers de la musique</str></arr><arr name="ThumbLarge"><str>/images/DocThumbs/RMVI000230400.jpg</str></arr><arr name="ThumbMedium"><str>/images/DocThumbs/RMVI000230400.jpg</str></arr><arr name="ThumbSmall"><str>/images/DocThumbs/RMVI000230400.jpg</str></arr><str name="Title">Rencontres métiers : ingénieur du son</str><arr name="Title_exact"><str>Rencontres métiers : ingénieur du son</str></arr><arr name="Title_idx"><str>Rencontres métiers : ingénieur du son</str></arr><arr name="TypeOfDocument"><str>Document audiovisuel</str></arr><arr name="TypeOfDocument_exact"><str>Document audiovisuel</str></arr><arr name="auteur_resp_principale"><str>Bouyer Pierre-Jean</str></arr><arr name="auteur_resp_secondaire"><str>Mazzella Christophe</str><str>Schmitt Bénédicte</str><str>Lesaffre Marion</str></arr><arr name="autres_personnes_facet"><str>Christophe Mazzella</str><str>Bénédicte Schmitt</str><str>Marion Lesaffre</str></arr><arr name="contrat"><str>CONTRAT_3</str></arr><arr name="cote_a"><str>NE1068953</str></arr><arr name="cote_g"><str>RMVI000230400</str></arr><arr name="desc_mat_type_doc"><str>59 mn 34</str></arr><arr name="descripteur"><str>Documentaire</str><str>Agent artistique</str><str>Métier de la musique</str></arr><arr name="descripteur_exact"><str>Documentaire</str><str>Agent artistique</str><str>Métier de la musique</str></arr><arr name="descripteur_idx"><str>Documentaire</str><str>Agent artistique</str><str>Métier de la musique</str></arr><str name="id">CIMU_1050857</str><arr name="imgtypedocCIMU"><str>general/doctype/video2.gif</str></arr><arr name="indexation_libre"><str>Documentaire</str><str>Agent artistique</str><str>Métier de la musique</str></arr><arr name="next_online_idx"><str>N</str></arr><arr name="of_creator"><str>Bouyer Pierre-Jean</str></arr><str name="of_title">Rencontres métiers : ingénieur du son</str><arr name="publication_date"><str>2016</str></arr><arr name="publication_date_facet"><str>2016</str></arr><arr name="publication_editeur"><str>Philharmonie de Paris</str></arr><arr name="publication_editeur_facet"><str>Philharmonie de Paris</str></arr><arr name="publication_lieu"><str>Paris</str></arr><arr name="sim_author"><str>0939672</str><str>1050858</str><str>1050859</str><str>0978174</str></arr><arr name="sim_author_idx"><str>0939672</str><str>1050858</str><str>1050859</str><str>0978174</str></arr><arr name="sous_ensemble"><str>1051114</str><str>1051117</str><str>1051120</str><str>1051122</str><str>1051124</str><str>1051125</str><str>1051126</str></arr><arr name="spellingShingle"><str>Rencontres métiers : ingénieur du son</str></arr><arr name="supportLabel_facet"><str>Documentaires et conférences</str></arr><arr name="support_facet"><str>CONFERENCES</str></arr><str name="sys_base">CIMU</str><arr name="sys_id"><str>1050857</str></arr><str name="sys_support">UNI4</str><arr name="target_exact"><str>CIMU</str></arr><arr name="th_poly_id"><str>0067749</str><str>0831337</str><str>0068727</str></arr><arr name="th_poly_id_idx"><str>0067749</str><str>0831337</str><str>0068727</str></arr><arr name="titre_complement"><str>27 janvier 2016</str></arr><arr name="titre_mention_resp"><str>avec Christophe Mazzella, Bénédicte Schmitt, intervenants</str><str>Marion Lesaffre, animatrice de la rencontre</str></arr><arr name="titre_mention_resp_exact"><str>avec Christophe Mazzella, Bénédicte Schmitt, intervenants</str><str>Marion Lesaffre, animatrice de la rencontre</str></arr><arr name="titre_mention_resp_prem"><str>Pierre-Jean Bouyer, réalisation</str></arr><arr name="titre_mention_resp_prem_exact"><str>Pierre-Jean Bouyer, réalisation</str></arr><arr name="titre_propre"><str>Rencontres métiers : ingénieur du son</str></arr><arr name="titre_type_ressource"><str>image animée</str></arr><str name="FullRefToDisplay"><h3>Rencontres métiers : ingénieur du son</h3> + <div class="logo_cimu" style="float:right;"> + <img class="logo_cimu" src="http://media.citedelamusique.fr/images/logo-citedelamusique-paris-2.png" title="Cité de la musique" alt="Cité de la musique" /> + </div> +<h3>27 janvier 2016</h3> + 59 mn 34 +<span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>Pierre-Jean Bouyer, réalisation</li></ul></span> + <span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>avec Christophe Mazzella, Bénédicte Schmitt, intervenants</li><li class='desc-list-item'>Marion Lesaffre, animatrice de la rencontre</li></ul></span> + +<br />Documentaire et conférence + <br/> + + +<br /><b>Plages :</b> +<span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>Parcours / avec Christophe Mazzella, Bénédicte Schmitt, intervenants</li><li class='desc-list-item'>Les champs d'activité / avec Christophe Mazzella, Bénédicte Schmitt, intervenants</li><li class='desc-list-item'>Se former / avec Christophe Mazzella, Bénédicte Schmitt, intervenants</li><li class='desc-list-item'>Les outils et la technologie / avec Christophe Mazzella, Bénédicte Schmitt, intervenants</li><li class='desc-list-item'>La dimension artistique et créative / avec Christophe Mazzella, Bénédicte Schmitt, intervenants</li><li class='desc-list-item'>Statut et réseau / avec Christophe Mazzella, Bénédicte Schmitt, intervenants</li><li class='desc-list-item'>L'insertion professionnelle / avec Christophe Mazzella, Bénédicte Schmitt, intervenants</li></ul></span> +<br/> +<br/> + + + + +</str><str name="ShortRefToDisplay"><table><tr><td><img src="/Skins/Exploitation/images/general/doctype/$icon"/></td><td><strong>Titre :</strong> <br/><strong>Auteur :</strong> Bouyer Pierre-Jean<br/></div></td></tr></table> </str><arr name="PrimaryDoc"><str>http://media.citedelamusique.fr/medias/doc/EXTRANET/CIMU/1050857/DETAIL</str></arr></metadata></record><record xmlns=""><header><identifier>1045013</identifier><datestamp>2016-05-11T00:00:00Z</datestamp><setSpec></setSpec></header><metadata><arr name="Author"><str>Pierre Henry</str><str>Michel Colombier</str><str>Ecole Supérieure du Centre National de Danse Contemporaine</str></arr><arr name="Author_exact"><str>Pierre Henry</str><str>Michel Colombier</str><str>Ecole Supérieure du Centre National de Danse Contemporaine</str></arr><arr name="ConcertLie"><str>Continuo ou vision d'un futur : commande de la Philharmonie de Paris, création / Pierre Henry, compositeur, projection sonore. - Héliox Films, 2016</str><str>Messe pour le Temps présent / Pierre Henry, Michel Colombier, compositeurs. - Héliox Films, 2016</str><str>Grand remix / Pierre Henry, Michel Colombier, compositeurs. - Héliox Films, 2016</str></arr><arr name="ConcertLie_id_exact"><str>1050369</str><str>1050593</str><str>1050719</str></arr><arr name="ConcertLie_video"><str>Continuo ou vision d'un futur : commande de la Philharmonie de Paris, création / Pierre Henry, compositeur, projection sonore. - Héliox Films, 2016</str><str>Messe pour le Temps présent / Pierre Henry, Michel Colombier, compositeurs. - Héliox Films, 2016</str><str>Grand remix / Pierre Henry, Michel Colombier, compositeurs. - Héliox Films, 2016</str></arr><arr name="ConcertLie_video_id_exact"><str>1050369</str><str>1050593</str><str>1050719</str></arr><arr name="DateOfInsertion"><str>11/05/2016</str></arr><arr name="DateOfInsertion_idx"><str>20160511</str></arr><str name="DateOfInsertion_sort">20160511074825</str><str name="DateOfPublication">09/01/2016</str><arr name="FormDescription"><str>Concert vidéo</str></arr><arr name="FormDescription_exact"><str>Concert vidéo</str></arr><str name="Identifier">1045013</str><str name="Identifier_idx">1045013</str><arr name="PartTitle"><str>Continuo ou vision d'un futur / Pierre Henry, compositeur, projection sonore</str><str>Messe pour le Temps présent / Pierre Henry, Michel Colombier, compositeurs</str><str>Grand remix / Pierre Henry, Michel Colombier, compositeurs</str></arr><arr name="PartTitle_id_exact"><str>1050369</str><str>1050593</str><str>1050719</str></arr><arr name="Programme"><str>Week-end Remix. Pierre Henry, maintenant et demain</str></arr><arr name="Programme_id_exact"><str>1045933</str></arr><arr name="Publisher"><str>Cité de la musique</str></arr><arr name="Publisher_exact"><str>Cité de la musique</str></arr><str name="RightsContract">LIBRE</str><str name="RightsContract_exact">LIBRE</str><str name="RightsContract_idx">LIBRE</str><arr name="SubjectPeriod_exact"><str>20ème siècle (1945-2000)</str><str>21ème siècle</str></arr><arr name="SubjectTopic_exact"><str>Musique contemporaine</str></arr><arr name="ThumbLarge"><str>/images/DocThumbs/PPVI000231200.jpg</str></arr><arr name="ThumbMedium"><str>/images/DocThumbs/PPVI000231200.jpg</str></arr><arr name="ThumbSmall"><str>/images/DocThumbs/PPVI000231200.jpg</str></arr><str name="Title">Pierre Henry, maintenant et demain</str><arr name="Title_exact"><str>Pierre Henry, maintenant et demain</str></arr><arr name="Title_idx"><str>Pierre Henry, maintenant et demain</str></arr><arr name="TypeOfDocument"><str>Document vidéo</str></arr><arr name="TypeOfDocument_exact"><str>Document vidéo</str></arr><str name="YearOfPublication">2016</str><arr name="YearOfPublication_exact"><str>2016</str></arr><arr name="aloes_date"><str>20160109</str></arr><str name="aloes_date_sort">20160109</str><arr name="artiste_exact"><str>Henry Pierre</str><str>Colombier Michel</str><str>Ecole Supérieure du Centre National de Danse Contemporaine</str></arr><arr name="artiste_idx"><str>Henry Pierre</str><str>Colombier Michel</str><str>Ecole Supérieure du Centre National de Danse Contemporaine</str></arr><arr name="auteur_resp_principale"><str>Cassou Jérôme</str></arr><arr name="compositeur_facet"><str>Pierre Henry</str><str>Michel Colombier</str></arr><arr name="compositeur_form_facet"><str>Henry Pierre</str><str>Colombier Michel</str></arr><arr name="compositeur_idx"><str>Henry Pierre</str><str>Colombier Michel</str></arr><arr name="contrat"><str>CONTRAT_3</str></arr><arr name="cote_a"><str>NE1064901</str></arr><arr name="cote_g"><str>ARCH 2016-01-09</str></arr><arr name="desc_mat_type_doc"><str>1 h 27 mn 39</str></arr><arr name="descripteur"><str>Musique contemporaine</str><str>Danse</str><str>Danse contemporaine</str><str>20 ème siècle - 2 ème moitié</str><str>21 ème siècle</str></arr><arr name="descripteur_exact"><str>Musique contemporaine</str><str>Danse</str><str>Danse contemporaine</str><str>20 ème siècle - 2 ème moitié</str><str>21 ème siècle</str></arr><arr name="descripteur_idx"><str>Musique contemporaine</str><str>Danse</str><str>Danse contemporaine</str><str>20 ème siècle - 2 ème moitié</str><str>21 ème siècle</str></arr><arr name="genre_facet"><str>Musique contemporaine</str></arr><str name="id">CIMU_1045013</str><arr name="imgtypedocCIMU"><str>general/doctype/concertvideo.jpg</str></arr><arr name="indexation_libre"><str>Musique contemporaine</str><str>Danse</str><str>Danse contemporaine</str><str>20 ème siècle - 2 ème moitié</str><str>21 ème siècle</str></arr><arr name="next_online_idx"><str>N</str></arr><arr name="note_edition"><str>Archivé à la Cité de la musique</str></arr><arr name="note_programme"><str>1045933</str></arr><arr name="of_creator"><str>Cassou Jérôme</str></arr><str name="of_title">Pierre Henry, maintenant et demain</str><arr name="orchestre_facet"><str>Ecole Supérieure du Centre National de Danse Contemporaine</str></arr><arr name="orchestre_idx"><str>Ecole Supérieure du Centre National de Danse Contemporaine</str></arr><arr name="periode_histo_facet"><str>20ème siècle (1945-2000)</str><str>21ème siècle</str></arr><arr name="publication_date"><str>2015</str></arr><arr name="publication_date_facet"><str>2015</str></arr><arr name="publication_editeur"><str>Héliox Films</str></arr><arr name="publication_editeur_facet"><str>Héliox Films</str></arr><arr name="publication_lieu"><str>Paris</str></arr><arr name="sim_author"><str>1050367</str><str>0055491</str><str>0045571</str><str>0055280</str><str>1045016</str></arr><arr name="sim_author_idx"><str>1050367</str><str>0055491</str><str>0045571</str><str>0055280</str><str>1045016</str></arr><arr name="sous_ensemble"><str>1050369</str><str>1050593</str><str>1050719</str></arr><arr name="spellingShingle"><str>Pierre Henry, maintenant et demain</str><str>Pierre Henry</str><str>Michel Colombier</str><str>Ecole Supérieure du Centre National de Danse Contemporaine</str></arr><arr name="supportLabel_facet"><str>Concerts vidéo</str></arr><arr name="support_facet"><str>CONCERTS_VIDEO</str></arr><str name="sys_base">CIMU</str><arr name="sys_id"><str>1045013</str></arr><str name="sys_support">UNI4C</str><arr name="target_exact"><str>CIMU</str></arr><arr name="th_poly_id"><str>0067139</str><str>0067304</str><str>0067182</str><str>0067731</str><str>0145872</str></arr><arr name="th_poly_id_idx"><str>0067139</str><str>0067304</str><str>0067182</str><str>0067731</str><str>0145872</str></arr><arr name="titre_complement"><str>concert enregistré à la Philharmonie de Paris (salle des concerts) le 09 janvier 2016</str></arr><arr name="titre_mention_resp"><str>Maurice Béjart, Hervé Robbe, chorégraphie</str><str>Ecole Supérieure du Centre National de Danse Contemporaine (Angers)</str></arr><arr name="titre_mention_resp_exact"><str>Maurice Béjart, Hervé Robbe, chorégraphie</str><str>Ecole Supérieure du Centre National de Danse Contemporaine (Angers)</str></arr><arr name="titre_mention_resp_prem"><str>Jérôme Cassou, réalisation ; Pierre Henry, compositeur, projection sonore</str></arr><arr name="titre_mention_resp_prem_exact"><str>Jérôme Cassou, réalisation ; Pierre Henry, compositeur, projection sonore</str></arr><arr name="titre_propre"><str>Pierre Henry, maintenant et demain</str></arr><arr name="titre_type_ressource"><str>image animée</str></arr><str name="FullRefToDisplay"><h3>Pierre Henry, maintenant et demain</h3> +<br /><span> + <div class="logo_cimu" style="float:right;"> + <img class="logo_cimu" src="http://media.citedelamusique.fr/images/logo-citedelamusique-paris-2.png" title="Cité de la musique" alt="Cité de la musique" /> + </div> +concert enregistré à la Philharmonie de Paris (salle des concerts) le 09 janvier 2016 +<br/> +</span> +1 h 27 mn 39 + <br/> + +<br/> + <span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>Jérôme Cassou, réalisation ; Pierre Henry, compositeur, projection sonore</li></ul></span> + +<br/> + <span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>Maurice Béjart, Hervé Robbe, chorégraphie</li><li class='desc-list-item'>Ecole Supérieure du Centre National de Danse Contemporaine (Angers)</li></ul></span> +<br/> + +<span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>Musique contemporaine</li></ul></span> + <span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>20ème siècle (1945-2000)</li><li class='desc-list-item'>21ème siècle</li></ul></span> +<br/> +<b>Plages :</b> +<span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>Continuo ou vision d'un futur / Pierre Henry, compositeur, projection sonore</li><li class='desc-list-item'>Messe pour le Temps présent / Pierre Henry, Michel Colombier, compositeurs</li><li class='desc-list-item'>Grand remix / Pierre Henry, Michel Colombier, compositeurs</li></ul></span> +<br/> + +</str><str name="ShortRefToDisplay"><table><tr><td><img src="/Skins/Exploitation/images/general/doctype/$icon"/></td><td><strong>Titre :</strong> <br/><strong>Auteur :</strong> Cassou Jérôme<br/></div></td></tr></table> </str><arr name="PrimaryDoc"><str>http://media.citedelamusique.fr/medias/doc/EXTRANET/CIMU/1045013/DETAIL</str></arr></metadata></record><record xmlns=""><header><identifier>0086349</identifier><datestamp>2016-05-03T00:00:00Z</datestamp><setSpec></setSpec></header><metadata><arr name="Author"><str>Brenda Fassie</str><str>Yvonne Chaka Chaka</str><str> Chicco</str><str>Lucky Dube</str><str>Lawrence B. Mavlunda</str><str>Mbongeni Ngema</str><str>Ray Phiri</str><str>Sister Blaze</str><str> Stimela</str><str>King Stars Brothers</str></arr><arr name="Author_exact"><str>Brenda Fassie</str><str>Yvonne Chaka Chaka</str><str> Chicco</str><str>Lucky Dube</str><str>Lawrence B. Mavlunda</str><str>Mbongeni Ngema</str><str>Ray Phiri</str><str>Sister Blaze</str><str> Stimela</str><str>King Stars Brothers</str></arr><arr name="DateOfInsertion"><str>03/05/2016</str></arr><arr name="DateOfInsertion_idx"><str>20160503</str></arr><str name="DateOfInsertion_sort">20160503074855</str><arr name="FormDescription"><str>Documentaire et conférence</str></arr><arr name="FormDescription_exact"><str>Documentaire et conférence</str></arr><str name="Identifier">0086349</str><str name="Identifier_idx">0086349</str><arr name="Notes"><str>Avec Brenda Fassie, Yvonne Chaka-Chaka, Chicco, Lucky Dube, King Stars Brothers, Lawrence B. Mavlunda, Mbongeni Ngema, Ray Phiri, Sister Blaze, Stimela</str></arr><arr name="Publisher"><str>Cité de la musique</str></arr><arr name="Publisher_exact"><str>Cité de la musique</str></arr><arr name="Resume"><str>Reportage sur la pratique musicale dans le township du sud-ouest de Johannesburg, Soweto, sur fond de réalités sociales. Ce 2e film traite de la musique actuelle issue des faubourgs des grandes villes sud-africaines, des fractures sociales qui orientent la création avec des influences venues du reggae</str></arr><str name="RightsContract">LIBRE</str><str name="RightsContract_exact">LIBRE</str><str name="RightsContract_idx">LIBRE</str><arr name="SubjectLocation_exact"><str>Afrique du Sud</str></arr><arr name="SubjectTopic_exact"><str>Chanson</str><str>Musiques traditionnelles</str></arr><arr name="ThumbLarge"><str>/images/DocThumbs/CFVI000057800.jpg</str></arr><arr name="ThumbMedium"><str>/images/DocThumbs/CFVI000057800.jpg</str></arr><arr name="ThumbSmall"><str>/images/DocThumbs/CFVI000057800.jpg</str></arr><str name="Title">Musiques noires en Afrique du Sud</str><arr name="Title_exact"><str>Musiques noires en Afrique du Sud</str></arr><arr name="Title_idx"><str>Musiques noires en Afrique du Sud</str></arr><arr name="TypeOfDocument"><str>Document audiovisuel</str></arr><arr name="TypeOfDocument_exact"><str>Document audiovisuel</str></arr><arr name="artiste_exact"><str>Fassie Brenda</str><str>Chaka Chaka Yvonne</str><str>Chicco </str><str>Dube Lucky</str><str>Mavlunda Lawrence B.</str><str>Ngema Mbongeni</str><str>Phiri Ray</str><str>Blaze Sister</str><str>Stimela </str><str>King Stars Brothers</str></arr><arr name="artiste_idx"><str>Fassie Brenda</str><str>Chaka Chaka Yvonne</str><str>Chicco</str><str>Dube Lucky</str><str>Mavlunda Lawrence B.</str><str>Ngema Mbongeni</str><str>Phiri Ray</str><str>Blaze Sister</str><str>Stimela</str><str>King Stars Brothers</str></arr><arr name="auteur_resp_principale"><str>Fléouter Claude</str></arr><arr name="auteur_resp_secondaire"><str>Fassie Brenda</str><str>Chaka Chaka Yvonne</str><str>Chicco</str><str>Dube Lucky</str><str>Mavlunda Lawrence B.</str><str>Ngema Mbongeni</str><str>Phiri Ray</str><str>Blaze Sister</str><str>Stimela</str></arr><arr name="contrat"><str>CONTRAT_1</str></arr><arr name="cote_a"><str>V 578</str></arr><arr name="cote_g"><str>V 578</str></arr><arr name="desc_mat_type_doc"><str>49 min 41</str></arr><arr name="descripteur"><str>Documentaire</str><str>Chanson</str><str>Afrique du Sud</str><str>Soweto</str><str>Musique traditionnelle</str></arr><arr name="descripteur_exact"><str>Documentaire</str><str>Chanson</str><str>Afrique du Sud</str><str>Soweto</str><str>Musique traditionnelle</str></arr><arr name="descripteur_idx"><str>Documentaire</str><str>Chanson</str><str>Afrique du Sud</str><str>Soweto</str><str>Musique traditionnelle</str></arr><arr name="eidmpa"><str>CFVI000057801_01</str></arr><arr name="genre_facet"><str>Chanson</str><str>Musiques traditionnelles</str></arr><str name="id">CIMU_0086349</str><arr name="imgtypedocCIMU"><str>general/doctype/video2.gif</str></arr><arr name="indexation_libre"><str>Documentaire</str><str>Chanson</str><str>Afrique du Sud</str><str>Soweto</str><str>Musique traditionnelle</str></arr><arr name="interprete_facet"><str>Brenda Fassie</str><str>Yvonne Chaka Chaka</str><str> Chicco</str><str>Lucky Dube</str><str>Lawrence B. Mavlunda</str><str>Mbongeni Ngema</str><str>Ray Phiri</str><str>Sister Blaze</str><str> Stimela</str></arr><arr name="lieux_facet"><str>Afrique du Sud</str></arr><arr name="next_online_idx"><str>N</str></arr><arr name="of_creator"><str>Fléouter Claude</str></arr><str name="of_title">Musiques noires en Afrique du Sud</str><arr name="orchestre_facet"><str>King Stars Brothers</str></arr><arr name="orchestre_idx"><str>King Stars Brothers</str></arr><arr name="publication_date"><str>1990</str></arr><arr name="publication_date_facet"><str>1990</str></arr><arr name="publication_editeur"><str>La Sept ; FR3 ; Télescope audiovisuel</str></arr><arr name="publication_editeur_facet"><str>La Sept ; FR3 ; Télescope audiovisuel</str></arr><arr name="publication_lieu"><str>Paris</str></arr><arr name="sim_author"><str>0061241</str><str>0809446</str><str>0809429</str><str>0809432</str><str>0809433</str><str>0807540</str><str>0809439</str><str>0809440</str><str>0809441</str><str>0809443</str><str>0809445</str></arr><arr name="sim_author_idx"><str>0061241</str><str>0809446</str><str>0809429</str><str>0809432</str><str>0809433</str><str>0807540</str><str>0809439</str><str>0809440</str><str>0809441</str><str>0809443</str><str>0809445</str></arr><arr name="spellingShingle"><str>Musiques noires en Afrique du Sud</str><str>Brenda Fassie</str><str>Yvonne Chaka Chaka</str><str> Chicco</str><str>Lucky Dube</str><str>Lawrence B. Mavlunda</str><str>Mbongeni Ngema</str><str>Ray Phiri</str><str>Sister Blaze</str><str> Stimela</str><str>King Stars Brothers</str></arr><arr name="supportLabel_facet"><str>Documentaires et conférences</str></arr><arr name="support_facet"><str>CONFERENCES</str></arr><str name="sys_base">CIMU</str><arr name="sys_id"><str>0086349</str></arr><str name="sys_support">UNI4</str><arr name="target_exact"><str>CIMU</str></arr><arr name="th_lieux_id"><str>TH_LIEUX_00000006</str></arr><arr name="th_poly_id"><str>0067749</str><str>0068610</str><str>0150352</str><str>0068484</str><str>0067227</str></arr><arr name="th_poly_id_idx"><str>0067749</str><str>0068610</str><str>0150352</str><str>0068484</str><str>0067227</str></arr><arr name="titre_complement"><str>Soweto</str></arr><arr name="titre_mention_resp"><str>co-auteur Frédéric Variot</str></arr><arr name="titre_mention_resp_exact"><str>co-auteur Frédéric Variot</str></arr><arr name="titre_mention_resp_prem"><str>un film de Claude Fléouter</str></arr><arr name="titre_mention_resp_prem_exact"><str>un film de Claude Fléouter</str></arr><arr name="titre_propre"><str>Musiques noires en Afrique du Sud</str></arr><arr name="titre_type_ressource"><str>image animée</str></arr><str name="FullRefToDisplay"><h3>Musiques noires en Afrique du Sud</h3> + <div class="logo_cimu" style="float:right;"> + <img class="logo_cimu" src="http://media.citedelamusique.fr/images/logo-citedelamusique-paris-2.png" title="Cité de la musique" alt="Cité de la musique" /> + </div> +<h3>Soweto</h3> + 49 min 41 +<span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>un film de Claude Fléouter</li></ul></span> + <span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>co-auteur Frédéric Variot</li></ul></span> + +<br />Documentaire et conférence + <br/> + +<br/><b> Genre </b> <br /> +<span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>Chanson</li><li class='desc-list-item'>Musiques traditionnelles</li></ul></span> + +<br /> +<b>Auteur(s) / Interprète(s)</b> +<br /> +<span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>Fassie Brenda</li><li class='desc-list-item'>Chaka Chaka Yvonne</li><li class='desc-list-item'>Chicco </li><li class='desc-list-item'>Dube Lucky</li><li class='desc-list-item'>Mavlunda Lawrence B.</li><li class='desc-list-item'>Ngema Mbongeni</li><li class='desc-list-item'>Phiri Ray</li><li class='desc-list-item'>Blaze Sister</li><li class='desc-list-item'>Stimela </li><li class='desc-list-item'>King Stars Brothers</li></ul></span> +<br/> + + + + +</str><str name="ShortRefToDisplay"><table><tr><td><img src="/Skins/Exploitation/images/general/doctype/$icon"/></td><td><strong>Titre :</strong> <br/><strong>Auteur :</strong> Fléouter Claude<br/></div></td></tr></table> </str><arr name="PrimaryDoc"><str>http://media.citedelamusique.fr/medias/doc/EXTRANET/CIMU/0086349/DETAIL</str></arr></metadata></record></ListRecords></OAI-PMH> diff --git a/tests/scenarios/CiteDeLaMusique/cite_de_la_musique_oai_audios.xml b/tests/scenarios/CiteDeLaMusique/cite_de_la_musique_oai_audios.xml new file mode 100644 index 0000000000000000000000000000000000000000..29581b2764e2ea6e3ac50dde767a9e205f05d065 --- /dev/null +++ b/tests/scenarios/CiteDeLaMusique/cite_de_la_musique_oai_audios.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?><OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"><responseDate>2016-06-16T07:15:05Z</responseDate><request verb="ListRecords">media.citedelamusique.fr/EXTRANET/oaiserver.ashx</request><ListRecords><record xmlns=""><header><identifier>1038311</identifier><datestamp>2016-06-15T00:00:00Z</datestamp><setSpec></setSpec></header><metadata><arr name="Author"><str>Dionysis Grammenos</str><str>Chrisa Grenda</str></arr><arr name="Author_exact"><str>Dionysis Grammenos</str><str>Chrisa Grenda</str></arr><arr name="ConcertLie"><str>Drei Phantasiestücke op.73 pour clarinette et piano / Robert Schumann ; Dionysis Grammenos, clarinette ; Chrisa Grenda, piano, 11 min 25 sec</str><str>Rigoletto, Fantasia da concerto / Luigi Bassi ; d'après Giuseppe Verdi ; Dionysis Grammenos, clarinette ; Chrisa Grenda, piano, 12 min 35 sec</str><str>Vocalise op. 34 no 14 [version pour clarinette et piano] / Sergueï Rachmaninov ; Dionysis Grammenos, clarinette ; Chrisa Grenda, piano, 4 min 56 sec</str><str>Après un rêve, en ut mineur, op. 7 no 1 (version pour clarinette et piano) / Gabriel Fauré ; Dionysis Grammenos, clarinette ; Chrisa Grenda, piano, 3 min 34 sec</str><str>Solo de concours pour clarinette avec accompagnement de piano / André Messager ; Dionysis Grammenos, clarinette ; Chrisa Grenda, piano, 5 min 58 sec</str><str>Sonate pour clarinette et piano / Francis Poulenc ; Dionysis Grammenos, clarinette ; Chrisa Grenda, piano, 13 min 11 sec</str><str>Celebration XVI, pour clarinette seule / Théodore Antoniou ; Dionysis Grammenos, clarinette, 8 min 50 sec</str><str>Fantaisie sur des airs de Carmen de Bizet, op. 25 [Extrait] / Pablo de Sarasate ; Dionysis Grammenos, clarinette ; Chrisa Grenda, piano, 6 min 3 sec</str><str>Hommage a Manuel de Falla / Bela Kovacs ; Dionysis Grammenos, clarinette, 3 min 22 sec</str><str>E lucevan le stette, extrait de "Tosca" (Acte 3), version pour clarinette seule / Giacomo Puccini ; Dionysis Grammenos, clarinette, 1 min 54 sec</str></arr><arr name="ConcertLie_audio"><str>Drei Phantasiestücke op.73 pour clarinette et piano / Robert Schumann ; Dionysis Grammenos, clarinette ; Chrisa Grenda, piano, 11 min 25 sec</str><str>Rigoletto, Fantasia da concerto / Luigi Bassi ; d'après Giuseppe Verdi ; Dionysis Grammenos, clarinette ; Chrisa Grenda, piano, 12 min 35 sec</str><str>Vocalise op. 34 no 14 [version pour clarinette et piano] / Sergueï Rachmaninov ; Dionysis Grammenos, clarinette ; Chrisa Grenda, piano, 4 min 56 sec</str><str>Après un rêve, en ut mineur, op. 7 no 1 (version pour clarinette et piano) / Gabriel Fauré ; Dionysis Grammenos, clarinette ; Chrisa Grenda, piano, 3 min 34 sec</str><str>Solo de concours pour clarinette avec accompagnement de piano / André Messager ; Dionysis Grammenos, clarinette ; Chrisa Grenda, piano, 5 min 58 sec</str><str>Sonate pour clarinette et piano / Francis Poulenc ; Dionysis Grammenos, clarinette ; Chrisa Grenda, piano, 13 min 11 sec</str><str>Celebration XVI, pour clarinette seule / Théodore Antoniou ; Dionysis Grammenos, clarinette, 8 min 50 sec</str><str>Fantaisie sur des airs de Carmen de Bizet, op. 25 [Extrait] / Pablo de Sarasate ; Dionysis Grammenos, clarinette ; Chrisa Grenda, piano, 6 min 3 sec</str><str>Hommage a Manuel de Falla / Bela Kovacs ; Dionysis Grammenos, clarinette, 3 min 22 sec</str><str>E lucevan le stette, extrait de "Tosca" (Acte 3), version pour clarinette seule / Giacomo Puccini ; Dionysis Grammenos, clarinette, 1 min 54 sec</str></arr><arr name="ConcertLie_audio_id_exact"><str>1052517</str><str>1052518</str><str>1052519</str><str>1052520</str><str>1052689</str><str>1052690</str><str>1052691</str><str>1052692</str><str>1052693</str><str>1052694</str></arr><arr name="ConcertLie_id_exact"><str>1052517</str><str>1052518</str><str>1052519</str><str>1052520</str><str>1052689</str><str>1052690</str><str>1052691</str><str>1052692</str><str>1052693</str><str>1052694</str></arr><arr name="DateOfInsertion"><str>15/06/2016</str></arr><arr name="DateOfInsertion_idx"><str>20160615</str></arr><str name="DateOfInsertion_sort">20160615142812</str><str name="DateOfPublication">08/01/2014</str><arr name="FormDescription"><str>Concert audio</str></arr><arr name="FormDescription_exact"><str>Concert audio</str></arr><str name="Identifier">1038311</str><str name="Identifier_idx">1038311</str><arr name="PartTitle"><str>Drei Phantasiestücke op.73 pour clarinette et piano / Robert Schumann</str><str>Rigoletto, Fantasia da concerto / Luigi Bassi</str><str>Vocalise op. 34 no 14 [version pour clarinette et piano] / Sergueï Rachmaninov</str><str>Après un rêve, en ut mineur, op. 7 no 1 (version pour clarinette et piano) / Gabriel Fauré</str><str>Solo de concours pour clarinette avec accompagnement de piano / André Messager</str><str>Sonate pour clarinette et piano / Francis Poulenc</str><str>Celebration XVI, pour clarinette seule / Théodore Antoniou</str><str>Fantaisie sur des airs de Carmen de Bizet, op. 25 [Extrait] / Pablo de Sarasate</str><str>Hommage a Manuel de Falla / Bela Kovacs</str><str>E lucevan le stette, extrait de "Tosca" (Acte 3), version pour clarinette seule / Giacomo Puccini</str></arr><arr name="PartTitle_id_exact"><str>1052517</str><str>1052518</str><str>1052519</str><str>1052520</str><str>1052689</str><str>1052690</str><str>1052691</str><str>1052692</str><str>1052693</str><str>1052694</str></arr><arr name="Programme"><str>Rising Stars</str></arr><arr name="Programme_id_exact"><str>1012990</str></arr><arr name="Publisher"><str>Cité de la musique</str></arr><arr name="Publisher_exact"><str>Cité de la musique</str></arr><str name="RightsContract">LIBRE</str><str name="RightsContract_exact">LIBRE</str><str name="RightsContract_idx">LIBRE</str><arr name="SubjectPeriod_exact"><str>19ème siècle</str><str>20ème siècle (1900-1945)</str></arr><arr name="ThumbLarge"><str>/skins/Ermes20/images/general/doctype/CONCERTS_AUDIO.jpg</str></arr><arr name="ThumbMedium"><str>/skins/Ermes20/images/general/doctype/CONCERTS_AUDIO.jpg</str></arr><arr name="ThumbSmall"><str>/skins/Ermes20/images/general/doctype/CONCERTS_AUDIO.jpg</str></arr><str name="Title">Rising Stars : Dionysis Grammenos</str><arr name="Title_exact"><str>Rising Stars : Dionysis Grammenos</str></arr><arr name="Title_idx"><str>Rising Stars : Dionysis Grammenos</str></arr><arr name="TypeOfDocument"><str>Document sonore</str></arr><arr name="TypeOfDocument_exact"><str>Document sonore</str></arr><str name="YearOfPublication">2014</str><arr name="YearOfPublication_exact"><str>2014</str></arr><arr name="aloes_date"><str>20140108</str></arr><str name="aloes_date_sort">20140108</str><arr name="artiste_exact"><str>Grammenos Dionysis</str><str>Grenda Chrisa</str></arr><arr name="artiste_idx"><str>Grammenos Dionysis</str><str>Grenda Chrisa</str></arr><arr name="auteur_resp_secondaire"><str>Grammenos Dionysis</str><str>Grenda Chrisa</str></arr><arr name="contrat"><str>CONTRAT_1</str></arr><arr name="cote_a"><str>NE1070272</str><str>NE1070273</str><str>NE1070274</str><str>NE1070275</str><str>NE1070276</str></arr><arr name="cote_g"><str>ARCH 2014-01-08</str><str>ARCH 2014-01-08</str><str>ARCH 2014-01-08</str><str>ARCH 2014-01-08</str><str>ARCH 2014-01-08</str></arr><arr name="desc_mat_type_doc"><str>1h 11 min 57 sec</str></arr><arr name="descripteur"><str>19 ème siècle</str><str>20 ème siècle - 1 ère moitié</str><str>Musique de chambre</str><str>Clarinette</str><str>Piano</str></arr><arr name="descripteur_exact"><str>19 ème siècle</str><str>20 ème siècle - 1 ère moitié</str><str>Musique de chambre</str><str>Clarinette</str><str>Piano</str></arr><arr name="descripteur_idx"><str>19 ème siècle</str><str>20 ème siècle - 1 ère moitié</str><str>Musique de chambre</str><str>Clarinette</str><str>Piano</str></arr><str name="id">CIMU_1038311</str><arr name="imgtypedocCIMU"><str>general/doctype/concertaudio.jpg</str></arr><arr name="indexation_libre"><str>19 ème siècle</str><str>20 ème siècle - 1 ère moitié</str><str>Musique de chambre</str><str>Clarinette</str><str>Piano</str></arr><arr name="instru_facet"><str>Clarinette</str><str>Piano</str></arr><arr name="interprete_facet"><str>Dionysis Grammenos</str><str>Chrisa Grenda</str></arr><arr name="next_online_idx"><str>N</str></arr><arr name="note_edition"><str>Archivé à La Cité de la musique</str></arr><arr name="note_programme"><str>1012990</str></arr><str name="of_title">Rising Stars : Dionysis Grammenos</str><arr name="periode_histo_facet"><str>19ème siècle</str><str>20ème siècle (1900-1945)</str></arr><arr name="publication_date"><str>2014</str></arr><arr name="publication_date_facet"><str>2014</str></arr><arr name="publication_editeur"><str>Cité de la musique</str></arr><arr name="publication_editeur_facet"><str>Cité de la musique</str></arr><arr name="publication_lieu"><str>Paris</str></arr><arr name="sim_author"><str>1013007</str><str>1013008</str></arr><arr name="sim_author_idx"><str>1013007</str><str>1013008</str></arr><arr name="sous_ensemble"><str>1052517</str><str>1052518</str><str>1052519</str><str>1052520</str><str>1052689</str><str>1052690</str><str>1052691</str><str>1052692</str><str>1052693</str><str>1052694</str></arr><arr name="spellingShingle"><str>Rising Stars : Dionysis Grammenos</str><str>Dionysis Grammenos</str><str>Chrisa Grenda</str></arr><arr name="supportLabel_facet"><str>Concerts audio</str></arr><arr name="support_facet"><str>CONCERTS_AUDIO</str></arr><str name="sys_base">CIMU</str><arr name="sys_id"><str>1038311</str></arr><str name="sys_support">UNI2C</str><arr name="target_exact"><str>CIMU</str></arr><arr name="th_poly_id"><str>0144424</str><str>0067730</str><str>0068866</str><str>0146190</str><str>0144079</str></arr><arr name="th_poly_id_idx"><str>0144424</str><str>0067730</str><str>0068866</str><str>0146190</str><str>0144079</str></arr><arr name="titre_complement"><str>concert enregistré à la Cité de la musique le mercredi 08 janvier 2014 (20h, amphithéâtre)</str></arr><arr name="titre_mention_resp"><str>Dionysis Grammenos, clarinette</str><str>Chrisa Grenda, piano</str></arr><arr name="titre_mention_resp_exact"><str>Dionysis Grammenos, clarinette</str><str>Chrisa Grenda, piano</str></arr><arr name="titre_mention_resp_prem"><str>[Auteurs divers]</str></arr><arr name="titre_mention_resp_prem_exact"><str>[Auteurs divers]</str></arr><arr name="titre_propre"><str>Rising Stars : Dionysis Grammenos</str></arr><arr name="titre_type_ressource"><str>Enregistrement sonore</str></arr><str name="FullRefToDisplay"> + +<h3>Rising Stars : Dionysis Grammenos</h3> +<br /><span> + <div class="logo_cimu" style="float:right;"> + <img class="logo_cimu" src="http://media.citedelamusique.fr/images/logo-citedelamusique-paris-2.png" title="Cité de la musique" alt="Cité de la musique" /> + </div> + +Concert audio - 1h 11 min 57 sec +<br/> +concert enregistré à la Cité de la musique le mercredi 08 janvier 2014 (20h, amphithéâtre) +</span> + <br/> + <p> +<br /> +<b>Auteur(s) / Interprète(s) </b> +<br/> + <span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>[Auteurs divers]</li></ul></span> +</p> + +<br/> + <span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>Dionysis Grammenos, clarinette</li><li class='desc-list-item'>Chrisa Grenda, piano</li></ul></span> +<br/> + + <b>Période </b><br /> +<span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>19ème siècle</li><li class='desc-list-item'>20ème siècle (1900-1945)</li></ul></span> +<br /><b>Plages :</b> +<span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>Drei Phantasiestücke op.73 pour clarinette et piano / Robert Schumann</li><li class='desc-list-item'>Rigoletto, Fantasia da concerto / Luigi Bassi</li><li class='desc-list-item'>Vocalise op. 34 no 14 [version pour clarinette et piano] / Sergueï Rachmaninov</li><li class='desc-list-item'>Après un rêve, en ut mineur, op. 7 no 1 (version pour clarinette et piano) / Gabriel Fauré</li><li class='desc-list-item'>Solo de concours pour clarinette avec accompagnement de piano / André Messager</li><li class='desc-list-item'>Sonate pour clarinette et piano / Francis Poulenc</li><li class='desc-list-item'>Celebration XVI, pour clarinette seule / Théodore Antoniou</li><li class='desc-list-item'>Fantaisie sur des airs de Carmen de Bizet, op. 25 [Extrait] / Pablo de Sarasate</li><li class='desc-list-item'>Hommage a Manuel de Falla / Bela Kovacs</li><li class='desc-list-item'>E lucevan le stette, extrait de "Tosca" (Acte 3), version pour clarinette seule / Giacomo Puccini</li></ul></span> +<br/> + + + + +</str><str name="ShortRefToDisplay"><table><tr><td><img src="/Skins/Exploitation/images/general/doctype/$icon"/></td><td><strong>Titre :</strong> <br/><strong>Auteur :</strong> <br/></div></td></tr></table> </str><arr name="PrimaryDoc"><str>http://media.citedelamusique.fr/medias/doc/EXTRANET/CIMU/1038311/DETAIL</str></arr></metadata></record></ListRecords></OAI-PMH> diff --git a/tests/scenarios/CiteDeLaMusique/cite_de_la_musique_oai_end.xml b/tests/scenarios/CiteDeLaMusique/cite_de_la_musique_oai_end.xml new file mode 100644 index 0000000000000000000000000000000000000000..07e2c618a5f8286f664ace06bea6ab7da4bfd813 --- /dev/null +++ b/tests/scenarios/CiteDeLaMusique/cite_de_la_musique_oai_end.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="UTF-8"?><OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"><responseDate>2016-05-12T09:22:43Z</responseDate><request verb="ListRecords">media.citedelamusique.fr/EXTRANET/oaiserver.ashx</request><ListRecords><record xmlns=""><header><identifier>0240344</identifier><datestamp>2016-04-05T00:00:00Z</datestamp><setSpec></setSpec></header><metadata><arr name="Author"><str>Igor Stravinski</str><str>George Antheil</str><str>Michael Daugherty</str><str>Benedict Mason</str><str>Paul Riveaux</str><str>Jonathan Nott</str><str>Jens Mc Manama</str><str>Jérôme Naulais</str><str>Hidéki Nagano</str><str>Ensemble intercontemporain</str></arr><arr name="Author_exact"><str>Igor Stravinski</str><str>George Antheil</str><str>Michael Daugherty</str><str>Benedict Mason</str><str>Paul Riveaux</str><str>Jonathan Nott</str><str>Jens Mc Manama</str><str>Jérôme Naulais</str><str>Hidéki Nagano</str><str>Ensemble intercontemporain</str></arr><arr name="ConcertLie"><str>Ragtime / Igor Stravinski, compositeur. - Cité de la musique, 1996</str><str>Suite n°1 pour petit orchestre / Igor Stravinski, compositeur. - Cité de la musique, 1996</str><str>Suite n°2 pour petit orchestre / Igor Stravinski, compositeur. - Cité de la musique, 1996</str><str>A jazz symphony / George Antheil, compositeur. - Cité de la musique, 1996</str><str>Dead Elvis pour basson et six instruments / Michael Daugherty, compositeur. - Cité de la musique, 1996</str><str>Double concerto pour cor, trombone et ensemble / Benedict Mason, compositeur. - Cité de la musique, 1996</str><str>Ballet mécanique avec le film de Dudley Murphy et Fernand Léger (1924) / George Antheil, compositeur. - Cité de la musique, 1996</str></arr><arr name="ConcertLie_id_exact"><str>0750987</str><str>0750995</str><str>0750997</str><str>0751000</str><str>0751004</str><str>0751009</str><str>0751013</str></arr><arr name="ConcertLie_video"><str>Ragtime / Igor Stravinski, compositeur. - Cité de la musique, 1996</str><str>Suite n°1 pour petit orchestre / Igor Stravinski, compositeur. - Cité de la musique, 1996</str><str>Suite n°2 pour petit orchestre / Igor Stravinski, compositeur. - Cité de la musique, 1996</str><str>A jazz symphony / George Antheil, compositeur. - Cité de la musique, 1996</str><str>Dead Elvis pour basson et six instruments / Michael Daugherty, compositeur. - Cité de la musique, 1996</str><str>Double concerto pour cor, trombone et ensemble / Benedict Mason, compositeur. - Cité de la musique, 1996</str><str>Ballet mécanique avec le film de Dudley Murphy et Fernand Léger (1924) / George Antheil, compositeur. - Cité de la musique, 1996</str></arr><arr name="ConcertLie_video_id_exact"><str>0750987</str><str>0750995</str><str>0750997</str><str>0751000</str><str>0751004</str><str>0751009</str><str>0751013</str></arr><arr name="DateOfInsertion"><str>05/04/2016</str></arr><arr name="DateOfInsertion_idx"><str>20160405</str></arr><str name="DateOfInsertion_sort">20160405080242</str><str name="DateOfPublication">22/12/1996</str><arr name="DossierPedagogique"><str>La musique américaine du XXe siècle</str><str>Portraits de compositeurs au XXe siècle (Stravinski, Messiaen, Dutilleux, Boulez, Xenakis et Berio)</str></arr><arr name="DossierPedagogique_id_exact"><str>0797152</str><str>0797164</str></arr><arr name="FormDescription"><str>Concert vidéo</str></arr><arr name="FormDescription_exact"><str>Concert vidéo</str></arr><str name="Identifier">0240344</str><str name="Identifier_idx">0240344</str><arr name="PartTitle"><str>Ragtime / Igor Stravinski, compositeur</str><str>Suite n°1 pour petit orchestre / Igor Stravinski, compositeur</str><str>Suite n°2 pour petit orchestre / Igor Stravinski, compositeur</str><str>A jazz symphony / George Antheil, compositeur</str><str>Dead Elvis pour basson et six instruments / Michael Daugherty, compositeur</str><str>Double concerto pour cor, trombone et ensemble / Benedict Mason, compositeur</str><str>Ballet mécanique avec le film de Dudley Murphy et Fernand Léger (1924) / George Antheil, compositeur</str></arr><arr name="PartTitle_id_exact"><str>0750987</str><str>0750995</str><str>0750997</str><str>0751000</str><str>0751004</str><str>0751009</str><str>0751013</str></arr><arr name="Programme"><str>Jonathan Nott, Ensemble Intercontemporain</str></arr><arr name="Programme_id_exact"><str>0075266</str></arr><arr name="Publisher"><str>Cité de la musique</str></arr><arr name="Publisher_exact"><str>Cité de la musique</str></arr><str name="RightsContract">LIBRE</str><str name="RightsContract_exact">LIBRE</str><str name="RightsContract_idx">LIBRE</str><arr name="SubjectPeriod_exact"><str>20ème siècle (1900-1945)</str><str>20ème siècle (1945-2000)</str></arr><arr name="SubjectTopic_exact"><str>Musique contemporaine</str></arr><arr name="ThumbLarge"><str>/images/DocThumbs/CMVI000010200.jpg</str></arr><arr name="ThumbMedium"><str>/images/DocThumbs/CMVI000010200.jpg</str></arr><arr name="ThumbSmall"><str>/images/DocThumbs/CMVI000010200.jpg</str></arr><str name="Title">Ensemble intercontemporain</str><arr name="Title_exact"><str>Ensemble intercontemporain</str></arr><arr name="Title_idx"><str>Ensemble intercontemporain</str></arr><arr name="TypeOfDocument"><str>Document vidéo</str></arr><arr name="TypeOfDocument_exact"><str>Document vidéo</str></arr><str name="YearOfPublication">1996</str><arr name="YearOfPublication_exact"><str>1996</str></arr><arr name="aloes_date"><str>19961222</str></arr><str name="aloes_date_sort">19961222</str><arr name="artiste_exact"><str>Stravinski Igor</str><str>Antheil George</str><str>Daugherty Michael</str><str>Mason Benedict</str><str>Riveaux Paul</str><str>Nott Jonathan</str><str>Mc Manama Jens</str><str>Naulais Jérôme</str><str>Nagano Hidéki</str><str>Ensemble intercontemporain</str></arr><arr name="artiste_idx"><str>Stravinski Igor</str><str>Antheil George</str><str>Daugherty Michael</str><str>Mason Benedict</str><str>Riveaux Paul</str><str>Nott Jonathan</str><str>Mc Manama Jens</str><str>Naulais Jérôme</str><str>Nagano Hidéki</str><str>Ensemble intercontemporain</str></arr><arr name="auteur_resp_principale"><str>Jomy Alain</str></arr><arr name="auteur_resp_secondaire"><str>Riveaux Paul</str><str>Nott Jonathan</str><str>Mc Manama Jens</str><str>Naulais Jérôme</str><str>Nagano Hidéki</str></arr><arr name="chef_facet"><str>Jonathan Nott</str></arr><arr name="compositeur_facet"><str>Igor Stravinski</str><str>George Antheil</str><str>Michael Daugherty</str><str>Benedict Mason</str></arr><arr name="compositeur_form_facet"><str>Stravinski Igor</str><str>Antheil George</str><str>Daugherty Michael</str><str>Mason Benedict</str></arr><arr name="compositeur_idx"><str>Stravinski Igor</str><str>Antheil George</str><str>Daugherty Michael</str><str>Mason Benedict</str></arr><arr name="contrat"><str>CONTRAT_1</str></arr><arr name="cote_a"><str>CMVI000010200</str><str>CMVI000010200</str><str>CMVI000010200</str><str>NE1000308</str><str>NE1067272</str></arr><arr name="cote_g"><str>ARCH 1996-12-22</str><str>ARCH 1996-12-22</str><str>ARCH 1996-12-22</str><str>ARCH 1196-12-22</str><str>ARCH 1996-12-22</str></arr><arr name="desc_mat_type_doc"><str>1 h 23 mn 54</str></arr><arr name="descripteur"><str>20 ème siècle - 1 ère moitié</str><str>Musique contemporaine</str><str>20 ème siècle - 2 ème moitié</str></arr><arr name="descripteur_exact"><str>20 ème siècle - 1 ère moitié</str><str>Musique contemporaine</str><str>20 ème siècle - 2 ème moitié</str></arr><arr name="descripteur_idx"><str>20 ème siècle - 1 ère moitié</str><str>Musique contemporaine</str><str>20 ème siècle - 2 ème moitié</str></arr><arr name="genre_facet"><str>Musique contemporaine</str></arr><str name="id">CIMU_0240344</str><arr name="imgtypedocCIMU"><str>general/doctype/concertvideo.jpg</str></arr><arr name="indexation_libre"><str>20 ème siècle - 1 ère moitié</str><str>Musique contemporaine</str><str>20 ème siècle - 2 ème moitié</str></arr><arr name="interprete_facet"><str>Paul Riveaux</str><str>Jens Mc Manama</str><str>Jérôme Naulais</str><str>Hidéki Nagano</str></arr><arr name="next_online_idx"><str>N</str></arr><arr name="note_edition"><str>Archivé à la Cité de la musique</str></arr><arr name="note_programme"><str>0075266</str></arr><arr name="of_creator"><str>Jomy Alain</str></arr><str name="of_title">Ensemble intercontemporain</str><arr name="orchestre_facet"><str>Ensemble intercontemporain</str></arr><arr name="orchestre_idx"><str>Ensemble intercontemporain</str></arr><arr name="periode_histo_facet"><str>20ème siècle (1900-1945)</str><str>20ème siècle (1945-2000)</str></arr><arr name="publication_date"><str>1996</str></arr><arr name="publication_date_facet"><str>1996</str></arr><arr name="publication_editeur"><str>Cité de la musique</str></arr><arr name="publication_editeur_facet"><str>Cité de la musique</str></arr><arr name="publication_lieu"><str>Paris</str></arr><arr name="sim_author"><str>0032481</str><str>0038399</str><str>0047950</str><str>0054871</str><str>0693203</str><str>0240346</str><str>0038930</str><str>0055173</str><str>0035484</str><str>0047291</str></arr><arr name="sim_author_idx"><str>0032481</str><str>0038399</str><str>0047950</str><str>0054871</str><str>0693203</str><str>0240346</str><str>0038930</str><str>0055173</str><str>0035484</str><str>0047291</str></arr><arr name="sous_ensemble"><str>0750987</str><str>0750995</str><str>0750997</str><str>0751000</str><str>0751004</str><str>0751009</str><str>0751013</str></arr><arr name="spellingShingle"><str>Ensemble intercontemporain</str><str>Igor Stravinski</str><str>George Antheil</str><str>Michael Daugherty</str><str>Benedict Mason</str><str>Paul Riveaux</str><str>Jonathan Nott</str><str>Jens Mc Manama</str><str>Jérôme Naulais</str><str>Hidéki Nagano</str><str>Ensemble intercontemporain</str></arr><arr name="supportLabel_facet"><str>Concerts vidéo</str></arr><arr name="support_facet"><str>CONCERTS_VIDEO</str></arr><str name="sys_base">CIMU</str><arr name="sys_id"><str>0240344</str></arr><str name="sys_support">UNI4C</str><arr name="target_exact"><str>CIMU</str></arr><arr name="th_poly_id"><str>0067730</str><str>0067139</str><str>0067731</str></arr><arr name="th_poly_id_idx"><str>0067730</str><str>0067139</str><str>0067731</str></arr><arr name="titre_complement"><str>concert enregistré à la Cité de la musique le 22 décembre 1996</str></arr><arr name="titre_mention_resp"><str>Paul Riveaux, basson</str><str>Hidéki Nagano, piano</str><str>Jens McManama, cor</str><str>Jerôme Naulais, trombone</str><str>Jonathan Nott, direction</str></arr><arr name="titre_mention_resp_exact"><str>Paul Riveaux, basson</str><str>Hidéki Nagano, piano</str><str>Jens McManama, cor</str><str>Jerôme Naulais, trombone</str><str>Jonathan Nott, direction</str></arr><arr name="titre_mention_resp_prem"><str>Alain Jomy, réalisation ; Igor Stravinski, George Antheil, Michael Daugherty, Benedict Mason</str></arr><arr name="titre_mention_resp_prem_exact"><str>Alain Jomy, réalisation ; Igor Stravinski, George Antheil, Michael Daugherty, Benedict Mason</str></arr><arr name="titre_propre"><str>Ensemble intercontemporain</str></arr><arr name="titre_type_ressource"><str>image animée</str></arr><str name="FullRefToDisplay"><h3>Ensemble intercontemporain</h3> +<br /><span> + <div class="logo_cimu" style="float:right;"> + <img class="logo_cimu" src="http://media.citedelamusique.fr/images/logo-citedelamusique-paris-2.png" title="Cité de la musique" alt="Cité de la musique" /> + </div> +concert enregistré à la Cité de la musique le 22 décembre 1996 +<br/> +</span> +1 h 23 mn 54 + <br/> + +<br/> + <span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>Alain Jomy, réalisation ; Igor Stravinski, George Antheil, Michael Daugherty, Benedict Mason</li></ul></span> + +<br/> + <span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>Paul Riveaux, basson</li><li class='desc-list-item'>Hidéki Nagano, piano</li><li class='desc-list-item'>Jens McManama, cor</li><li class='desc-list-item'>Jerôme Naulais, trombone</li><li class='desc-list-item'>Jonathan Nott, direction</li></ul></span> +<br/> + +<span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>Musique contemporaine</li></ul></span> + <span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>20ème siècle (1900-1945)</li><li class='desc-list-item'>20ème siècle (1945-2000)</li></ul></span> +<br/> +<b>Plages :</b> +<span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>Ragtime / Igor Stravinski, compositeur</li><li class='desc-list-item'>Suite n°1 pour petit orchestre / Igor Stravinski, compositeur</li><li class='desc-list-item'>Suite n°2 pour petit orchestre / Igor Stravinski, compositeur</li><li class='desc-list-item'>A jazz symphony / George Antheil, compositeur</li><li class='desc-list-item'>Dead Elvis pour basson et six instruments / Michael Daugherty, compositeur</li><li class='desc-list-item'>Double concerto pour cor, trombone et ensemble / Benedict Mason, compositeur</li><li class='desc-list-item'>Ballet mécanique avec le film de Dudley Murphy et Fernand Léger (1924) / George Antheil, compositeur</li></ul></span> +<br/> + +</str><str name="ShortRefToDisplay"><table><tr><td><img src="/Skins/Exploitation/images/general/doctype/$icon"/></td><td><strong>Titre :</strong> <br/><strong>Auteur :</strong> Jomy Alain<br/></div></td></tr></table> </str><arr name="PrimaryDoc"><str>http://media.citedelamusique.fr/medias/doc/EXTRANET/CIMU/0240344/DETAIL</str></arr></metadata></record><record xmlns=""><header><identifier>0886306</identifier><datestamp>2016-04-05T00:00:00Z</datestamp><setSpec></setSpec></header><metadata><arr name="Author"><str>Pierre Boulez</str><str>Susanna Mälkki</str><str>Eric-Maria Couturier</str><str>Michel Cerutti</str><str>Jeanne-Marie Conquer</str><str>Bernhard Lang</str></arr><arr name="Author_exact"><str>Pierre Boulez</str><str>Susanna Mälkki</str><str>Eric-Maria Couturier</str><str>Michel Cerutti</str><str>Jeanne-Marie Conquer</str><str>Bernhard Lang</str></arr><arr name="AutreRessource"><str>Dérive 2</str><str>Pierrot lunaire</str><str>Kraft</str><str>Feria</str><str>Le marteau sans maître</str><str>Répons</str><str>Differenz / Wiederholung 2</str><str>Vortex Temporum</str></arr><arr name="AutreRessource_id_exact"><str>0755300</str><str>0732786</str><str>0893799</str><str>0893801</str><str>0819342</str><str>0728662</str><str>0976712</str><str>0907219</str></arr><arr name="Contient"><str>Oeuvres jouées (extraits) : Dérive 2 de Pierre Boulez, Pierrot Lunaire d'Arnold Schoenberg, Kraft de Magnus Lindberg, Feria de Magnus Lindberg, le Marteau sans maître de Pierre Boulez, Répons de Pierre Boulez, Festin de Yan Maresz, Differenz / Wiedertholung 2 de Bernhard Lang, Vortex Temporum de Gérard Grisey</str></arr><arr name="DateOfInsertion"><str>05/04/2016</str></arr><arr name="DateOfInsertion_idx"><str>20160405</str></arr><str name="DateOfInsertion_sort">20160405075230</str><arr name="FormDescription"><str>Documentaire et conférence</str></arr><arr name="FormDescription_exact"><str>Documentaire et conférence</str></arr><str name="Identifier">0886306</str><str name="Identifier_idx">0886306</str><arr name="Notes"><str>Ensemble Intercontemporain, Pierre Boulez (direction), Hilary Summers (mezzo soprano), Peter Eötvös (direction), Orchestre du CNSM de Paris, Jonathan Nott, Todd, Salome Kammer</str></arr><arr name="Publisher"><str>Cité de la musique</str></arr><arr name="Publisher_exact"><str>Cité de la musique</str></arr><arr name="Resume"><str>30 d'activité créatrice de l'Ensemble Intercontemporain à travers images d'archives et des concerts filmées.</str></arr><str name="RightsContract">LIBRE</str><str name="RightsContract_exact">LIBRE</str><str name="RightsContract_idx">LIBRE</str><arr name="SubjectPeriod_exact"><str>20ème siècle (1945-2000)</str></arr><arr name="SubjectTopic_exact"><str>Musique contemporaine</str></arr><arr name="ThumbLarge"><str>/images/DocThumbs/CRVI000114600.jpg</str></arr><arr name="ThumbMedium"><str>/images/DocThumbs/CRVI000114600.jpg</str></arr><arr name="ThumbSmall"><str>/images/DocThumbs/CRVI000114600.jpg</str></arr><str name="Title">Une aventure musicale</str><arr name="Title_exact"><str>Une aventure musicale</str></arr><arr name="Title_idx"><str>Une aventure musicale</str></arr><arr name="TypeOfDocument"><str>Document audiovisuel</str></arr><arr name="TypeOfDocument_exact"><str>Document audiovisuel</str></arr><arr name="artiste_exact"><str>Boulez Pierre</str><str>Mälkki Susanna</str><str>Couturier Eric-Maria</str><str>Cerutti Michel</str><str>Conquer Jeanne-Marie</str><str>Lang Bernhard</str></arr><arr name="artiste_idx"><str>Boulez Pierre</str><str>Mälkki Susanna</str><str>Couturier Eric-Maria</str><str>Cerutti Michel</str><str>Conquer Jeanne-Marie</str><str>Lang Bernhard</str></arr><arr name="auteur_resp_principale"><str>Follin Michel</str></arr><arr name="auteur_resp_secondaire"><str>Boulez Pierre</str><str>Mälkki Susanna</str><str>Couturier Eric-Maria</str><str>Cerutti Michel</str><str>Conquer Jeanne-Marie</str><str>Lang Bernhard</str></arr><arr name="contrat"><str>CONTRAT_1</str></arr><arr name="cote_a"><str>V 1146</str></arr><arr name="cote_g"><str>V 1146</str></arr><arr name="desc_mat_type_doc"><str>59 min</str></arr><arr name="descripteur"><str>Musique contemporaine</str><str>20 ème siècle - 2 ème moitié</str><str>Documentaire</str></arr><arr name="descripteur_exact"><str>Musique contemporaine</str><str>20 ème siècle - 2 ème moitié</str><str>Documentaire</str></arr><arr name="descripteur_idx"><str>Musique contemporaine</str><str>20 ème siècle - 2 ème moitié</str><str>Documentaire</str></arr><arr name="eidmpa"><str>CRVI000114601_01</str></arr><arr name="genre_facet"><str>Musique contemporaine</str></arr><str name="id">CIMU_0886306</str><arr name="imgtypedocCIMU"><str>general/doctype/video2.gif</str></arr><arr name="indexation_libre"><str>Musique contemporaine</str><str>20 ème siècle - 2 ème moitié</str><str>Documentaire</str><str>Schönberg Arnold</str></arr><arr name="interprete_facet"><str>Pierre Boulez</str><str>Susanna Mälkki</str><str>Eric-Maria Couturier</str><str>Michel Cerutti</str><str>Jeanne-Marie Conquer</str><str>Bernhard Lang</str></arr><arr name="next_online_idx"><str>N</str></arr><arr name="of_creator"><str>Follin Michel</str></arr><str name="of_title">Une aventure musicale</str><arr name="periode_histo_facet"><str>20ème siècle (1945-2000)</str></arr><arr name="publication_editeur"><str>Arte ; Cauri films</str></arr><arr name="publication_editeur_facet"><str>Arte ; Cauri films</str></arr><arr name="sim_author"><str>0059902</str><str>0048995</str><str>0748111</str><str>0797100</str><str>0060523</str><str>0052936</str><str>0059980</str><str>0781591</str><str>0039826</str></arr><arr name="sim_author_idx"><str>0059902</str><str>0048995</str><str>0748111</str><str>0797100</str><str>0060523</str><str>0052936</str><str>0059980</str><str>0781591</str><str>0039826</str></arr><arr name="spellingShingle"><str>Une aventure musicale</str><str>Pierre Boulez</str><str>Susanna Mälkki</str><str>Eric-Maria Couturier</str><str>Michel Cerutti</str><str>Jeanne-Marie Conquer</str><str>Bernhard Lang</str></arr><arr name="supportLabel_facet"><str>Documentaires et conférences</str></arr><arr name="support_facet"><str>CONFERENCES</str></arr><str name="sys_base">CIMU</str><arr name="sys_id"><str>0886306</str></arr><str name="sys_support">UNI4</str><arr name="target_exact"><str>CIMU</str></arr><arr name="th_poly_id"><str>0067139</str><str>0067731</str><str>0067749</str></arr><arr name="th_poly_id_idx"><str>0067139</str><str>0067731</str><str>0067749</str></arr><arr name="titre_complement"><str>l'Ensemble intercontemporain</str></arr><arr name="titre_mention_resp"><str>écrit par Philippe Olivier et Michel Follin</str></arr><arr name="titre_mention_resp_exact"><str>écrit par Philippe Olivier et Michel Follin</str></arr><arr name="titre_mention_resp_prem"><str>Michel Follin, réal.</str></arr><arr name="titre_mention_resp_prem_exact"><str>Michel Follin, réal.</str></arr><arr name="titre_propre"><str>Une aventure musicale</str></arr><arr name="titre_type_ressource"><str>image animée</str></arr><str name="FullRefToDisplay"><h3>Une aventure musicale</h3> + <div class="logo_cimu" style="float:right;"> + <img class="logo_cimu" src="http://media.citedelamusique.fr/images/logo-citedelamusique-paris-2.png" title="Cité de la musique" alt="Cité de la musique" /> + </div> +<h3>l'Ensemble intercontemporain</h3> + 59 min +<span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>Michel Follin, réal.</li></ul></span> + <span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>écrit par Philippe Olivier et Michel Follin</li></ul></span> + +<br />Documentaire et conférence + <br/> + +<br/><b> Genre </b> <br /> +<span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>Musique contemporaine</li></ul></span> + <br/> <b>Période </b><br /> +<span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>20ème siècle (1945-2000)</li></ul></span> + +<br /> +<b>Auteur(s) / Interprète(s)</b> +<br /> +<span class='desc-list-title'><ul class='desc-list'><li class='desc-list-item'>Boulez Pierre</li><li class='desc-list-item'>Mälkki Susanna</li><li class='desc-list-item'>Couturier Eric-Maria</li><li class='desc-list-item'>Cerutti Michel</li><li class='desc-list-item'>Conquer Jeanne-Marie</li><li class='desc-list-item'>Lang Bernhard</li></ul></span> +<br/> + + + + +</str><str name="ShortRefToDisplay"><table><tr><td><img src="/Skins/Exploitation/images/general/doctype/$icon"/></td><td><strong>Titre :</strong> <br/><strong>Auteur :</strong> Follin Michel<br/></div></td></tr></table> </str><arr name="PrimaryDoc"><str>http://media.citedelamusique.fr/medias/doc/EXTRANET/CIMU/0886306/DETAIL</str></arr></metadata></record></ListRecords></OAI-PMH>