Koha/koha-tmpl/opac-tmpl/bootstrap/en/modules/ilsdi.tt
Jonathan Druart dcd1f5d48c Bug 13618: Add html filters to all the variables
Here we go, next step then.
As we did not fix the performance issue when autofiltering
the variables (see bug 20975), the only solution we have is to add the
filters explicitely.

This patch has been autogenerated (using add_html_filters.pl, see next
pathces) and add the html filter to all the variables displayed in the
template.
Exceptions are made (using the new 'raw' TT filter) to the variable we
already listed in the previous versions of this patch.

To test:
- Use t/db_dependent/Koha/Patrons.t to populate your DB with autogenerated
data which contain <script> tags

- Remove them from borrower_debarments.comments (there are allowed here)
update  borrower_debarments set comment="html tags possible here";

- From the interface hit page and try to catch alert box.
If you find one it means you find a possible XSS.
To know where it comes from:
* note the exact URL where you found it
* note the alert box content
* Dump your DB and search for the string in the dump to identify its
location (for instance table.field)

Next:
* Ideally we would like to use the raw filter when it is not necessary
to HTML escape the variables (in big loop for instance)
* Provide a QA script to catch missing filters (we want html, uri, url
or raw, certainly others that I am forgetting now)
* Replace the html filters with uri when needed (!)

Signed-off-by: Owen Leonard <oleonard@myacpl.org>

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
2018-08-17 15:55:05 +00:00

832 lines
44 KiB
Text

[% USE Koha %]
[% INCLUDE 'doc-head-open.inc' %]
<title>[% IF ( LibraryNameTitle ) %][% LibraryNameTitle | html %][% ELSE %]Koha online[% END %] catalog &rsaquo;
[% IF ( GetAvailability ) %]
ILS-DI &rsaquo; GetAvailability
[% ELSIF ( GetRecords ) %]
ILS-DI &rsaquo; GetRecords
[% ELSIF ( GetAuthorityRecords ) %]
ILS-DI &rsaquo; GetAuthorityRecords
[% ELSIF ( LookupPatron ) %]
ILS-DI &rsaquo; LookupPatron
[% ELSIF ( AuthenticatePatron ) %]
ILS-DI &rsaquo; AuthenticatePatron
[% ELSIF ( GetPatronInfo ) %]
ILS-DI &rsaquo; GetPatronInfo
[% ELSIF ( GetPatronStatus ) %]
ILS-DI &rsaquo; GetPatronStatus
[% ELSIF ( GetServices ) %]
ILS-DI &rsaquo; GetServices
[% ELSIF ( RenewLoan ) %]
ILS-DI &rsaquo; RenewLoan
[% ELSIF ( HoldTitle ) %]
ILS-DI &rsaquo; HoldTitle
[% ELSIF ( HoldItem ) %]
ILS-DI &rsaquo; HoldItem
[% ELSIF ( CancelHold ) %]
ILS-DI &rsaquo; CancelHold
[% ELSE %]
ILS-DI
[% END %]</title>
[% INCLUDE 'doc-head-close.inc' %]
[% BLOCK cssinclude %][% END %]
</head>
<body id="opac_ilsdi" class="opac">
[% INCLUDE 'masthead.inc' %]
<div class="main">
<ul class="breadcrumb">
<li><a href="/cgi-bin/koha/opac-main.pl">Home</a> <span class="divider">&rsaquo;</span></li>
[% IF ( GetAvailability ) %]
<li><a href="/cgi-bin/koha/ilsdi.pl">ILS-DI</a> <span class="divider">&rsaquo;</span></li>
<li><a href="#">GetAvailability</a></li>
[% ELSIF ( GetRecords ) %]
<li><a href="/cgi-bin/koha/ilsdi.pl">ILS-DI</a> <span class="divider">&rsaquo;</span></li>
<li><a href="#">GetRecords</a></li>
[% ELSIF ( GetAuthorityRecords ) %]
<li><a href="/cgi-bin/koha/ilsdi.pl">ILS-DI</a> <span class="divider">&rsaquo;</span></li>
<li><a href="#">GetAuthorityRecords</a></li>
[% ELSIF ( LookupPatron ) %]
<li><a href="/cgi-bin/koha/ilsdi.pl">ILS-DI</a> <span class="divider">&rsaquo;</span></li>
<li><a href="#">LookupPatron</a></li>
[% ELSIF ( AuthenticatePatron ) %]
<li><a href="/cgi-bin/koha/ilsdi.pl">ILS-DI</a> <span class="divider">&rsaquo;</span></li>
<li><a href="#">AuthenticatePatron</a></li>
[% ELSIF ( GetPatronInfo ) %]
<li><a href="/cgi-bin/koha/ilsdi.pl">ILS-DI</a> <span class="divider">&rsaquo;</span></li>
<li><a href="#">GetPatronInfo</a></li>
[% ELSIF ( GetPatronStatus ) %]
<li><a href="/cgi-bin/koha/ilsdi.pl">ILS-DI</a> <span class="divider">&rsaquo;</span></li>
<li><a href="#">GetPatronStatus</a></li>
[% ELSIF ( GetServices ) %]
<li><a href="/cgi-bin/koha/ilsdi.pl">ILS-DI</a> <span class="divider">&rsaquo;</span></li>
<li><a href="#">GetServices</a></li>
[% ELSIF ( RenewLoan ) %]
<li><a href="/cgi-bin/koha/ilsdi.pl">ILS-DI</a> <span class="divider">&rsaquo;</span></li>
<li><a href="#">RenewLoan</a></li>
[% ELSIF ( HoldTitle ) %]
<li><a href="/cgi-bin/koha/ilsdi.pl">ILS-DI</a> <span class="divider">&rsaquo;</span></li>
<li><a href="#">HoldTitle</a></li>
[% ELSIF ( HoldItem ) %]
<li><a href="/cgi-bin/koha/ilsdi.pl">ILS-DI</a> <span class="divider">&rsaquo;</span></li>
<li><a href="#">HoldItem</a></li>
[% ELSIF ( CancelHold ) %]
<li><a href="/cgi-bin/koha/ilsdi.pl">ILS-DI</a> <span class="divider">&rsaquo;</span></li>
<li><a href="#">CancelHold</a></li>
[% ELSE %]
<li><a href="#">ILS-DI</a></li>
[% END %]
</ul>
<div class="container-fluid">
<div class="row-fluid">
[% IF ( OpacNav || OpacNavBottom ) %]
<div class="span2">
<div id="navigation">
[% INCLUDE 'navigation.inc' %]
</div>
</div>
<div class="span10">
[% ELSE %]
<div class="span12">
[% END %]
<div id="ilsdi">
<h1>ILS-DI</h1>
[% IF ( GetAvailability ) %]
<h2>GetAvailability</h2>
<p>Given a set of bibliographic or item identifiers, returns a
list with availability of the items associated with the identifiers.</p>
<h4>Parameters</h4>
<dl>
<dt><strong>id</strong> (Required)</dt>
<dd>list of either bibliographic or item identifiers</dd>
<dt><strong>id_type</strong> (Required)</dt>
<dd>defines the type of record identifier being used in the request, possible values:
<ul>
<li>bib</li>
<li>item</li>
</ul>
</dd>
<dt><strong>return_type</strong> (Optional)</dt>
<dd>requests a particular level of detail in reporting availability, possible values:
<ul>
<li>bib</li>
<li>item</li>
</ul>
</dd>
<dt><strong>return_fmt</strong> (Optional)</dt>
<dd>requests a particular format or set of formats in reporting availability</dd>
</dl>
<h4>Example call</h4>
<a href="ilsdi.pl?service=GetAvailability&amp;id=1+2+99999&amp;id_type=item">
ilsdi.pl?service=GetAvailability&amp;id=1+2+99999&amp;id_type=item
</a>
<h4>Example response</h4>
<pre>&lt;?xml version="1.0" encoding="ISO-8859-1" ?&gt;
&lt;dlf:collection
xmlns:dlf="http://diglib.org/ilsdi/1.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://diglib.org/ilsdi/1.1
http://diglib.org/architectures/ilsdi/schemas/1.1/dlfexpanded.xsd"&gt;
&lt;dlf:record&gt;
&lt;dlf:bibliographic id="1" /&gt;
&lt;dlf:items&gt;
&lt;dlf:item id="1"&gt;
&lt;dlf:simpleavailability&gt;
&lt;dlf:identifier&gt;1&lt;/dlf:identifier&gt;
&lt;dlf:availabilitystatus&gt;available&lt;/dlf:availabilitystatus&gt;
&lt;dlf:location&gt;Bibliothèque Jean Prunier&lt;/dlf:location&gt;
&lt;/dlf:simpleavailability&gt;
&lt;/dlf:item&gt;
&lt;/dlf:items&gt;
&lt;/dlf:record&gt;
&lt;dlf:record&gt;
&lt;dlf:bibliographic id="2" /&gt;
&lt;dlf:items&gt;
&lt;dlf:item id="2"&gt;
&lt;dlf:simpleavailability&gt;
&lt;dlf:identifier&gt;2&lt;/dlf:identifier&gt;
&lt;dlf:availabilitystatus&gt;available&lt;/dlf:availabilitystatus&gt;
&lt;dlf:location&gt;Bibliothèque Jean Prunier&lt;/dlf:location&gt;
&lt;/dlf:simpleavailability&gt;
&lt;/dlf:item&gt;
&lt;/dlf:items&gt;
&lt;/dlf:record&gt;
&lt;dlf:record&gt;
&lt;dlf:bibliographic id="99999" /&gt;
&lt;dlf:items&gt;
&lt;dlf:item id="99999"&gt;
&lt;dlf:simpleavailability&gt;
&lt;dlf:identifier&gt;99999&lt;/dlf:identifier&gt;
&lt;dlf:availabilitystatus&gt;unknown&lt;/dlf:availabilitystatus&gt;
&lt;dlf:availabilitymsg&gt;Error: could not retrieve availability for this ID&lt;/dlf:availabilitymsg&gt;
&lt;/dlf:simpleavailability&gt;
&lt;/dlf:item&gt;
&lt;/dlf:items&gt;
&lt;/dlf:record&gt;
&lt;/dlf:collection&gt;</pre>
[% ELSIF ( GetRecords ) %]
<h2>GetRecords</h2>
<p>Given a list of record identifiers, returns a list of record
objects that contain bibliographic information, as well as
associated holdings and item information. The caller may request
a specific metadata schema for the record objects to be returned.
This function behaves similarly to HarvestBibliographicRecords and
HarvestExpandedRecords in Data Aggregation, but allows quick, real
time lookup by bibliographic identifier.</p>
<p>You can use OAI-PMH ListRecords instead of this service.</p>
<h4>Parameters</h4>
<dl>
<dt><strong>id</strong> (Required)</dt>
<dd>list of system record identifiers</dd>
<dt><strong>id_type</strong> (Optional)</dt>
<dd>Defines the metadata schema in which the records are
returned, possible values:
<ul>
<li>MARCXML</li>
</ul>
</dd>
</dl>
<h4>Example Call</h4>
<a href="ilsdi.pl?service=GetRecords&amp;id=1+2+99999">
ilsdi.pl?service=GetRecords&amp;id=1+2+99999
</a>
<h4>Example response</h4>
<pre>&lt;?xml version="1.0" encoding="ISO-8859-1" ?&gt;
&lt;GetRecords&gt;
&lt;record&gt;
&lt;biblioitemnumber&gt;1&lt;/biblioitemnumber&gt;
&lt;isbn&gt;9782862749198&lt;/isbn&gt;
&lt;marcxml&gt;
&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
&lt;record
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/ standards/marcxml/schema/MARC21slim.xsd"
xmlns="http://www.loc.gov/MARC21/slim"&gt;
&lt;leader&gt;00397nac a22001451u 4500&lt;/leader&gt;
&lt;datafield tag="010" ind1=" " ind2=" "&gt;
&lt;subfield code="a"&gt;9782862749198&lt;/subfield&gt;
&lt;/datafield&gt;
&lt;datafield tag="090" ind1=" " ind2=" "&gt;
&lt;subfield code="a"&gt;1&lt;/subfield&gt;
&lt;/datafield&gt;
&lt;datafield tag="101" ind1=" " ind2=" "&gt;
&lt;subfield code="a"&gt;fre&lt;/subfield&gt;
&lt;/datafield&gt;
&lt;datafield tag="100" ind1=" " ind2=" "&gt;
&lt;subfield code="a"&gt;20080725 frey50 &lt;/subfield&gt;
&lt;/datafield&gt;
&lt;datafield tag="200" ind1=" " ind2=" "&gt;
&lt;subfield code="a"&gt;Jardins d'enfance&lt;/subfield&gt;
&lt;subfield code="b"&gt;LITT&lt;/subfield&gt;
&lt;subfield code="f"&gt;Abécassis, Eliette&lt;/subfield&gt;
&lt;/datafield&gt;
&lt;datafield tag="210" ind1=" " ind2=" "&gt;
&lt;subfield code="c"&gt;cherche midi éditeur&lt;/subfield&gt;
&lt;subfield code="d"&gt;11/2001&lt;/subfield&gt;
&lt;/datafield&gt;
&lt;datafield tag="215" ind1=" " ind2=" "&gt;
&lt;subfield code="a"&gt;180&lt;/subfield&gt;
&lt;/datafield&gt;
&lt;datafield tag="225" ind1=" " ind2=" "&gt;
&lt;subfield code="a"&gt;nouvelles&lt;/subfield&gt;
&lt;/datafield&gt;
&lt;datafield tag="995" ind1=" " ind2=" "&gt;
&lt;subfield code="9"&gt;1&lt;/subfield&gt;
&lt;subfield code="c"&gt;BIB&lt;/subfield&gt;
&lt;subfield code="2"&gt;0&lt;/subfield&gt;
&lt;subfield code="k"&gt;R ABE&lt;/subfield&gt;
&lt;subfield code="o"&gt;0&lt;/subfield&gt;
&lt;subfield code="e"&gt;Secteur Adulte&lt;/subfield&gt;
&lt;subfield code="b"&gt;BIB&lt;/subfield&gt;
&lt;subfield code="j"&gt;7786000200&lt;/subfield&gt;
&lt;subfield code="q"&gt;a&lt;/subfield&gt;
&lt;subfield code="r"&gt;2&lt;/subfield&gt;
&lt;subfield code="s"&gt;Achats&lt;/subfield&gt;
&lt;/datafield&gt;
&lt;controlfield tag="001"&gt;1&lt;/controlfield&gt;
&lt;/record&gt;
&lt;/marcxml&gt;
&lt;publicationyear&gt;2001&lt;/publicationyear&gt;
&lt;collectiontitle&gt;nouvelles&lt;/collectiontitle&gt;
&lt;pages&gt;180&lt;/pages&gt;
&lt;issues&gt;
&lt;/issues&gt;
&lt;itemtype&gt;LITT&lt;/itemtype&gt;
&lt;biblionumber&gt;1&lt;/biblionumber&gt;
&lt;timestamp&gt;2008-09-03 18:43:19&lt;/timestamp&gt;
&lt;cn_sort&gt;_&lt;/cn_sort&gt;
&lt;publishercode&gt;cherche midi éditeur&lt;/publishercode&gt;
&lt;reserves&gt;
&lt;/reserves&gt;
&lt;items&gt;
&lt;item&gt;
&lt;biblioitemnumber&gt;1&lt;/biblioitemnumber&gt;
&lt;withdrawn&gt;0&lt;/withdrawn&gt;
&lt;holdingbranchname&gt;Bibliothèque Jean Prunier&lt;/holdingbranchname&gt;
&lt;notforloan&gt;0&lt;/notforloan&gt;
&lt;replacementpricedate&gt;2008-08-20&lt;/replacementpricedate&gt;
&lt;itemnumber&gt;1&lt;/itemnumber&gt;
&lt;location&gt;Secteur Adulte&lt;/location&gt;
&lt;itemcallnumber&gt;R ABE&lt;/itemcallnumber&gt;
&lt;date_due&gt;&lt;/date_due&gt;
&lt;itemlost&gt;0&lt;/itemlost&gt;
&lt;datelastseen&gt;2008-08-20&lt;/datelastseen&gt;
&lt;homebranch&gt;BIB&lt;/homebranch&gt;
&lt;homebranchname&gt;Bibliothèque Jean Prunier&lt;/homebranchname&gt;
&lt;biblionumber&gt;1&lt;/biblionumber&gt;
&lt;holdingbranch&gt;BIB&lt;/holdingbranch&gt;
&lt;timestamp&gt;2008-08-20 17:15:51&lt;/timestamp&gt;
&lt;damaged&gt;0&lt;/damaged&gt;
&lt;cn_sort&gt;R_ABE&lt;/cn_sort&gt;
&lt;dateaccessioned&gt;2008-08-20&lt;/dateaccessioned&gt;
&lt;/item&gt;
&lt;/items&gt;
&lt;/record&gt;
&lt;record&gt;
&lt;biblioitemnumber&gt;2&lt;/biblioitemnumber&gt;
&lt;isbn&gt;9782265078031&lt;/isbn&gt;
&lt;marcxml&gt;
&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
&lt;record
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/ standards/marcxml/schema/MARC21slim.xsd"
xmlns="http://www.loc.gov/MARC21/slim"&gt;
&lt;leader&gt;00407nac a22001451u 4500&lt;/leader&gt;
&lt;datafield tag="010" ind1=" " ind2=" "&gt;
&lt;subfield code="a"&gt;9782265078031&lt;/subfield&gt;
&lt;/datafield&gt;
&lt;datafield tag="090" ind1=" " ind2=" "&gt;
&lt;subfield code="a"&gt;2&lt;/subfield&gt;
&lt;/datafield&gt;
&lt;datafield tag="101" ind1=" " ind2=" "&gt;
&lt;subfield code="a"&gt;fre&lt;/subfield&gt;
&lt;/datafield&gt;
&lt;datafield tag="100" ind1=" " ind2=" "&gt;
&lt;subfield code="a"&gt;20080725 frey50 &lt;/subfield&gt;
&lt;/datafield&gt;
&lt;datafield tag="200" ind1=" " ind2=" "&gt;
&lt;subfield code="a"&gt;(Les) tribulations d'une jeune divorcée&lt;/subfield&gt;
&lt;subfield code="b"&gt;LITT&lt;/subfield&gt;
&lt;subfield code="f"&gt;Abécassis, Eliette&lt;/subfield&gt;
&lt;/datafield&gt;
&lt;datafield tag="210" ind1=" " ind2=" "&gt;
&lt;subfield code="c"&gt;bussière&lt;/subfield&gt;
&lt;subfield code="d"&gt;01/2005&lt;/subfield&gt;
&lt;/datafield&gt;
&lt;datafield tag="215" ind1=" " ind2=" "&gt;
&lt;subfield code="a"&gt;306&lt;/subfield&gt;
&lt;/datafield&gt;
&lt;datafield tag="225" ind1=" " ind2=" "&gt;
&lt;subfield code="a"&gt;fleuve noir&lt;/subfield&gt;
&lt;/datafield&gt;
&lt;datafield tag="995" ind1=" " ind2=" "&gt;
&lt;subfield code="9"&gt;2&lt;/subfield&gt;
&lt;subfield code="c"&gt;BIB&lt;/subfield&gt;
&lt;subfield code="2"&gt;0&lt;/subfield&gt;
&lt;subfield code="k"&gt;R ABE&lt;/subfield&gt;
&lt;subfield code="o"&gt;0&lt;/subfield&gt;
&lt;subfield code="e"&gt;Secteur Adulte&lt;/subfield&gt;
&lt;subfield code="b"&gt;BIB&lt;/subfield&gt;
&lt;subfield code="j"&gt;7786004672&lt;/subfield&gt;
&lt;subfield code="q"&gt;a&lt;/subfield&gt;
&lt;subfield code="s"&gt;Achats&lt;/subfield&gt;
&lt;/datafield&gt;
&lt;controlfield tag="001"&gt;2&lt;/controlfield&gt;
&lt;/record&gt;
&lt;/marcxml&gt;
&lt;publicationyear&gt;2005&lt;/publicationyear&gt;
&lt;collectiontitle&gt;fleuve noir&lt;/collectiontitle&gt;
&lt;pages&gt;306&lt;/pages&gt;
&lt;issues&gt;
&lt;/issues&gt;
&lt;itemtype&gt;LITT&lt;/itemtype&gt;
&lt;biblionumber&gt;2&lt;/biblionumber&gt;
&lt;timestamp&gt;2008-09-03 18:43:19&lt;/timestamp&gt;
&lt;cn_sort&gt;_&lt;/cn_sort&gt;
&lt;publishercode&gt;bussière&lt;/publishercode&gt;
&lt;reserves&gt;
&lt;/reserves&gt;
&lt;items&gt;
&lt;item&gt;
&lt;biblioitemnumber&gt;2&lt;/biblioitemnumber&gt;
&lt;withdrawn&gt;0&lt;/withdrawn&gt;
&lt;holdingbranchname&gt;Bibliothèque Jean Prunier&lt;/holdingbranchname&gt;
&lt;notforloan&gt;0&lt;/notforloan&gt;
&lt;replacementpricedate&gt;2008-08-20&lt;/replacementpricedate&gt;
&lt;itemnumber&gt;2&lt;/itemnumber&gt;
&lt;location&gt;Secteur Adulte&lt;/location&gt;
&lt;itemcallnumber&gt;R ABE&lt;/itemcallnumber&gt;
&lt;date_due&gt;&lt;/date_due&gt;
&lt;itemlost&gt;0&lt;/itemlost&gt;
&lt;datelastseen&gt;2008-08-20&lt;/datelastseen&gt;
&lt;homebranch&gt;BIB&lt;/homebranch&gt;
&lt;homebranchname&gt;Bibliothèque Jean Prunier&lt;/homebranchname&gt;
&lt;biblionumber&gt;2&lt;/biblionumber&gt;
&lt;holdingbranch&gt;BIB&lt;/holdingbranch&gt;
&lt;timestamp&gt;2008-08-20 17:15:51&lt;/timestamp&gt;
&lt;damaged&gt;0&lt;/damaged&gt;
&lt;cn_sort&gt;R_ABE&lt;/cn_sort&gt;
&lt;dateaccessioned&gt;2008-08-20&lt;/dateaccessioned&gt;
&lt;/item&gt;
&lt;/items&gt;
&lt;/record&gt;
&lt;record&gt;RecordNotFound&lt;/record&gt;
&lt;/GetRecords&gt;</pre>
[% ELSIF ( GetAuthorityRecords ) %]
<h2>GetAuthorityRecords</h2>
<p>Given a list of authority record identifiers, returns a list
of record objects that contain the authority records. The function
user may request a specific metadata schema for the record objects.</p>
<h4>Parameters</h4>
<dl>
<dt><strong>id</strong> (Required)</dt>
<dd>list of authority record identifiers</dd>
<dt><strong>schema</strong> (Optional)</dt>
<dd>specifies the metadata schema of records to be returned, possible values:
<ul>
<li>MARCXML</li>
</ul>
</dd>
</dl>
<h4>Example call</h4>
<a href="ilsdi.pl?service=GetAuthorityRecords&amp;id=1+2+99999">
ilsdi.pl?service=GetAuthorityRecords&amp;id=1+2+99999
</a>
<h4>Example response</h4>
<pre>&lt;xml version="1.0" encoding="UTF-8"&gt;;
&lt;GetAuthorityRecords&gt;
&lt;record&gt;
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;record
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/ standards/marcxml/schema/MARC21slim.xsd"
xmlns="http://www.loc.gov/MARC21/slim"&gt;
&lt;leader&gt;00182 2200085 4500&lt;/leader&gt;
&lt;controlfield tag="001"&gt;1&lt;/controlfield&gt;
&lt;datafield tag="200" ind1=" " ind2=" "&gt;
&lt;subfield code="a"&gt;Hugo&lt;/subfield&gt;
&lt;subfield code="b"&gt;Victor&lt;/subfield&gt;
&lt;/datafield&gt;
&lt;datafield tag="801" ind1=" " ind2=" "&gt;
&lt;subfield code="a"&gt;France&lt;/subfield&gt;
&lt;subfield code="b"&gt;Nimes&lt;/subfield&gt;
&lt;subfield code="c"&gt;2010/04/13&lt;/subfield&gt;
&lt;/datafield&gt;
&lt;datafield tag="100" ind1=" " ind2=" "&gt;
&lt;subfield code="a"&gt;20100413 50 &lt;/subfield&gt;
&lt;/datafield&gt;
&lt;datafield tag="152" ind1=" " ind2=" "&gt;
&lt;subfield code="b"&gt;NP&lt;/subfield&gt;
&lt;/datafield&gt;
&lt;/record&gt;
&lt;/record&gt;
&lt;record&gt;
&lt;code&gt;RecordNotFound&lt;/code&gt;
&lt;/record&gt;
&lt;record&gt;
&lt;code&gt;RecordNotFound&lt;/code&gt;
&lt;/record&gt;
&lt;/GetAuthorityRecords&gt;</pre>
[% ELSIF ( LookupPatron ) %]
<h2>LookupPatron</h2>
<p>Looks up a patron in the ILS by an identifier, and returns
the ILS identifier for that patron, aka the patron identifier.</p>
<h4>Parameters</h4>
<dl>
<dt><strong>id</strong> (Required)</dt>
<dd>an identifier used to look up the patron in Koha</dd>
<dt><strong>id_type</strong> (Optional)</dt>
<dd>the type of the identifier, possible values:
<ul>
<li>cardnumber</li>
<li>userid</li>
<li>email</li>
<li>borrowernumber</li>
<li>surname</li>
<li>firstname</li>
</ul>
</dd>
</dl>
<h4>Example call</h4>
<a href="ilsdi.pl?service=LookupPatron&amp;id=815&amp;id_type=cardnumber">
ilsdi.pl?service=LookupPatron&amp;id=815&amp;id_type=cardnumber
</a>
<h4>Example response</h4>
<pre>&lt;?xml version="1.0" encoding="ISO-8859-1" ?&gt;
&lt;LookupPatron&gt;
&lt;id&gt;419&lt;/id&gt;
&lt;/LookupPatron&gt;</pre>
[% ELSIF ( AuthenticatePatron ) %]
<h2>AuthenticatePatron</h2>
<p>Authenticates a user's login credentials and returns the identifier for the patron.</p>
<h4>Parameters</h4>
<dl>
<dt><strong>username</strong> (Required)</dt>
<dd>user's login identifier</dd>
<dt><strong>password</strong> (Required)</dt>
<dd>user's password</dd>
</dl>
<h4>Example call</h4>
<a href="ilsdi.pl?service=AuthenticatePatron&amp;username=john9&amp;password=soul">
ilsdi.pl?service=AuthenticatePatron&amp;username=john9&amp;password=soul
</a>
<h4>Example Response</h4>
<pre>&lt;?xml version="1.0" encoding="ISO-8859-1" ?&gt;
&lt;AuthenticatePatron&gt;
&lt;id&gt;419&lt;/id&gt;
&lt;/AuthenticatePatron&gt;</pre>
[% ELSIF ( GetPatronInfo ) %]
<h2>GetPatronInfo</h2>
<p>Returns specified information about the patron, based on
options in the request. This function can optionally return
patron's contact information, fine information, hold request
information, loan information, and messages.</p>
<h4>Parameters</h4>
<dl>
<dt><strong>patron_id</strong> (Required)</dt>
<dd>the unique patron identifier in the ILS; the same identifier returned by LookupPatron or AuthenticatePatron</dd>
<dt><strong>show_contact</strong> (Optional, default 1)</dt>
<dd>whether or not to return patron's contact information in the response</dd>
<dt><strong>show_fines</strong> (Optional, default 0)</dt>
<dd>whether or not to return fine information in the response</dd>
<dt><strong>show_holds</strong> (Optional, default 0)</dt>
<dd>whether or not to return hold request information in the response</dd>
<dt><strong>show_loans</strong> (Optional, default 0)</dt>
<dd>whether or not to return loan information in the response</dd>
<dt><strong>show_attributes</strong> (Optional, default 0)</dt>
<dd>whether or not to return extended patron attributes information in the response</dd>
</dl>
<h4>Example call</h4>
<a href="ilsdi.pl?service=GetPatronInfo&amp;patron_id=1&amp;show_contact=0&amp;show_loans=1">
ilsdi.pl?service=GetPatronInfo&amp;patron_id=1&amp;show_contact=0&amp;show_loans=1
</a>
<h4>Example response</h4>
<pre>&lt;?xml version="1.0" encoding="ISO-8859-1" ?&gt;
&lt;GetPatronInfo&gt;
&lt;category_type&gt;A&lt;/category_type&gt;
&lt;categorycode&gt;ADUEXT&lt;/categorycode&gt;
&lt;borrowernumber&gt;419&lt;/borrowernumber&gt;
&lt;lost&gt;0&lt;/lost&gt;
&lt;branchcode&gt;BIB&lt;/branchcode&gt;
&lt;amountoutstanding&gt;6&lt;/amountoutstanding&gt;
&lt;description&gt;Adulte extérieur&lt;/description&gt;
&lt;title&gt;M&lt;/title&gt;
&lt;enrolmentperiod&gt;12&lt;/enrolmentperiod&gt;
&lt;charges&gt;6.00&lt;/charges&gt;
&lt;dateenrolled&gt;2009-03-04&lt;/dateenrolled&gt;
&lt;borrowernotes&gt;&lt;/borrowernotes&gt;
&lt;dateexpiry&gt;2010-03-04&lt;/dateexpiry&gt;
&lt;firstname&gt;Jean-André&lt;/firstname&gt;
&lt;gonenoaddress&gt;0&lt;/gonenoaddress&gt;
&lt;dateofbirth&gt;1984-06-08&lt;/dateofbirth&gt;
&lt;debarred&gt;0&lt;/debarred&gt;
&lt;branchname&gt;Bibliothèque Jean Prunier&lt;/branchname&gt;
&lt;surname&gt;SANTONI&lt;/surname&gt;
&lt;cardnumber&gt;815&lt;/cardnumber&gt;
&lt;initials&gt;JAS&lt;/initials&gt;
&lt;sort1&gt;CSP5&lt;/sort1&gt;
&lt;sex&gt;M&lt;/sex&gt;
&lt;loans&gt;
&lt;loan&gt;
&lt;lastreneweddate&gt;2009-04-03&lt;/lastreneweddate&gt;
&lt;isbn&gt;2253003689&lt;/isbn&gt;
&lt;borrowernumber&gt;419&lt;/borrowernumber&gt;
&lt;branchcode&gt;BIB&lt;/branchcode&gt;
&lt;itemnumber&gt;4454&lt;/itemnumber&gt;
&lt;date_due&gt;2009-05-06&lt;/date_due&gt;
&lt;barcode&gt;4765476&lt;/barcode&gt;
&lt;datelastseen&gt;2008-08-23&lt;/datelastseen&gt;
&lt;issuedate&gt;2008-08-23&lt;/issuedate&gt;
&lt;title&gt;L'Île au trésor&lt;/title&gt;
&lt;itemtype&gt;LITT&lt;/itemtype&gt;
&lt;author&gt;Robert Louis Stevenson&lt;/author&gt;
&lt;timestamp&gt;2009-04-03 14:46:10&lt;/timestamp&gt;
&lt;publishercode&gt;Librairie générale française&lt;/publishercode&gt;
&lt;datecreated&gt;2008-08-23&lt;/datecreated&gt;
&lt;totalrenewals&gt;11&lt;/totalrenewals&gt;
&lt;dateaccessioned&gt;2008-08-23&lt;/dateaccessioned&gt;
&lt;onloan&gt;2008-09-17&lt;/onloan&gt;
&lt;biblioitemnumber&gt;4483&lt;/biblioitemnumber&gt;
&lt;withdrawn&gt;0&lt;/withdrawn&gt;
&lt;notforloan&gt;0&lt;/notforloan&gt;
&lt;replacementpricedate&gt;2008-08-23&lt;/replacementpricedate&gt;
&lt;itemcallnumber&gt;RO STE&lt;/itemcallnumber&gt;
&lt;location&gt;Salle de lecture&lt;/location&gt;
&lt;itemlost&gt;0&lt;/itemlost&gt;
&lt;publicationyear&gt;1985&lt;/publicationyear&gt;
&lt;issues&gt;1&lt;/issues&gt;
&lt;homebranch&gt;BIB&lt;/homebranch&gt;
&lt;holdingbranch&gt;BIB&lt;/holdingbranch&gt;
&lt;biblionumber&gt;4483&lt;/biblionumber&gt;
&lt;renewals&gt;3&lt;/renewals&gt;
&lt;damaged&gt;0&lt;/damaged&gt;
&lt;cn_sort&gt;RO_STE&lt;/cn_sort&gt;
&lt;frameworkcode&gt;&lt;/frameworkcode&gt;
&lt;datelastborrowed&gt;2008-08-23&lt;/datelastborrowed&gt;
&lt;/loan&gt;
&lt;loan&gt;
&lt;lastreneweddate&gt;2009-03-17&lt;/lastreneweddate&gt;
&lt;isbn&gt;9782700017823&lt;/isbn&gt;
&lt;borrowernumber&gt;419&lt;/borrowernumber&gt;
&lt;branchcode&gt;BIB&lt;/branchcode&gt;
&lt;itemnumber&gt;4456&lt;/itemnumber&gt;
&lt;date_due&gt;2009-04-18&lt;/date_due&gt;
&lt;barcode&gt;2700017UUU&lt;/barcode&gt;
&lt;datelastseen&gt;2008-08-23&lt;/datelastseen&gt;
&lt;issuedate&gt;2008-08-23&lt;/issuedate&gt;
&lt;title&gt;La guitare en 10 leçons&lt;/title&gt;
&lt;itemtype&gt;LITT&lt;/itemtype&gt;
&lt;author&gt;Jon Buck&lt;/author&gt;
&lt;timestamp&gt;2009-03-17 16:48:14&lt;/timestamp&gt;
&lt;publishercode&gt;Gründ&lt;/publishercode&gt;
&lt;datecreated&gt;2008-08-23&lt;/datecreated&gt;
&lt;totalrenewals&gt;6&lt;/totalrenewals&gt;
&lt;dateaccessioned&gt;2008-08-23&lt;/dateaccessioned&gt;
&lt;notes&gt;La couv. porte en plus : "un guide simple et facile pour apprendre la guitare" | Glossaire. Index&lt;/notes&gt;
&lt;onloan&gt;2008-09-25&lt;/onloan&gt;
&lt;biblioitemnumber&gt;4486&lt;/biblioitemnumber&gt;
&lt;withdrawn&gt;0&lt;/withdrawn&gt;
&lt;notforloan&gt;0&lt;/notforloan&gt;
&lt;replacementpricedate&gt;2008-08-23&lt;/replacementpricedate&gt;
&lt;itemcallnumber&gt;787.87 BUC&lt;/itemcallnumber&gt;
&lt;location&gt;Salle de lecture&lt;/location&gt;
&lt;itemlost&gt;0&lt;/itemlost&gt;
&lt;publicationyear&gt;2007&lt;/publicationyear&gt;
&lt;issues&gt;1&lt;/issues&gt;
&lt;homebranch&gt;BIB&lt;/homebranch&gt;
&lt;holdingbranch&gt;BIB&lt;/holdingbranch&gt;
&lt;biblionumber&gt;4486&lt;/biblionumber&gt;
&lt;renewals&gt;3&lt;/renewals&gt;
&lt;damaged&gt;0&lt;/damaged&gt;
&lt;cn_sort&gt;78787_BUC&lt;/cn_sort&gt;
&lt;volume&gt;une méthode simple et facile pour apprendre la guitare&lt;/volume&gt;
&lt;frameworkcode&gt;&lt;/frameworkcode&gt;
&lt;datelastborrowed&gt;2008-08-23&lt;/datelastborrowed&gt;
&lt;/loan&gt;
&lt;/loans&gt;
&lt;/GetPatronInfo&gt;</pre>
[% ELSIF ( GetPatronStatus ) %]
<h2>GetPatronStatus</h2>
<p>Returns a patron's status information from Koha.</p>
<h4>Parameters</h4>
<dl>
<dt><strong>patron_id</strong> (Required)</dt>
<dd>the unique patron identifier in the ILS; the same identifier returned by LookupPatron or AuthenticatePatron</dd>
</dl>
<h4>Example call</h4>
<a href="ilsdi.pl?service=GetPatronStatus&amp;patron_id=1">
ilsdi.pl?service=GetPatronStatus&amp;patron_id=1
</a>
<h4>Example Response</h4>
<pre>&lt;?xml version="1.0" encoding="ISO-8859-1" ?&gt;
&lt;GetPatronStatus&gt;
&lt;expiry&gt;2010-03-04&lt;/expiry&gt;
&lt;status&gt;0&lt;/status&gt;
&lt;type&gt;ADUEXT&lt;/type&gt;
&lt;/GetPatronStatus&gt;</pre>
[% ELSIF ( GetServices ) %]
<h2>GetServices</h2>
<p>Returns information about the services available on a particular item for a particular patron.</p>
<h4>Parameters</h4>
<dl>
<dt><strong>patron_id</strong> (Required)</dt>
<dd>the unique patron identifier in the ILS; the same identifier returned by LookupPatron or AuthenticatePatron</dd>
<dt><strong>item_id</strong> (Required)</dt>
<dd>system item identifier</dd>
</dl>
<h4>Example call</h4>
<a href="ilsdi.pl?service=GetServices&amp;patron_id=1&amp;item_id=1">
ilsdi.pl?service=GetServices&amp;patron_id=1&amp;item_id=1
</a>
<h4>Example response</h4>
<pre>&lt;?xml version="1.0" encoding="ISO-8859-1" ?&gt;
&lt;GetServices&gt;
&lt;AvailableFor&gt;title level hold&lt;/AvailableFor&gt;
&lt;AvailableFor&gt;item level hold&lt;/AvailableFor&gt;
&lt;/GetServices&gt;</pre>
[% ELSIF ( RenewLoan ) %]
<h2>RenewLoan</h2>
<p>Extends the due date for a patron's existing loan.</p>
<h4>Parameters</h4>
<dl>
<dt><strong>patron_id</strong> (Required)</dt>
<dd>the unique patron identifier in the ILS; the same identifier returned by LookupPatron or AuthenticatePatron</dd>
<dt><strong>item_id</strong> (Required)</dt>
<dd>system item identifier</dd>
<dt><strong>desired_due_date</strong> (Required)</dt>
<dd>the date the patron would like the item returned by</dd>
</dl>
<h4>Example call</h4>
<a href="ilsdi.pl?service=RenewLoan&amp;patron_id=1&amp;item_id=1">
ilsdi.pl?service=RenewLoan&amp;patron_id=1&amp;item_id=1
</a>
<h4>Example response</h4>
<pre>&lt;?xml version="1.0" encoding="ISO-8859-1" ?&gt;
&lt;RenewLoan&gt;
&lt;success&gt;0&lt;/success&gt;
&lt;renewals&gt;5&lt;/renewals&gt;
&lt;date_due&gt;2009-05-11&lt;/date_due&gt;
&lt;/RenewLoan&gt;</pre>
[% ELSIF ( HoldTitle ) %]
<h2>HoldTitle</h2>
<p>Creates, for a patron, a title-level hold request on a given bibliographic record in Koha.</p>
<h4>Parameters</h4>
<dl>
<dt><strong>patron_id</strong> (Required)</dt>
<dd>the ILS identifier for the patron for whom the request is placed</dd>
<dt><strong>bib_id</strong> (Required)</dt>
<dd>the ILS identifier for the bibliographic record on which the request is placed</dd>
<dt><strong>request_location</strong> (Required)</dt>
<dd>IP address where the end user request is being placed</dd>
<dt><strong>pickup_location</strong> (Optional)</dt>
<dd>an identifier indicating the location to which to deliver the item for pickup</dd>
<dt><strong>needed_before_date</strong> (Optional)</dt>
<dd>date after which hold request is no longer needed</dd>
<dt><strong>pickup_expiry_date</strong> (Optional)</dt>
<dd>date after which item returned to shelf if item is not picked up</dd>
</dl>
<h4>Example Call</h4>
<a href="ilsdi.pl?service=HoldTitle&amp;patron_id=1&amp;bib_id=1&amp;request_location=127.0.0.1">
ilsdi.pl?service=HoldTitle&amp;patron_id=1&amp;bib_id=1&amp;request_location=127.0.0.1
</a>
<h4>Example response</h4>
<pre>&lt;?xml version="1.0" encoding="ISO-8859-1" ?&gt;
&lt;HoldTitle&gt;
&lt;title&gt;(les) galères de l'Orfèvre&lt;/title&gt;
&lt;date_available&gt;2009-05-11&lt;/date_available&gt;
&lt;pickup_location&gt;Bibliothèque Jean-Prunier&lt;/pickup_location&gt;
&lt;/HoldTitle&gt;</pre>
[% ELSIF ( HoldItem ) %]
<h2>HoldItem</h2>
<p>Creates, for a patron, an item-level hold request on a specific item of a bibliographic record Koha.</p>
<h4>Parameters</h4>
<dl>
<dt><strong>patron_id</strong> (Required)</dt>
<dd>the ILS identifier for the patron for whom the request is placed</dd>
<dt><strong>bib_id</strong> (Required)</dt>
<dd>the ILS identifier for the bibliographic record on which the request is placed</dd>
<dt><strong>item_id</strong> (Required)</dt>
<dd>the ILS identifier for the specific item on which the request is placed</dd>
<dt><strong>pickup_location</strong> (Optional)</dt>
<dd>an identifier indicating the location to which to deliver the item for pickup</dd>
<dt><strong>needed_before_date</strong> (Optional)</dt>
<dd>date after which hold request is no longer needed</dd>
<dt><strong>pickup_expiry_date</strong> (Optional)</dt>
<dd>date after which item returned to shelf if item is not picked up</dd>
</dl>
<h4>Example Call</h4>
<a href="ilsdi.pl?service=HoldItem&amp;patron_id=1&amp;bib_id=1&amp;item_id=1">
ilsdi.pl?service=HoldItem&amp;patron_id=1&amp;bib_id=1&amp;item_id=1
</a>
<h4>Example response</h4>
<pre>&lt;?xml version="1.0" encoding="ISO-8859-1" ?&gt;
&lt;HoldTitle&gt;
&lt;title&gt;(les) galères de l'Orfèvre&lt;/title&gt;
&lt;date_available&gt;2009-05-11&lt;/date_available&gt;
&lt;pickup_location&gt;Bibliothèque Jean-Prunier&lt;/pickup_location&gt;
&lt;/HoldTitle&gt;</pre>
[% ELSIF ( CancelHold ) %]
<h2>CancelHold</h2>
<p>Cancels an active hold request for the patron.</p>
<h4>Parameters</h4>
<dl>
<dt><strong>patron_id</strong> (Required)</dt>
<dd>the unique patron identifier in the ILS; the same identifier returned by LookupPatron or AuthenticatePatron</dd>
<dt><strong>item_id</strong> (Required)</dt>
<dd>system hold identifier (returned by GetRecords and GetPatronInfo into element 'reserve_id')</dd>
</dl>
<h4>Example call</h4>
<a href="ilsdi.pl?service=CancelHold&amp;patron_id=1&amp;item_id=1">
ilsdi.pl?service=CancelHold&amp;patron_id=1&amp;item_id=1
</a>
<h4>Example response</h4>
<pre>&lt;?xml version="1.0" encoding="ISO-8859-1" ?&gt;
&lt;CancelHold&gt;
&lt;message&gt;Canceled&lt;/message&gt;
&lt;/CancelHold&gt;</pre>
[% ELSE %]
<h2>Level 1: Basic discovery interfaces</h2>
<ul>
<li>HarvestBibliographicRecords <em>(Use OAI-PMH instead)</em></li>
<li>HarvestExpandedRecords <em>(Use OAI-PMH instead)</em></li>
<li><a href="ilsdi.pl?service=Describe&amp;verb=GetAvailability">GetAvailability</a></li>
<li>GoToBibliographicRequestPage <em>(Use OPAC instead)</em></li>
</ul>
<h2>Level 2: Elementary OPAC supplement</h2>
<ul>
<li>HarvestAuthorityRecords <em>(Use OAI-PMH instead)</em></li>
<li>HarvestHoldingsRecords <em>(Use OAI-PMH instead)</em></li>
<li><a href="ilsdi.pl?service=Describe&amp;verb=GetRecords">GetRecords</a></li>
<li>Search <em>(Use SRU instead)</em></li>
<li>Scan <em>(Use SRU instead)</em></li>
<li><a href="ilsdi.pl?service=Describe&amp;verb=GetAuthorityRecords">GetAuthorityRecords</a></li>
<li>OutputRewritablePage <em>(Not supported yet)</em></li>
<li>OutputIntermediateFormat <em>(Not supported yet)</em></li>
</ul>
<h2>Level 3: Elementary OPAC alternative</h2>
<ul>
<li><a href="ilsdi.pl?service=Describe&amp;verb=LookupPatron">LookupPatron</a></li>
<li><a href="ilsdi.pl?service=Describe&amp;verb=AuthenticatePatron">AuthenticatePatron</a></li>
<li><a href="ilsdi.pl?service=Describe&amp;verb=GetPatronInfo">GetPatronInfo</a></li>
<li><a href="ilsdi.pl?service=Describe&amp;verb=GetPatronStatus">GetPatronStatus</a></li>
<li><a href="ilsdi.pl?service=Describe&amp;verb=GetServices">GetServices</a></li>
<li><a href="ilsdi.pl?service=Describe&amp;verb=RenewLoan">RenewLoan</a></li>
<li><a href="ilsdi.pl?service=Describe&amp;verb=HoldTitle">HoldTitle</a></li>
<li><a href="ilsdi.pl?service=Describe&amp;verb=HoldItem">HoldItem</a></li>
<li><a href="ilsdi.pl?service=Describe&amp;verb=CancelHold">CancelHold</a></li>
<li>RecallItem <em>(Not supported by Koha)</em></li>
<li>CancelRecall <em>(Not supported by Koha)</em></li>
</ul>
<h2>Level 4: Robust/domain specific discovery platforms</h2>
<ul>
<li>SearchCourseReserves <em>(Not supported yet)</em></li>
<li>Explain <em>(Not supported yet)</em></li>
</ul>
[% END # / IF GetAvailability %]
</div> <!-- / #ilsdi -->
</div> <!-- / .span10 -->
</div> <!-- / .row-fluid -->
</div> <!-- / .container-fluid -->
</div> <!-- / .main -->
[% INCLUDE 'opac-bottom.inc' %]
[% BLOCK jsinclude %][% END %]