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

(-)a/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACResults.xsl (-134 / +175 lines)
Lines 19-28 Link Here
19
        <!-- Option: Display Alternate Graphic Representation (MARC 880)  -->
19
        <!-- Option: Display Alternate Graphic Representation (MARC 880)  -->
20
        <xsl:variable name="display880" select="boolean(marc:datafield[@tag=880])"/>
20
        <xsl:variable name="display880" select="boolean(marc:datafield[@tag=880])"/>
21
21
22
    <xsl:variable name="hidelostitems" select="marc:sysprefs/marc:syspref[@name='hidelostitems']"/>
23
    <xsl:variable name="DisplayOPACiconsXSLT" select="marc:sysprefs/marc:syspref[@name='DisplayOPACiconsXSLT']"/>
22
    <xsl:variable name="DisplayOPACiconsXSLT" select="marc:sysprefs/marc:syspref[@name='DisplayOPACiconsXSLT']"/>
24
    <xsl:variable name="OPACURLOpenInNewWindow" select="marc:sysprefs/marc:syspref[@name='OPACURLOpenInNewWindow']"/>
25
    <xsl:variable name="URLLinkText" select="marc:sysprefs/marc:syspref[@name='URLLinkText']"/>
26
        <xsl:variable name="leader" select="marc:leader"/>
23
        <xsl:variable name="leader" select="marc:leader"/>
27
        <xsl:variable name="leader6" select="substring($leader,7,1)"/>
24
        <xsl:variable name="leader6" select="substring($leader,7,1)"/>
28
        <xsl:variable name="leader7" select="substring($leader,8,1)"/>
25
        <xsl:variable name="leader7" select="substring($leader,8,1)"/>
Lines 900-1042 Link Here
900
            </xsl:for-each>
897
            </xsl:for-each>
901
	</span>
898
	</span>
902
    </xsl:if>
899
    </xsl:if>
903
    <xsl:if test="marc:datafield[@tag=856]">
900
904
         <span class="results_summary">
901
        <xsl:call-template name="ShowELocation"/>
905
			   <span class="label">Online Access: </span>
902
906
                            <xsl:for-each select="marc:datafield[@tag=856]">
903
        <!-- Remove surrouding comments to show call number too -->
907
                            <xsl:if test="$OPACURLOpenInNewWindow='0'">
904
        <!--
908
                                   <a><xsl:attribute name="href"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute>
905
        <xsl:call-template name="ShowCallNumber"/>
909
                                    <xsl:choose>
906
        -->
910
                                    <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']">
907
911
                                        <xsl:call-template name="subfieldSelect">                        
908
        <xsl:call-template name="ShowAvailable"/>
912
                                        <xsl:with-param name="codes">y3z</xsl:with-param>                    
909
    </xsl:template>
913
                                        </xsl:call-template>
910
    <!-- end of match marc:record -->
914
                                    </xsl:when>
911
915
                                    <xsl:when test="not(marc:subfield[@code='y']) and not(marc:subfield[@code='3']) and not(marc:subfield[@code='z'])">
912
916
					<xsl:choose>
913
    <xsl:template name="ShowELocation">
917
					<xsl:when test="$URLLinkText!=''">
914
        <xsl:variable name="OPACURLOpenInNewWindow" select="marc:sysprefs/marc:syspref[@name='OPACURLOpenInNewWindow']"/>
918
						<xsl:value-of select="$URLLinkText"/>
915
        <xsl:variable name="URLLinkText" select="marc:sysprefs/marc:syspref[@name='URLLinkText']"/>
919
					</xsl:when>
916
        <xsl:if test="marc:datafield[@tag=856]">
920
					<xsl:otherwise>
917
            <span class="results_summary">
921
						<xsl:text>Click here to access online</xsl:text>
918
	        <span class="label">Online Access: </span>
922
					</xsl:otherwise>
