Skip to content
Snippets Groups Projects
Commit 470a52ea authored by efalcy's avatar efalcy
Browse files

hotline#95686 : break lines on xsl

parent e7942be7
Branches
Tags
3 merge requests!3297WIP: Master,!3266Hotline,!3255Hotline#95686 xslt saut de ligne non effectif quand malle
Pipeline #8315 failed with stage
in 29 minutes and 44 seconds
- ticket #95686 : [XSLT] Prise en charge des sauts de ligne dans les feuilles de style
\ No newline at end of file
......@@ -88,7 +88,7 @@ class Class_Notice_Xsl {
return '';
return ($marc_xml_array = static::getYaz()->marcToMarcXml($marc))
? static::getYaz()->writeMarcXmlInFile(implode($marc_xml_array))
? static::getYaz()->writeMarcXmlInFile(implode("\n",$marc_xml_array))
: '';
}
......
......@@ -75,6 +75,57 @@ class XslRechercheControllerViewnoticeWithInspectorGadgetAndMarcXMLEnabledTest e
class XslRechercheControllerViewnoticeAndMarcXMLWithLineBreaksTest extends AbstractControllerTestCase {
protected $_storm_default_to_volatile = true;
/** @test */
public function writtenXmlShouldKeepNewLines() {
$profile = Class_Profil::getCurrentProfil();
$profile->setCfgModulesPreferences(['xslt' => '/tests/scenarios/Xsl/break_line.xsl'],
'recherche',
'viewnotice',
Class_TypeDoc::PERIODIQUE);
$profile->save();
$marcxml_output = [
" <subfield code=\"a\">Détail du contenu :",
" 1 pochette contenant des instruments pour enfant",
" 1 clavier d&apos;enfant &quot;MusicStar&quot;",
" 1 flûte à bec",
" </subfield>"
];
$cmd = $this->mock()
->whenCalled('exec')
->answers(true)
->whenCalled('getOutput')
->answers($marcxml_output);
$filesystem = $this->mock()
->whenCalled('unlink')
->answers(true)
->whenCalled('file_put_contents')
->willDo(function($filename,$content) use ($marcxml_output)
{
if (FALSE === strpos($filename,'.xml'))
return;
$this->assertEquals($marcxml_output, explode("\n",$content),$content);
});
Class_Testing_Yaz::setCommand($cmd);
Class_Testing_Yaz::setFileSystem($filesystem);
$this->fixture('Class_Notice',
['id' => 2,
'type_doc' => Class_TypeDoc::PERIODIQUE,
'unimarc' => file_get_contents('tests/scenarios/Xsl/notice_onde.txt')]);
$this->dispatch('/opac/noticeajax/detail/id_notice/2', true);
$this->assertTrue($filesystem->methodHasBeenCalled('file_put_contents'));
}
}
class XslDocTypeConfigurationDispatchTest extends Admin_AbstractControllerTestCase {
protected $_storm_default_to_volatile = true;
......
<!DOCTYPE stylesheet [<!ENTITY nbsp "&#160;" >]>
<xsl:stylesheet version="1.0"
xmlns:marc="http://www.loc.gov/MARC21/slim"
xmlns:items="http://www.koha-community.org/items"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
exclude-result-prefixes="marc items">
<xsl:output method = "html" indent="yes" omit-xml-declaration = "yes" encoding="UTF-8"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<!-- debut du report de utils -->
<xsl:template name="datafield">
<xsl:param name="tag"/>
<xsl:param name="ind1"><xsl:text> </xsl:text></xsl:param>
<xsl:param name="ind2"><xsl:text> </xsl:text></xsl:param>
<xsl:param name="subfields"/>
<xsl:element name="datafield">
<xsl:attribute name="tag">
<xsl:value-of select="$tag"/>
</xsl:attribute>
<xsl:attribute name="ind1">
<xsl:value-of select="$ind1"/>
</xsl:attribute>
<xsl:attribute name="ind2">
<xsl:value-of select="$ind2"/>
</xsl:attribute>
<xsl:copy-of select="$subfields"/>
</xsl:element>
</xsl:template>
<xsl:template name="replace_sab">
<!-- with string s, replace substring a by string b -->
<!-- s, a and b are parameters determined upon calling -->
<xsl:param name="s" />
<xsl:param name="a" />
<xsl:param name="b" />
<xsl:choose>
<xsl:when test="contains($s,$a)">
<xsl:value-of select="substring-before($s,$a)" />
<xsl:copy-of select="$b" />
<xsl:call-template name="replace_sab">
<xsl:with-param name="s" select="substring-after($s,$a)" />
<xsl:with-param name="a" select="$a" />
<xsl:with-param name="b" select="$b" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$s" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="tag_215">
<xsl:for-each select="marc:datafield[@tag=215]">
<li>
<strong>Collation : </strong>
<xsl:if test="marc:subfield[@code='a']">
<xsl:value-of select="marc:subfield[@code='a']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='c']"> : <xsl:value-of select="marc:subfield[@code='c']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='d']"> ; <xsl:value-of select="marc:subfield[@code='d']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='e']"> + <xsl:value-of select="marc:subfield[@code='e']"/>
</xsl:if>
</li>
</xsl:for-each>
</xsl:template>
<!--Titre de serie autorité 461-->
<xsl:template name="tag_461">
<xsl:for-each select="marc:datafield[@tag=461]">
<li>
<strong>Titre de série : </strong>
<xsl:call-template name="addClassRtl" />
<xsl:if test="marc:subfield[@code='t']">
<a>
<xsl:attribute name="href">
<xsl:text>/recherche/simple/rech_titres/</xsl:text>
<xsl:value-of select="translate(marc:subfield[@code='t'], '*?()', '+')"/>
</xsl:attribute>
<xsl:value-of select="marc:subfield[@code='t']"/>
</a>
</xsl:if>
<xsl:if test="marc:subfield[@code='e']"> :
<xsl:value-of select="marc:subfield[@code='e']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='f']"> /
<xsl:value-of select="marc:subfield[@code='f']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='d']"> ,
<xsl:value-of select="marc:subfield[@code='d']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='p']"> ,
<xsl:value-of select="marc:subfield[@code='p']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='v']">,
<xsl:value-of select="marc:subfield[@code='v']"/>
</xsl:if>
</li>
</xsl:for-each>
</xsl:template>
<!--Titre de serie non autorité 461-->
<xsl:template name="tag_461bis">
<xsl:for-each select="marc:datafield[@tag=461][1]">
<li>
<strong>Dans : </strong>
<xsl:call-template name="addClassRtl" />
<xsl:call-template name="addClassRtl" />
<xsl:if test="marc:subfield[@code='t']">
<a>
<xsl:attribute name="href">
<xsl:text>/recherche/simple/rech_titres/</xsl:text>
<xsl:value-of select="translate(marc:subfield[@code='t'], '*?()', '+')"/>
</xsl:attribute>
<xsl:value-of select="marc:subfield[@code='t']"/>
</a>
</xsl:if>
<xsl:if test="marc:subfield[@code='e']"> :
<xsl:value-of select="marc:subfield[@code='e']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='f']"> /
<xsl:value-of select="marc:subfield[@code='f']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='d']"> ,
<xsl:value-of select="marc:subfield[@code='d']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='p']"> ,
<xsl:value-of select="marc:subfield[@code='p']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='v']">,
<xsl:value-of select="marc:subfield[@code='v']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='w']"> -
<xsl:value-of select="marc:subfield[@code='w']"/>
</xsl:if>
</li>
</xsl:for-each>
</xsl:template>
<!--Titre dépouillé 463-->
<xsl:template name="tag_463">
<xsl:for-each select="marc:datafield[@tag=463][1]">
<li>
<strong>Titre dépouillé : </strong>
<xsl:call-template name="addClassRtl" />
<xsl:call-template name="addClassRtl" />
<xsl:if test="marc:subfield[@code='t']">
<a>
<xsl:attribute name="href">
<xsl:text>/recherche/simple/rech_titres/</xsl:text>
<xsl:value-of select="translate(marc:subfield[@code='t'], '*?()', '+')"/>
</xsl:attribute>
<xsl:value-of select="marc:subfield[@code='t']"/>
</a>
</xsl:if>
<xsl:if test="marc:subfield[@code='e']"> :
<xsl:value-of select="marc:subfield[@code='e']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='f']"> /
<xsl:value-of select="marc:subfield[@code='f']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='d']"> ,
<xsl:value-of select="marc:subfield[@code='d']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='p']"> ,
<xsl:value-of select="marc:subfield[@code='p']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='v']">,
<xsl:value-of select="marc:subfield[@code='v']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='w']"> -
<xsl:value-of select="marc:subfield[@code='w']"/>
</xsl:if>
</li>
</xsl:for-each>
</xsl:template>
<xsl:template name="tag_4xx">
<xsl:param name="tag" />
<xsl:param name="label" />
<xsl:if test="marc:datafield[@tag=$tag]">
<li>
<strong><xsl:value-of select="$label" /> : </strong>
<xsl:for-each select="marc:datafield[@tag=$tag]">
<span>
<xsl:call-template name="addClassRtl" />
<xsl:call-template name="addClassRtl" />
<xsl:if test="marc:subfield[@code='t']">
<a>
<xsl:attribute name="href">
<xsl:text>/recherche/simple/rech_titres/</xsl:text>
<xsl:value-of select="translate(marc:subfield[@code='t'], '*?()', '+')"/>
</xsl:attribute>
<xsl:value-of select="marc:subfield[@code='t']"/>
</a>
</xsl:if>
<xsl:if test="marc:subfield[@code='c']"> : <xsl:value-of select="marc:subfield[@code='c']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='d']"> ; <xsl:value-of select="marc:subfield[@code='d']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='e'][1]"> - <xsl:value-of select="marc:subfield[@code='e'][1]"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='f'][1]"> - <xsl:value-of select="marc:subfield[@code='f'][1]"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='g'][1]"> - <xsl:value-of select="marc:subfield[@code='g'][1]"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='h'][1]"> - <xsl:value-of select="marc:subfield[@code='h'][1]"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='i'][1]"> - <xsl:value-of select="marc:subfield[@code='i'][1]"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='l'][1]"> - <xsl:value-of select="marc:subfield[@code='l'][1]"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='v'][1]"> , <xsl:value-of select="marc:subfield[@code='v'][1]"/>
</xsl:if>
</span>
<xsl:if test="not (position() = last())">
<xsl:text> ; </xsl:text>
</xsl:if>
</xsl:for-each>
</li>
</xsl:if>
</xsl:template>
<!--Public 995q-->
<xsl:template name="public">
<xsl:if test="marc:datafield[@tag=995]/marc:subfield[@code='q']">
<li>
<strong>Public : </strong>
<xsl:for-each select="marc:datafield[@tag=995]/marc:subfield[@code='q']">
<xsl:if test="position() = 1">
<xsl:value-of select="." />
</xsl:if></xsl:for-each>
</li>
</xsl:if>
</xsl:template>
<!--Fonds 995h-->
<xsl:template name="fonds">
<xsl:if test="marc:datafield[@tag=995]/marc:subfield[@code='h']">
<li>
<strong>Fonds : </strong>
<xsl:for-each select="marc:datafield[@tag=995]/marc:subfield[@code='h']">
<xsl:if test="position() = 1">
<xsl:value-of select="." />
</xsl:if></xsl:for-each>
</li>
</xsl:if>
</xsl:template>
<xsl:template name="subfieldSelect">
<xsl:param name="codes"/>
<xsl:param name="delimeter"><xsl:text> </xsl:text></xsl:param>
<xsl:param name="subdivCodes"/>
<xsl:param name="subdivDelimiter"/>
<xsl:variable name="str">
<xsl:for-each select="marc:subfield">
<xsl:if test="contains($codes, @code)">
<xsl:if test="contains($subdivCodes, @code)">
<xsl:value-of select="$subdivDelimiter"/>
</xsl:if>
<xsl:value-of select="text()"/><xsl:value-of select="$delimeter"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:value-of select="substring($str,1,string-length($str)-string-length($delimeter))"/>
</xsl:template>
<xsl:template name="buildSpaces">
<xsl:param name="spaces"/>
<xsl:param name="char"><xsl:text> </xsl:text></xsl:param>
<xsl:if test="$spaces>0">
<xsl:value-of select="$char"/>
<xsl:call-template name="buildSpaces">
<xsl:with-param name="spaces" select="$spaces - 1"/>
<xsl:with-param name="char" select="$char"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name="chopSpecialCharacters">
<xsl:param name="title" />
<xsl:variable name="ntitle"
select="translate($title, '&#x0098;&#x009C;&#xC29C;&#xC29B;&#xC298;&#xC288;&#xC289;','')"/>
<xsl:value-of select="$ntitle" />
</xsl:template>
<xsl:template name="chopPunctuation">
<xsl:param name="chopString"/>
<xsl:variable name="length" select="string-length($chopString)"/>
<xsl:choose>
<xsl:when test="$length=0"/>
<xsl:when test="contains('.:,;/ ', substring($chopString,$length,1))">
<xsl:call-template name="chopPunctuation">
<xsl:with-param name="chopString" select="substring($chopString,1,$length - 1)"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="not($chopString)"/>
<xsl:otherwise><xsl:value-of select="$chopString"/></xsl:otherwise>
</xsl:choose>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template name="addClassRtl">
<xsl:variable name="lang" select="marc:subfield[@code='7']" />
<xsl:if test="$lang = 'ha' or $lang = 'Hebrew' or $lang = 'fa' or $lang = 'Arabe'">
<xsl:attribute name="class">rtl</xsl:attribute>
</xsl:if>
</xsl:template>
<xsl:template name="tag_title">
<xsl:param name="tag" />
<xsl:param name="label" />
<xsl:if test="marc:datafield[@tag=$tag]">
<li>
<strong><xsl:value-of select="$label"/>: </strong>
<xsl:for-each select="marc:datafield[@tag=$tag]">
<xsl:value-of select="marc:subfield[@code='a']" />
<xsl:if test="marc:subfield[@code='d']">
<xsl:text> : </xsl:text>
<xsl:value-of select="marc:subfield[@code='e']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='e']">
<xsl:for-each select="marc:subfield[@code='e']">
<xsl:text> </xsl:text>
<xsl:value-of select="."/>
</xsl:for-each>
</xsl:if>
<xsl:if test="marc:subfield[@code='f']">
<xsl:text> / </xsl:text>
<xsl:value-of select="marc:subfield[@code='f']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='h']">
<xsl:text>, </xsl:text>
<xsl:value-of select="marc:subfield[@code='h']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='i']">
<xsl:text>, </xsl:text>
<xsl:value-of select="marc:subfield[@code='i']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='v']">
<xsl:text>, </xsl:text>
<xsl:value-of select="marc:subfield[@code='v']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='x']">
<xsl:text>, </xsl:text>
<xsl:value-of select="marc:subfield[@code='x']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='z']">
<xsl:text>, </xsl:text>
<xsl:value-of select="marc:subfield[@code='z']"/>
</xsl:if>
</xsl:for-each>
</li>
</xsl:if>
</xsl:template>
<xsl:template name="tag_subject">
<xsl:param name="tag" />
<xsl:param name="label" />
<xsl:if test="marc:datafield[@tag=$tag]">
<li>
<strong><xsl:value-of select="$label"/>: </strong>
<xsl:for-each select="marc:datafield[@tag=$tag]">
<a>
<xsl:attribute name="href">/recherche/simple/rech_matieres/<xsl:value-of select="translate(marc:subfield[@code='a'], '*?()', '+')"/></xsl:attribute>
<xsl:call-template name="chopPunctuation">
<xsl:with-param name="chopString">
<xsl:call-template name="subfieldSelect">
<xsl:with-param name="codes">abcdjpvxyz</xsl:with-param>
<xsl:with-param name="subdivCodes">jpxyz</xsl:with-param>
<xsl:with-param name="subdivDelimiter">-- </xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</a>
<xsl:if test="not (position()=last())">
<xsl:text> | </xsl:text>
</xsl:if>
</xsl:for-each>
</li>
</xsl:if>
</xsl:template>
<xsl:template name="tag_7xx">
<xsl:param name="tag" />
<xsl:param name="label" />
<xsl:if test="marc:datafield[@tag=$tag]">
<p class="xslt4">
<xsl:for-each select="marc:datafield[@tag=$tag]">
<span>
<xsl:call-template name="addClassRtl" />
<a>
<xsl:attribute name="href">/recherche/simple/rech_auteurs/<xsl:value-of select="marc:subfield[@code='b']"/><xsl:text> </xsl:text><xsl:value-of select="marc:subfield[@code='a']"/></xsl:attribute>
<xsl:if test="marc:subfield[@code='a']">
<xsl:value-of select="marc:subfield[@code='a']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='b']">
<xsl:text>, </xsl:text>
<xsl:value-of select="marc:subfield[@code='b']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='c']">
<xsl:text>, </xsl:text>
<xsl:value-of select="marc:subfield[@code='c']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='d']">
<xsl:text> </xsl:text>
<xsl:value-of select="marc:subfield[@code='d']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='e']">
<xsl:text> </xsl:text>
<xsl:value-of select="marc:subfield[@code='e']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='f']">
<span dir="ltr">
<xsl:text> (</xsl:text>
<xsl:value-of select="marc:subfield[@code='f']"/>
<xsl:text>)</xsl:text>
</span>
</xsl:if>
<xsl:if test="marc:subfield[@code='g']">
<xsl:text> </xsl:text>
<xsl:value-of select="marc:subfield[@code='g']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='p']">
<xsl:text> </xsl:text>
<xsl:value-of select="marc:subfield[@code='p']"/>
</xsl:if>
</a>
<xsl:if test="marc:subfield[@code='4']">
<xsl:text> </xsl:text>
<xsl:value-of select="marc:subfield[@code='4']"/>
</xsl:if>
</span>
<xsl:if test="not (position() = last())">
<xsl:text> ; </xsl:text>
</xsl:if>
</xsl:for-each>
</p>
</xsl:if>
</xsl:template>
<!-- fin du report de utils -->
<xsl:output method = "html" indent="yes" omit-xml-declaration = "yes" encoding="UTF-8"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="marc:record">
<xsl:variable name="Show856uAsImage" select="marc:sysprefs/marc:syspref[@name='Display856uAsImage']"/>
<xsl:variable name="leader" select="marc:leader"/>
<xsl:variable name="leader6" select="substring($leader,7,1)"/>
<xsl:variable name="leader7" select="substring($leader,8,1)"/>
<xsl:variable name="biblionumber" select="marc:datafield[@tag=090]/marc:subfield[@code='a']"/>
<xsl:variable name="champ_610" select="marc:datafield[@tag=610]/marc:subfield[@code='a']"/>
<xsl:variable name="ppn" select="marc:controlfield[@tag=009]"/>
<xsl:variable name="coverCD" select="marc:datafield[@tag=933]/marc:subfield[@code='a']"/>
<xsl:variable name="type_doc" select="marc:datafield[@tag=099]/marc:subfield[@code='t']"/>
<xsl:variable name="renvoi" select="marc:datafield[@tag=700]/@ind1"/>
<!--
<xsl:if test="marc:datafield[@tag=200]">
<xsl:for-each select="marc:datafield[@tag=200]">
<h1 id="xslt">
<xsl:call-template name="addClassRtl" />
<xsl:variable name="title" select="marc:subfield[@code='a']"/>
<xsl:variable name="ntitle"
select="translate($title, '&#x0098;&#x009C;&#xC29C;&#xC29B;&#xC298;&#xC288;&#xC289;','')"/>
<xsl:value-of select="marc:subfield[@code='a'][1]" />
<xsl:if test="marc:subfield[@code='e'][1]"><xsl:text> : </xsl:text><xsl:value-of select="marc:subfield[@code='e'][1]" /></xsl:if>
<xsl:if test="marc:subfield[@code='c'][1]"><xsl:text> . </xsl:text><xsl:value-of select="marc:subfield[@code='c'][1]" /></xsl:if>
<xsl:if test="marc:subfield[@code='d'][1]"><xsl:text> = </xsl:text><xsl:value-of select="marc:subfield[@code='d'][1]" /></xsl:if>
<xsl:if test="marc:subfield[@code='h'][1]"><xsl:text> . </xsl:text><xsl:value-of select="marc:subfield[@code='h'][1]" /></xsl:if>
<xsl:if test="marc:subfield[@code='i'][1]"><xsl:text> . </xsl:text><xsl:value-of select="marc:subfield[@code='i'][1]" /></xsl:if>
<xsl:if test="marc:subfield[@code='e'][2]"><xsl:text> :</xsl:text><xsl:value-of select="marc:subfield[@code='e'][2]" /></xsl:if>
<xsl:if test="marc:subfield[@code='c'][2]"><xsl:text> . </xsl:text><xsl:value-of select="marc:subfield[@code='c'][1]" /></xsl:if>
<xsl:if test="marc:subfield[@code='d'][2]"><xsl:text> = </xsl:text><xsl:value-of select="marc:subfield[@code='d'][2]" /></xsl:if>
<xsl:if test="marc:subfield[@code='h'][2]"><xsl:text> . </xsl:text><xsl:value-of select="marc:subfield[@code='h'][2]" /></xsl:if>
<xsl:if test="marc:subfield[@code='i'][2]"><xsl:text> . </xsl:text><xsl:value-of select="marc:subfield[@code='i'][2]" /></xsl:if>
<xsl:if test="marc:subfield[@code='e'][3]"><xsl:text> : </xsl:text><xsl:value-of select="marc:subfield[@code='e'][3]" /></xsl:if>
<xsl:if test="marc:subfield[@code='c'][3]"><xsl:text> .</xsl:text><xsl:value-of select="marc:subfield[@code='c'][3]" /></xsl:if>
<xsl:if test="marc:subfield[@code='d'][3]"><xsl:text> = </xsl:text><xsl:value-of select="marc:subfield[@code='d'][3]" /></xsl:if>
<xsl:if test="marc:subfield[@code='h'][3]"><xsl:text> . </xsl:text><xsl:value-of select="marc:subfield[@code='h'][3]" /></xsl:if>
<xsl:if test="marc:subfield[@code='i'][3]"><xsl:text> . </xsl:text><xsl:value-of select="marc:subfield[@code='i'][3]" /></xsl:if>
<xsl:if test="marc:subfield[@code='a'][2]"><xsl:text>. </xsl:text><xsl:value-of select="marc:subfield[@code='a'][2]" /></xsl:if>
<xsl:if test="marc:subfield[@code='a'][3]"><xsl:text>. </xsl:text><xsl:value-of select="marc:subfield[@code='a'][3]" /></xsl:if>
</h1>
</xsl:for-each>
</xsl:if>
-->
<!--
<xsl:if test="not(contains($renvoi,'z'))">
<xsl:call-template name="tag_7xx">
<xsl:with-param name="tag">700</xsl:with-param>
<xsl:with-param name="label"></xsl:with-param>
</xsl:call-template>
</xsl:if>
<xsl:call-template name="tag_7xx">
<xsl:with-param name="tag">710</xsl:with-param>
<xsl:with-param name="label"></xsl:with-param>
</xsl:call-template>
<xsl:call-template name="tag_7xx">
<xsl:with-param name="tag">701</xsl:with-param>
<xsl:with-param name="label"></xsl:with-param>
</xsl:call-template>
<xsl:call-template name="tag_7xx">
<xsl:with-param name="tag">702</xsl:with-param>
<xsl:with-param name="label"></xsl:with-param>
</xsl:call-template>
<xsl:call-template name="tag_7xx">
<xsl:with-param name="tag">711</xsl:with-param>
<xsl:with-param name="label"></xsl:with-param>
</xsl:call-template>
<xsl:call-template name="tag_7xx">
<xsl:with-param name="tag">712</xsl:with-param>
<xsl:with-param name="label"></xsl:with-param>
</xsl:call-template>
-->
<xsl:if test="marc:datafield[@tag=210]">
<p id="xslt3">
<xsl:for-each select="marc:datafield[@tag=210]">
<strong>Edition&nbsp;: </strong>
<a>
<xsl:attribute name="href">/recherche/simple/rech_HEDIT/<xsl:value-of select="marc:subfield[@code='c']"/></xsl:attribute>
<xsl:value-of select="marc:subfield[@code='c']"/>
</a>
<xsl:text>, </xsl:text>
<xsl:value-of select="marc:subfield[@code='d']"/>
</xsl:for-each>
</p>
</xsl:if>
<xsl:call-template name="tag_title">
<xsl:with-param name="tag">225</xsl:with-param>
<xsl:with-param name="label">Collection</xsl:with-param>
</xsl:call-template>
<xsl:if test="marc:datafield[@tag=215]">
<p id="xslt4">
<xsl:for-each select="marc:datafield[@tag=215]">
<strong>Description&nbsp;: </strong>
<xsl:value-of select="marc:subfield[@code='c']"/>
</xsl:for-each>
</p>
</xsl:if>
<xsl:if test="marc:datafield[@tag=215][e]">
<p id="xslt6">
<xsl:for-each select="marc:datafield[@tag=215]">
<strong>Matériel complémentaire&nbsp;: </strong>
<xsl:value-of select="marc:subfield[@code='e']"/>
</xsl:for-each>
</p>
</xsl:if>
<xsl:if test="marc:datafield[@tag=300]">
<p id="xslt7">
<xsl:for-each select="marc:datafield[@tag=300]">
<strong>Détail du contenu&nbsp;: </strong>
<xsl:if test="marc:subfield[@code='a']">
<xsl:call-template name="replace_sab">
<xsl:with-param name="s" select="marc:subfield[@code='a']" />
<xsl:with-param name="a" select="'&#xA;'" />
<xsl:with-param name="b"><br /></xsl:with-param>
</xsl:call-template>
</xsl:if>
</xsl:for-each>
</p>
</xsl:if>
<xsl:if test="marc:datafield[@tag=462]">
<li>
<strong>Document rattaché&nbsp;: </strong>
<ul>
<xsl:for-each select="marc:datafield[@tag=462]">
<li>
<xsl:call-template name="addClassRtl" />
<xsl:if test="marc:subfield[@code='t']">
<a>
<xsl:attribute name="href">
<xsl:text>/recherche/simple/expressionRecherche/</xsl:text>
<xsl:value-of select="translate(marc:subfield[@code='0'], '*?()', '+')"/>
</xsl:attribute>
<xsl:value-of select="marc:subfield[@code='t']"/>
</a>
</xsl:if>
<xsl:if test="marc:subfield[@code='e']"> :
<xsl:value-of select="marc:subfield[@code='e']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='f']"> /
<xsl:value-of select="marc:subfield[@code='f']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='v']">,
<xsl:value-of select="marc:subfield[@code='v']"/>
</xsl:if>
</li>
</xsl:for-each>
</ul>
</li>
</xsl:if>
<!--&&9 Subject - Name 600-->
<xsl:for-each select="marc:datafield[@tag=600]">
<li>
<strong>Sujet&nbsp;: </strong>
<span>
<xsl:if test="marc:subfield[@code='a']">
<xsl:value-of select="marc:subfield[@code='a']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='a'] and marc:subfield[@code='b']">
<xsl:text>, </xsl:text>
<xsl:value-of select="marc:subfield[@code='b']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='a'] and marc:subfield[@code='d']">
<xsl:text>, </xsl:text>
<xsl:value-of select="marc:subfield[@code='d']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='a'] and marc:subfield[@code='c']">
<xsl:text>, </xsl:text>
<xsl:value-of select="marc:subfield[@code='c']"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='a'] and marc:subfield[@code='f']">
<xsl:text> (</xsl:text>
<xsl:value-of select="marc:subfield[@code='f']"/>
<xsl:text>) </xsl:text> </xsl:if>
<xsl:if test="marc:subfield[@code='a'] and marc:subfield[@code='x']">
<xsl:text> -- </xsl:text>
<xsl:value-of select="marc:subfield[@code='x'][1]"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='x'][2]">
<xsl:text> -- </xsl:text>
<xsl:value-of select="marc:subfield[@code='x'][2]"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='x'][3]">
<xsl:text> -- </xsl:text>
<xsl:value-of select="marc:subfield[@code='x'][3]"/>
</xsl:if>
<xsl:if test="marc:subfield[@code='a'] and marc:subfield[@code='y']">
<xsl:text> -- </xsl:text>
<xsl:value-of select="marc:subfield[@code='y']"/>
</xsl:if>
</span>
</li>
</xsl:for-each>
<xsl:if test="marc:datafield[@tag=330]">
<p id="xslt2">
<strong>Résumé&nbsp;: </strong>
<xsl:for-each select="marc:datafield[@tag=330]">
<xsl:value-of select="marc:subfield[@code='a']"/>
<xsl:choose>
<xsl:when test="position()=last()">
<xsl:text> </xsl:text>
</xsl:when>
<xsl:otherwise>
<br></br><xsl:text> </xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</p>
</xsl:if>
<xsl:call-template name="tag_4xx">
<xsl:with-param name="tag">464</xsl:with-param>
<xsl:with-param name="label">Contenu</xsl:with-param>
</xsl:call-template>
<!--
<xsl:if test="marc:datafield[@tag=210]">
<p id="xslt3">
<xsl:for-each select="marc:datafield[@tag=210]">
<xsl:value-of select="marc:subfield[@code='c']"/>
<xsl:text>, </xsl:text>
<xsl:value-of select="marc:subfield[@code='d']"/>
</xsl:for-each>
</p>
</xsl:if>
-->
</xsl:template>
<xsl:template name="nameABCDQ">
<xsl:call-template name="chopPunctuation">
<xsl:with-param name="chopString">
<xsl:call-template name="subfieldSelect">
<xsl:with-param name="codes">aq</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
<xsl:with-param name="punctuation">
<xsl:text>:,;/ </xsl:text>
</xsl:with-param>
</xsl:call-template>
<xsl:call-template name="termsOfAddress"/>
</xsl:template>
<xsl:template name="nameABCDN">
<xsl:for-each select="marc:subfield[@code='a']">
<xsl:call-template name="chopPunctuation">
<xsl:with-param name="chopString" select="."/>
</xsl:call-template>
</xsl:for-each>
<xsl:for-each select="marc:subfield[@code='b']">
<xsl:value-of select="."/>
</xsl:for-each>
<xsl:if test="marc:subfield[@code='c'] or marc:subfield[@code='d'] or marc:subfield[@code='n']">
<xsl:call-template name="subfieldSelect">
<xsl:with-param name="codes">cdn</xsl:with-param>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name="nameACDEQ">
<xsl:call-template name="subfieldSelect">
<xsl:with-param name="codes">acdeq</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="termsOfAddress">
<xsl:if test="marc:subfield[@code='b' or @code='c']">
<xsl:call-template name="chopPunctuation">
<xsl:with-param name="chopString">
<xsl:call-template name="subfieldSelect">
<xsl:with-param name="codes">bc</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name="part">
<xsl:variable name="partNumber">
<xsl:call-template name="specialSubfieldSelect">
<xsl:with-param name="axis">n</xsl:with-param>
<xsl:with-param name="anyCodes">n</xsl:with-param>
<xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="partName">
<xsl:call-template name="specialSubfieldSelect">
<xsl:with-param name="axis">p</xsl:with-param>
<xsl:with-param name="anyCodes">p</xsl:with-param>
<xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
</xsl:call-template>
</xsl:variable>
<xsl:if test="string-length(normalize-space($partNumber))">
<xsl:call-template name="chopPunctuation">
<xsl:with-param name="chopString" select="$partNumber"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="string-length(normalize-space($partName))">
<xsl:call-template name="chopPunctuation">
<xsl:with-param name="chopString" select="$partName"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name="specialSubfieldSelect">
<xsl:param name="anyCodes"/>
<xsl:param name="axis"/>
<xsl:param name="beforeCodes"/>
<xsl:param name="afterCodes"/>
<xsl:variable name="str">
<xsl:for-each select="marc:subfield">
<xsl:if test="contains($anyCodes, @code) or (contains($beforeCodes,@code) and following-sibling::marc:subfield[@code=$axis]) or (contains($afterCodes,@code) and preceding-sibling::marc:subfield[@code=$axis])">
<xsl:value-of select="text()"/>
<xsl:text> </xsl:text>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:value-of select="substring($str,1,string-length($str)-1)"/>
</xsl:template>
</xsl:stylesheet>
02466nam0a2200409 450 001000700000090001100007099001900018100004100037200002800078215022700106091000600333300062800339462002600967462004400993462004701037462005301084462005601137462007101193462003601264462002701300462004101327462005601368462005301424462004701477462004401524462002601568462002701594462007101621462003601692462004101728462004101769462003601810462007101846462002701917801001101944959010101955262312 a262312 tANIMuMALLEx0 a20190411d dm|y0frey50 ba aDe l'onde à la musique aDimensions de la mallecDes instruments de musique ; du matériel pour des ateliers sur la communication ; des boîtes pour un memory sonore ; 1 maquette représentant une oreilled60 x 40 x 35 cmeDes fiches pédagogiques a0 aDétail du contenu :
1 pochette contenant des instruments pour enfant
1 clavier d'enfant "MusicStar"
1 flûte à bec
4 diapasons + 1 maillet avec son support en bois
9 tubes PVC dans un sac papier kraft
2 serinettes dans une pochette plastique
1 manche de guitare dans une housse en velours dans son carton d'origine
1 Ukulélé
6 gobelets 90 cl
2 gobelets reliés avec de la ficelle
50 gobelets 20 cl
12 gobelets 25 cl (en carton)
10 tasses à café 15 cl
1 pochette avec 2 bobines de fil, 1 paire de ciseaux
4 épingles de sûreté
17 boîtes blanches
des livres
 tLe son0808659135567 tLes sons en 150 questions057753995092 tExpériences avec les sons01629349291944 tLe labo des sons et des lumières0887439149824 tDans mes oreilles, j'entends le monde013948920248 t100 activités scientifiques pour apprendre autrement08953911087 tMaxi kézako ? 50852489143795 tLe son01850799334727 tLes secrets des sons01084949185926 tDans mes oreilles, j'entends le monde013948920248 tLe labo des sons et des lumières0887439149824 tExpériences avec les sons01629349291944 tLes sons en 150 questions057753995092 tLe son0808659135567 tLe son01850799334727 t100 activités scientifiques pour apprendre autrement08953911087 tMaxi kézako ? 50852489143795 tLes secrets des sons01084949185926 tLes secrets des sons01084949185926 tMaxi kézako ? 50852489143795 t100 activités scientifiques pour apprendre autrement08953911087 tLe son01850799334727 aFrance rhttps://mediatheque-koha-opac.aube.fr/cgi-bin/koha/opac-image.pl?thumbnail=1&biblionumber=262312
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment