View | Details | Raw Unified | Return to bug 11232
Collapse All | Expand All

(-)a/debian/templates/marc21-retrieval-info-bib-dom.xml (+2 lines)
Lines 14-22 Link Here
14
            outputcharset="utf-8"/>
14
            outputcharset="utf-8"/>
15
    </backend>
15
    </backend>
16
  </retrieval>
16
  </retrieval>
17
  <retrieval syntax="xml"/>
17
  <retrieval syntax="xml" name="index"/> <!-- allow viewing index entries -->
18
  <retrieval syntax="xml" name="index"/> <!-- allow viewing index entries -->
18
  <retrieval syntax="xml" name="marc"
19
  <retrieval syntax="xml" name="marc"
19
             identifier="info:srw/schema/1/marcxml-v1.1"/>
20
             identifier="info:srw/schema/1/marcxml-v1.1"/>
20
  <retrieval syntax="xml" name="marcxml"
21
  <retrieval syntax="xml" name="marcxml"
21
             identifier="info:srw/schema/1/marcxml-v1.1"/>
22
             identifier="info:srw/schema/1/marcxml-v1.1"/>
23
  <retrieval syntax="xml" name="zebra::*" />
22
</retrievalinfo>
24
</retrievalinfo>
(-)a/debian/templates/normarc-retrieval-info-bib-dom.xml (+2 lines)
Lines 14-22 Link Here
14
            outputcharset="utf-8"/>
14
            outputcharset="utf-8"/>
15
    </backend>
15
    </backend>
16
  </retrieval>
16
  </retrieval>
17
  <retrieval syntax="xml"/>
17
  <retrieval syntax="xml" name="index"/> <!-- allow viewing index entries -->
18
  <retrieval syntax="xml" name="index"/> <!-- allow viewing index entries -->
18
  <retrieval syntax="xml" name="marc"
19
  <retrieval syntax="xml" name="marc"
19
             identifier="info:srw/schema/1/marcxml-v1.1"/>
20
             identifier="info:srw/schema/1/marcxml-v1.1"/>
20
  <retrieval syntax="xml" name="marcxml"
21
  <retrieval syntax="xml" name="marcxml"
21
             identifier="info:srw/schema/1/marcxml-v1.1"/>
22
             identifier="info:srw/schema/1/marcxml-v1.1"/>
23
  <retrieval syntax="xml" name="zebra::*" />
22
</retrievalinfo>
24
</retrievalinfo>
(-)a/debian/templates/unimarc-retrieval-info-bib-dom.xml (+2 lines)
Lines 14-22 Link Here
14
            outputcharset="utf-8"/>
14
            outputcharset="utf-8"/>
15
    </backend>
15
    </backend>
16
  </retrieval>
16
  </retrieval>
17
  <retrieval syntax="xml"/>
17
  <retrieval syntax="xml" name="index"/> <!-- allow viewing index entries -->
18
  <retrieval syntax="xml" name="index"/> <!-- allow viewing index entries -->
18
  <retrieval syntax="xml" name="marc"
19
  <retrieval syntax="xml" name="marc"
19
             identifier="info:srw/schema/1/marcxml-v1.1"/>
20
             identifier="info:srw/schema/1/marcxml-v1.1"/>
20
  <retrieval syntax="xml" name="marcxml"
21
  <retrieval syntax="xml" name="marcxml"
21
             identifier="info:srw/schema/1/marcxml-v1.1"/>
22
             identifier="info:srw/schema/1/marcxml-v1.1"/>
23
  <retrieval syntax="xml" name="zebra::*" />
22
</retrievalinfo>
24
</retrievalinfo>
(-)a/etc/zebradb/retrieval-info-bib-dom.xml (+7 lines)
Lines 15-18 Link Here
15
    </backend>
15
    </backend>
16
  </retrieval>
16
  </retrieval>
17
  <retrieval syntax="xml"/>
17
  <retrieval syntax="xml"/>
18
  <retrieval syntax="xml" name="index"/> <!-- allow viewing index entries -->
19
  <retrieval syntax="xml" name="marc"
20
             identifier="info:srw/schema/1/marcxml-v1.1"/>
21
  <retrieval syntax="xml" name="marcxml"
22
             identifier="info:srw/schema/1/marcxml-v1.1"/>
23
<!-- enable access to Zebra's internal data -->
24
  <retrieval syntax="xml" name="zebra::*" />
18
</retrievalinfo>
25
</retrievalinfo>
(-)a/etc/zebradb/xsl/koha-indexdefs-to-zebra.xsl (-6 / +95 lines)
Lines 12-21 Link Here
12
    <xsl:template match="text()"/>
12
    <xsl:template match="text()"/>
13
13
14
    <!-- Keys on tags referenced in the index definitions -->
14
    <!-- Keys on tags referenced in the index definitions -->
15
    <xsl:key name="index_control_field_tag"   match="kohaidx:index_control_field"   use="@tag"/>
15
    <xsl:key name="index_control_field_tag" match="kohaidx:index_control_field" use="@tag"/>
16
    <xsl:key name="index_subfields_tag" match="kohaidx:index_subfields" use="@tag"/>
16
    <xsl:key name="index_subfields_tag"     match="kohaidx:index_subfields"     use="@tag"/>
17
    <xsl:key name="index_heading_tag"   match="kohaidx:index_heading"   use="@tag"/>
17
    <xsl:key name="index_facet_tag"         match="kohaidx:facet"               use="@tag"/>
18
    <xsl:key name="index_data_field_tag"   match="kohaidx:index_data_field"   use="@tag"/>
18
    <xsl:key name="index_heading_tag"       match="kohaidx:index_heading"       use="@tag"/>
19
    <xsl:key name="index_data_field_tag"    match="kohaidx:index_data_field"    use="@tag"/>
19
    <xsl:key name="index_heading_conditional_tag" match="kohaidx:index_heading_conditional" use="@tag"/>
20
    <xsl:key name="index_heading_conditional_tag" match="kohaidx:index_heading_conditional" use="@tag"/>
20
    <xsl:key name="index_match_heading_tag" match="kohaidx:index_match_heading" use="@tag"/>
21
    <xsl:key name="index_match_heading_tag" match="kohaidx:index_match_heading" use="@tag"/>
21
22
Lines 33-38 definition file (probably something like {biblio,authority}-koha-indexdefs.xml) Link Here
33
            <xslo:template match="text()"/>
34
            <xslo:template match="text()"/>
34
            <xslo:template match="text()" mode="index_subfields"/>
35
            <xslo:template match="text()" mode="index_subfields"/>
35
            <xslo:template match="text()" mode="index_data_field"/>
36
            <xslo:template match="text()" mode="index_data_field"/>
37
            <xslo:template match="text()" mode="index_facets"/>
36
            <xslo:template match="text()" mode="index_heading"/>
38
            <xslo:template match="text()" mode="index_heading"/>
37
            <xslo:template match="text()" mode="index_heading_conditional"/>
39
            <xslo:template match="text()" mode="index_heading_conditional"/>
38
            <xslo:template match="text()" mode="index_match_heading"/>
40
            <xslo:template match="text()" mode="index_match_heading"/>
Lines 57-62 definition file (probably something like {biblio,authority}-koha-indexdefs.xml) Link Here
57
                    <xslo:apply-templates/>
59
                    <xslo:apply-templates/>
58
                    <xslo:apply-templates mode="index_subfields"/>
60
                    <xslo:apply-templates mode="index_subfields"/>
59
                    <xslo:apply-templates mode="index_data_field"/>
61
                    <xslo:apply-templates mode="index_data_field"/>
62
                    <xslo:apply-templates mode="index_facets"/>
60
                    <xslo:apply-templates mode="index_heading"/>
63
                    <xslo:apply-templates mode="index_heading"/>
61
                    <xslo:apply-templates mode="index_heading_conditional"/>
64
                    <xslo:apply-templates mode="index_heading_conditional"/>
62
                    <xslo:apply-templates mode="index_match_heading"/>
65
                    <xslo:apply-templates mode="index_match_heading"/>
Lines 69-74 definition file (probably something like {biblio,authority}-koha-indexdefs.xml) Link Here
69
            <xsl:call-template name="handle-index-control-field"/>
72
            <xsl:call-template name="handle-index-control-field"/>
70
            <xsl:call-template name="handle-index-subfields"/>
73
            <xsl:call-template name="handle-index-subfields"/>
71
            <xsl:call-template name="handle-index-data-field"/>
74
            <xsl:call-template name="handle-index-data-field"/>
75
            <xsl:call-template name="handle-index-facets"/>
72
            <xsl:call-template name="handle-index-heading"/>
76
            <xsl:call-template name="handle-index-heading"/>
73
            <xsl:call-template name="handle-index-heading-conditional"/>
77
            <xsl:call-template name="handle-index-heading-conditional"/>
74
            <xsl:call-template name="handle-index-match-heading"/>
78
            <xsl:call-template name="handle-index-match-heading"/>
Lines 104-110 definition file (probably something like {biblio,authority}-koha-indexdefs.xml) Link Here
104
        </xslo:variable>
108
        </xslo:variable>
105
    </xsl:template>
109
    </xsl:template>
106
110
107
    <xsl:template match="kohaidx:index_subject_thesaurus">   
111
    <xsl:template match="kohaidx:index_subject_thesaurus">
108
        <xsl:variable name="tag"><xsl:value-of select="@tag"/></xsl:variable>
112
        <xsl:variable name="tag"><xsl:value-of select="@tag"/></xsl:variable>
109
        <xsl:variable name="offset"><xsl:value-of select="@offset"/></xsl:variable>
113
        <xsl:variable name="offset"><xsl:value-of select="@offset"/></xsl:variable>
110
        <xsl:variable name="length"><xsl:value-of select="@length"/></xsl:variable>
114
        <xsl:variable name="length"><xsl:value-of select="@length"/></xsl:variable>
Lines 288-293 definition file (probably something like {biblio,authority}-koha-indexdefs.xml) Link Here
288
            </xslo:for-each>
292
            </xslo:for-each>