919
                <xsl:for-each select="marc:datafield[@tag=856]">
923
					</xsl:choose>
920
                    <xsl:if test="$OPACURLOpenInNewWindow='0'">
924
                                    </xsl:when>
921
                        <a><xsl:attribute name="href"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute>
925
                                    </xsl:choose>
922
                        <xsl:choose>
926
                                    </a>
923
                            <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']">
927
                              </xsl:if>
924
                                <xsl:call-template name="subfieldSelect">
928
                            <xsl:if test="$OPACURLOpenInNewWindow='1'">
925
                                    <xsl:with-param name="codes">y3z</xsl:with-param>
929
                                   <a target='_blank'><xsl:attribute name="href"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute>
926
                                </xsl:call-template>
930
                                    <xsl:choose>
927
                            </xsl:when>
931
                                    <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']">
928
                            <xsl:when test="not(marc:subfield[@code='y']) and not(marc:subfield[@code='3']) and not(marc:subfield[@code='z'])">
932
                                        <xsl:call-template name="subfieldSelect">                        
929
			        <xsl:choose>
933
                                        <xsl:with-param name="codes">y3z</xsl:with-param>                    
930
				    <xsl:when test="$URLLinkText!=''">
934
                                        </xsl:call-template>
931
                                        <xsl:value-of select="$URLLinkText"/>
935
                                    </xsl:when>
936
                                    <xsl:when test="not(marc:subfield[@code='y']) and not(marc:subfield[@code='3']) and not(marc:subfield[@code='z'])">
937
					<xsl:choose>
938
					<xsl:when test="$URLLinkText!=''">
939
						<xsl:value-of select="$URLLinkText"/>
940
					</xsl:when>
941
					<xsl:otherwise>
942
						<xsl:text>Click here to access online</xsl:text>
943
					</xsl:otherwise>
944
					</xsl:choose>
945
                                    </xsl:when>
932
                                    </xsl:when>
946
                                    </xsl:choose>
933
                                    <xsl:otherwise>
947
                                    </a>
934
                                        <xsl:text>Click here to access online</xsl:text>
948
                              </xsl:if>
935
                                    </xsl:otherwise>
949
                                    <xsl:choose>
936
                                </xsl:choose>
950
                                    <xsl:when test="position()=last()"><xsl:text> </xsl:text></xsl:when>
937
                            </xsl:when>
951
                                    <xsl:otherwise> | </xsl:otherwise>
938
                        </xsl:choose>
952
                                    </xsl:choose>
939
                        </a>
953
                            </xsl:for-each>
940
                    </xsl:if>
954
                            </span>
941
                    <xsl:if test="$OPACURLOpenInNewWindow='1'">
955
                        </xsl:if>
942
                      <a target='_blank'><xsl:attribute name="href"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute>
956
                        <span class="results_summary">
957
                        <span class="label">Availability: </span>
958
                        <xsl:choose>
943
                        <xsl:choose>
959
				   <xsl:when test="count(key('item-by-status', 'available'))=0 and count(key('item-by-status', 'reference'))=0">No copies available
944
                            <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']">
960
				   </xsl:when>
945
                                <xsl:call-template name="subfieldSelect">
961
                   <xsl:when test="count(key('item-by-status', 'available'))>0">
946
                                    <xsl:with-param name="codes">y3z</xsl:with-param>
962
                   <span class="available">
947
                                </xsl:call-template>
963
                       <b><xsl:text>Copies available for loan: </xsl:text></b>
948
                            </xsl:when>
964
                       <xsl:variable name="available_items"
949
                            <xsl:when test="not(marc:subfield[@code='y']) and not(marc:subfield[@code='3']) and not(marc:subfield[@code='z'])">
950
                                <xsl:choose>
951
				    <xsl:when test="$URLLinkText!=''">
952
                                        <xsl:value-of select="$URLLinkText"/>
953
                                    </xsl:when>
954
				    <xsl:otherwise>
