Bug 8852: DOM XSL now handles subfield substring extraction
This patch modify koha-indexdefs-to-zebra.xsl in order to add the ability to populate indexes with subfield substring. It's now possible to understand such construction as: <index_subfields xmlns="http://..." tag="100" subfields="a" offset="7" length="1"> <target_index>tpubdate:s</target_index> </index_subfields> Signed-off-by:Mathieu Saby <mathieu.saby@univ-rennes2.fr> I applied the patch and ran xsltproc koha-indexdefs-to-zebra.xsl ../marc_defs/unimarc/biblios/biblio-koha-indexdefs.xml \ > ../marc_defs/unimarc/biblios/biblio-zebra-indexdefs.xsl I looked at the generated file. It looks nice. Then I copied it file in my INSTALLDIR/etc/zebra.... and reindexed my records with rebuild_zebra.pl I made some searches on coded position index and non coded position indexes, everything works. http://bugs.koha-community.org/show_bug.cgi?id=8252 Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
This commit is contained in:
parent
43809d2835
commit
f9addcc98b
1 changed files with 18 additions and 1 deletions
|
@ -253,6 +253,8 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
|
|||
</xsl:template>
|
||||
|
||||
<xsl:template name="handle-one-index-subfields">
|
||||
<xsl:variable name="offset"><xsl:value-of select="@offset"/></xsl:variable>
|
||||
<xsl:variable name="length"><xsl:value-of select="@length"/></xsl:variable>
|
||||
<xsl:variable name="indexes">
|
||||
<xsl:call-template name="get-target-indexes"/>
|
||||
</xsl:variable>
|
||||
|
@ -265,7 +267,22 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
|
|||
</xsl:attribute>
|
||||
<z:index>
|
||||
<xsl:attribute name="name"><xsl:value-of select="normalize-space($indexes)"/></xsl:attribute>
|
||||
<xslo:value-of select="."/>
|
||||
<xslo:value-of>
|
||||
<xsl:attribute name="select">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@length">
|
||||
<xsl:text>substring(., </xsl:text>
|
||||
<xsl:value-of select="$offset + 1" />
|
||||
<xsl:text>, </xsl:text>
|
||||
<xsl:value-of select="$length"/>
|
||||
<xsl:text>)</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:text>.</xsl:text>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
</xslo:value-of>
|
||||
</z:index>
|
||||
</xslo:if>
|
||||
</xslo:for-each>
|
||||
|
|
Loading…
Reference in a new issue