289
    </xsl:template>
293
    </xsl:template>
290
294
295
    <xsl:template name="handle-index-facets">
296
      <xsl:for-each select="//kohaidx:facet[generate-id() = generate-id(key('index_facet_tag', @tag)[1])]">
297
          <xslo:template mode="index_facets">
298
            <xsl:attribute name="match">
299
            <xsl:text>marc:datafield[@tag='</xsl:text>
300
            <xsl:value-of select="@tag"/>
301
            <xsl:text>']</xsl:text>
302
            </xsl:attribute>
303
            <xslo:if>
304
              <xsl:attribute name="test">
305
                <xsl:text>not(@ind1='z')</xsl:text>
306
              </xsl:attribute>
307
              <xsl:for-each select="key('index_facet_tag', @tag)">
308
                <xsl:variable name="indexes">
309
                  <xsl:call-template name="get-facets-target-indexes"/>
310
                </xsl:variable>
311
                  <xsl:if test="not($indexes='')">
312
                  <z:index>
313
                  <xsl:attribute name="name">
314
                    <xsl:value-of select="normalize-space($indexes)"/>
315
                  </xsl:attribute>
316
                  <xsl:call-template name="build-facet-value">
317
                    <xsl:with-param name="subfields" select="@subfields"/>
318
                  </xsl:call-template>
319
                  </z:index>
320
                </xsl:if>
321
              </xsl:for-each>
322
            </xslo:if>
323
          </xslo:template>
324
      </xsl:for-each>
325
    </xsl:template>
326
291
    <xsl:template name="handle-index-data-field">
327
    <xsl:template name="handle-index-data-field">
292
        <xsl:for-each select="//kohaidx:index_data_field[generate-id() = generate-id(key('index_data_field_tag', @tag)[1])]">
328
        <xsl:for-each select="//kohaidx:index_data_field[generate-id() = generate-id(key('index_data_field_tag', @tag)[1])]">
293
            <xslo:template mode="index_data_field">
329
            <xslo:template mode="index_data_field">
Lines 475-478 definition file (probably something like {biblio,authority}-koha-indexdefs.xml) Link Here
475
            <xsl:value-of select="." /><xsl:text> </xsl:text>
511
            <xsl:value-of select="." /><xsl:text> </xsl:text>
476
        </xsl:for-each>
512
        </xsl:for-each>
477
    </xsl:template>
513
    </xsl:template>
514
515
    <xsl:template name="get-facets-target-indexes">
516
        <xsl:for-each select="kohaidx:target_index">
517
            <xsl:value-of select="." /><xsl:text> </xsl:text>
518
        </xsl:for-each>
519
    </xsl:template>
520
521
    <!-- traverse subfields string character-wise -->
522
    <xsl:template name="build-facet-value">
523
      <xsl:param name="subfields"/>
524
      <xsl:if test="string-length($subfields) &gt; 0">
525
        <xslo:value-of>
526
          <xsl:attribute name="select">
527
              <xsl:text>marc:subfield[@code='</xsl:text>
528
              <xsl:value-of select="substring($subfields,1,1)"/>
529
              <xsl:text>']</xsl:text>
530
          </xsl:attribute>
531
        </xslo:value-of>
532
        <xsl:call-template name="build-facet-value-cont">
533
          <xsl:with-param name="prev" select="substring($subfields,1,1)"/>
534
          <xsl:with-param name="subfields" select="substring($subfields,2)"/>
535
        </xsl:call-template>
536
      </xsl:if>
537
    </xsl:template>
538
    <!-- traverse the remainder of @subfields, with context information
539
         i.e previous char. Introduces a separator character if needed -->
540
    <xsl:template name="build-facet-value-cont">
541
      <xsl:param name="prev"/>
542
      <xsl:param name="subfields"/>
543
      <xsl:if test="string-length($subfields) &gt; 0">
544
        <xslo:if>
545
            <xsl:attribute name="test">
546
                <xsl:text>marc:subfield[@code='</xsl:text>
547
                <xsl:value-of select="$prev"/>
548
                <xsl:text>'] and marc:subfield[@code='</xsl:text>
549
                <xsl:value-of select="substring($subfields,1,1)"/>
550
                <xsl:text>']</xsl:text>
551
            </xsl:attribute>
552
            <xslo:text>&lt;*&gt;</xslo:text>
553
        </xslo:if>
554
        <xslo:value-of>
555
          <xsl:attribute name="select">
556
              <xsl:text>marc:subfield[@code='</xsl:text>
557
              <xsl:value-of select="substring($subfields,1,1)"/>
558
              <xsl:text>']</xsl:text>
559
          </xsl:attribute>
560
        </xslo:value-of>
561
        <xsl:call-template name="build-facet-value-cont">
562
          <xsl:with-param name="prev" select="substring($subfields,1,1)"/>
563
          <xsl:with-param name="subfields" select="substring($subfields,2)"/>
564
        </xsl:call-template>
565
      </xsl:if>
566
    </xsl:template>
567
478
</xsl:stylesheet>
568
</xsl:stylesheet>
479
- 

Return to bug 11232