955
				        <xsl:text>Click here to access online</xsl:text>
956
				    </xsl:otherwise>
957
                                </xsl:choose>
958
                            </xsl:when>
959
                        </xsl:choose>
960
                      </a>
961
                    </xsl:if>
962
                    <xsl:choose>
963
                        <xsl:when test="position()=last()"><xsl:text> </xsl:text></xsl:when>
964
                        <xsl:otherwise> | </xsl:otherwise>
965
                    </xsl:choose>
966
                </xsl:for-each>
967
            </span>
968
        </xsl:if>
969
    </xsl:template>
970
971
    <xsl:template name="ShowAvailable">
972
      <xsl:variable name="hidelostitems" select="marc:sysprefs/marc:syspref[@name='hidelostitems']"/>
973
      <span class="results_summary">
974
        <span class="label">Availability: </span>
975
        <xsl:choose>
976
              <xsl:when test="count(key('item-by-status', 'available'))=0 and count(key('item-by-status', 'reference'))=0">No copies available
977
              </xsl:when>
978
              <xsl:when test="count(key('item-by-status', 'available'))>0">
979
                  <span class="available">
980
                      <b><xsl:text>Copies available for loan: </xsl:text></b>
981
                      <xsl:variable name="available_items"
965
                           select="key('item-by-status', 'available')"/>
982
                           select="key('item-by-status', 'available')"/>
966
                       <xsl:for-each select="$available_items[generate-id() = generate-id(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch))[1])]">
983
                      <xsl:for-each select="$available_items[generate-id() = generate-id(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch))[1])]">
967
                           <xsl:value-of select="items:homebranch"/>
984
                          <xsl:value-of select="items:homebranch"/>
968
						   <xsl:if test="items:itemcallnumber != '' and items:itemcallnumber"> [<xsl:value-of select="items:itemcallnumber"/>]</xsl:if>
985
			  <xsl:if test="items:itemcallnumber != '' and items:itemcallnumber"> [<xsl:value-of select="items:itemcallnumber"/>]</xsl:if>
969
                           <xsl:text> (</xsl:text>
986
                          <xsl:text> (</xsl:text>
970
                           <xsl:value-of select="count(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch)))"/>
987
                          <xsl:value-of select="count(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch)))"/>
971
                           <xsl:text>)</xsl:text>
988
                          <xsl:text>)</xsl:text>
972
<xsl:choose><xsl:when test="position()=last()"><xsl:text>. </xsl:text></xsl:when><xsl:otherwise><xsl:text>, </xsl:text></xsl:otherwise></xsl:choose>
989
<xsl:choose><xsl:when test="position()=last()"><xsl:text>. </xsl:text></xsl:when><xsl:otherwise><xsl:text>, </xsl:text></xsl:otherwise></xsl:choose>
973
                       </xsl:for-each>
990
                      </xsl:for-each>
974
                   </span>
991
                  </span>
975
                   </xsl:when>
992
              </xsl:when>
976
				   </xsl:choose>
993
	</xsl:choose>
977
994
978
                   <xsl:choose>
995
        <xsl:choose>
979
                   <xsl:when test="count(key('item-by-status', 'reference'))>0">
996
            <xsl:when test="count(key('item-by-status', 'reference'))>0">
980
                   <span class="available">
997
                <span class="available">
981
                       <b><xsl:text>Copies available for reference: </xsl:text></b>
998
                    <b><xsl:text>Copies available for reference: </xsl:text></b>
982
                       <xsl:variable name="reference_items"
999
                    <xsl:variable name="reference_items"
983
                           select="key('item-by-status', 'reference')"/>
1000
                           select="key('item-by-status', 'reference')"/>
984
                       <xsl:for-each select="$reference_items[generate-id() = generate-id(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch))[1])]">
1001
                    <xsl:for-each select="$reference_items[generate-id() = generate-id(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch))[1])]">
985
                           <xsl:value-of select="items:homebranch"/>
1002
                        <xsl:value-of select="items:homebranch"/>
986
						   <xsl:if test="items:itemcallnumber != '' and items:itemcallnumber"> [<xsl:value-of select="items:itemcallnumber"/>]</xsl:if>
1003
			<xsl:if test="items:itemcallnumber != '' and items:itemcallnumber"> [<xsl:value-of select="items:itemcallnumber"/>]</xsl:if>
987
                           <xsl:text> (</xsl:text>
1004
                        <xsl:text> (</xsl:text>
988
                           <xsl:value-of select="count(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch)))"/>
1005
                        <xsl:value-of select="count(key('item-by-status-and-branch', concat(items:status, ' ', items:homebranch)))"/>
989
                           <xsl:text>)</xsl:text>
1006
                        <xsl:text>)</xsl:text>
990
                   <xsl:choose><xsl:when test="position()=last()"><xsl:text>. </xsl:text></xsl:when><xsl:otherwise><xsl:text>, </xsl:text></xsl:otherwise></xsl:choose>
1007
                        <xsl:choose><xsl:when test="position()=last()"><xsl:text>. </xsl:text></xsl:when><xsl:otherwise><xsl:text>, </xsl:text></xsl:otherwise></xsl:choose>
991
                       </xsl:for-each>
1008
                    </xsl:for-each>
992
                   </span>
1009
                </span>
993
                   </xsl:when>
1010
            </xsl:when>
994
                   </xsl:choose>
1011
        </xsl:choose>
1012
1013
        <xsl:if test="count(key('item-by-status', 'Checked out'))>0">
1014
            <span class="unavailable">
1015
                <xsl:text>Checked out (</xsl:text>
1016
                <xsl:value-of select="count(key('item-by-status', 'Checked out'))"/>
1017
                <xsl:text>). </xsl:text>
1018
            </span>
1019
        </xsl:if>
1020
1021
        <xsl:if test="count(key('item-by-status', 'Withdrawn'))>0">
1022
            <span class="unavailable">
1023
                <xsl:text>Withdrawn (</xsl:text>
1024
                <xsl:value-of select="count(key('item-by-status', 'Withdrawn'))"/>
1025
                <xsl:text>). </xsl:text>
1026
            </span>
1027
        </xsl:if>
1028
1029
        <xsl:if test="$hidelostitems='0' and count(key('item-by-status', 'Lost'))>0">
1030
            <span class="unavailable">
1031
                <xsl:text>Lost (</xsl:text>
1032
                <xsl:value-of select="count(key('item-by-status', 'Lost'))"/>
1033
                <xsl:text>). </xsl:text>
1034
            </span>
1035
	</xsl:if>
1036
1037
        <xsl:if test="count(key('item-by-status', 'Damaged'))>0">
1038
            <span class="unavailable">
1039
                <xsl:text>Damaged (</xsl:text>
1040
                <xsl:value-of select="count(key('item-by-status', 'Damaged'))"/>
1041
                <xsl:text>). </xsl:text>
1042
            </span>
1043
        </xsl:if>
995
1044
996
                   <xsl:if test="count(key('item-by-status', 'Checked out'))>0">
1045
        <xsl:if test="count(key('item-by-status', 'On order'))>0">
997
                   <span class="unavailable">
1046
            <span class="unavailable">
998
                       <xsl:text>Checked out (</xsl:text>
1047
                <xsl:text>On order (</xsl:text>
999
                       <xsl:value-of select="count(key('item-by-status', 'Checked out'))"/>
1048
                <xsl:value-of select="count(key('item-by-status', 'On order'))"/>
1000
                       <xsl:text>). </xsl:text>
1049
                <xsl:text>). </xsl:text>
1001
				   </span>
1050
            </span>
1002
                   </xsl:if>
1051
        </xsl:if>
1003
                   <xsl:if test="count(key('item-by-status', 'Withdrawn'))>0">
1052
1004
                   <span class="unavailable">
1053
        <xsl:if test="count(key('item-by-status', 'In transit'))>0">
1005
                       <xsl:text>Withdrawn (</xsl:text>
1054
            <span class="unavailable">
1006
                       <xsl:value-of select="count(key('item-by-status', 'Withdrawn'))"/>
1055
                <xsl:text>In transit (</xsl:text>
1007
                       <xsl:text>). </xsl:text>                   </span>
1056
                <xsl:value-of select="count(key('item-by-status', 'In transit'))"/>
1008
				   </xsl:if>
1057
                <xsl:text>). </xsl:text>
1009
                    <xsl:if test="$hidelostitems='0' and count(key('item-by-status', 'Lost'))>0">
1058
            </span>
1010
                   <span class="unavailable">
1059
        </xsl:if>
1011
                       <xsl:text>Lost (</xsl:text>
1060
1012
                       <xsl:value-of select="count(key('item-by-status', 'Lost'))"/>
1061
        <xsl:if test="count(key('item-by-status', 'Waiting'))>0">
1013
                       <xsl:text>). </xsl:text>                   </span>
1062
            <span class="unavailable">
1014
				   </xsl:if>
1063
                <xsl:text>On hold (</xsl:text>
1015
                    <xsl:if test="count(key('item-by-status', 'Damaged'))>0">
1064
                <xsl:value-of select="count(key('item-by-status', 'Waiting'))"/>
1016
                   <span class="unavailable">
1065
                <xsl:text>). </xsl:text>
1017
                       <xsl:text>Damaged (</xsl:text>
1066
            </span>
1018
                       <xsl:value-of select="count(key('item-by-status', 'Damaged'))"/>
1067
        </xsl:if>
1019
                       <xsl:text>). </xsl:text>                   </span>
1068
      </span>
1020
                   </xsl:if>
1069
    </xsl:template>
1021
                    <xsl:if test="count(key('item-by-status', 'On order'))>0">
1070
1022
                   <span class="unavailable">
1071
    <xsl:template name="ShowCallNumber">
1023
                       <xsl:text>On order (</xsl:text>
1072
        <span class="results_summary">
1024
                       <xsl:value-of select="count(key('item-by-status', 'On order'))"/>
1073
	    <span class="label">Call Number: </span>
1025
                       <xsl:text>). </xsl:text>                   </span>
1074
	    <xsl:for-each select="marc:datafield[@tag=952]/marc:subfield[@code='o']">
1026
                   </xsl:if>
1075
	        <xsl:value-of select="."/>
1027
                    <xsl:if test="count(key('item-by-status', 'In transit'))>0">
1076
	        <xsl:choose>
1028
                   <span class="unavailable">
1077
                    <xsl:when test="position()=last()"></xsl:when>
1029
                       <xsl:text>In transit (</xsl:text>
1078
                    <xsl:otherwise>, </xsl:otherwise>
1030
                       <xsl:value-of select="count(key('item-by-status', 'In transit'))"/>
1079
                </xsl:choose>
1031
                       <xsl:text>). </xsl:text>                   </span>
1080
            </xsl:for-each>
1032
                   </xsl:if>
1081
        </span>
1033
                    <xsl:if test="count(key('item-by-status', 'Waiting'))>0">
1034
                   <span class="unavailable">
1035
                       <xsl:text>On hold (</xsl:text>
1036
                       <xsl:value-of select="count(key('item-by-status', 'Waiting'))"/>
1037
                       <xsl:text>). </xsl:text>                   </span>
1038
                   </xsl:if>
1039
               </span>
1040
    </xsl:template>
1082
    </xsl:template>
1041
1083
1042
    <xsl:template name="nameABCDQ">
1084
    <xsl:template name="nameABCDQ">
1043
- 

Return to bug 5643