Koha

Umstieg von LITTERA zu Koha – Teil 3

Im ersten und im zweiten Teil dieser kleinen Serie habe ich bereits berichtet, wie wir an unserer Schule von LITTERA zu Koha umgestiegen sind. Heute möchte ich kurz zeigen, wie wir Antolin in Koha integriert haben, sodass man bei der Suche im OPAC oder Intranet sofort erkennt, wenn ein Buch bei Antolin verfügbar ist.

So soll es am Ende aussehen:

Antolin-Daten hinzufügen

Zuerst muss Koha wissen, welches Buch bei Antolin verfügbar ist und welches nicht. Dazu habe ich mir die Antolin-Datenbank bei Antolin heruntergeladen und dann, nachdem ich alle Bücher aus Koha als MARC-Datei exportiert habe, mit einem Skript mit den entsprechenden Daten angereichert. Hierzu habe ich wieder pymarc verwendet. So sieht das ganze dann aus:

record.add_field(
  Field(
    tag = '856',
    indicators = ['4','2'],
    subfields = [
      'n', 'Antolin',
      'u', antolin[titles[recordID]["ISBN"]]["url"],
      'w', antolin[titles[recordID]["ISBN"]]["bookId"],
      'y', antolin[titles[recordID]["ISBN"]]["title"],
      'z', antolin[titles[recordID]["ISBN"]]["grade"]
]))

Die Daten habe ich also in Feld 856 hinzugefügt. Die Antolindaten habe ich vorher aus der CSV ausgelesen und in ein Array bzw. Dict gespeichert.

Templates anpassen

Der nächste Schritt ist, dass Koha (Opac und Intranet) wissen muss, wie es diese Daten anzeigen soll. Koha verwendet für den Opac und das Intranet XSLT-Templates. Diese kann man bearbeiten und an seine Bedürfnisse anpassen. Ich habe eine Abfrage eingefügt, welche prüft, ob das Feld 856 vorhanden ist, und dann entsprechend den Antolin-Raben zeigt sowie einen Link zum Quiz.

<xsl:if test="$DisplayOPACiconsXSLT!='0'">
 <span class="results_summary type">
 <xsl:if test="$typeOf008!=''">
   <span class="results_material_type">
     <span class="label">Materialtyp: </span>
     <xsl:choose>
       <xsl:when test="$leader19='a'"><img src="/opac-tmpl/lib/famfamfam/silk/book_link.png" alt="book" title="book" class="materialtype"/> Gesamtaufnahme</xsl:when>
       <xsl:when test="$leader6='a'">
         <xsl:choose>
           <xsl:when test="$leader7='c' or $leader7='d' or $leader7='m'"><img src="/opac-tmpl/lib/famfamfam/silk/book.png" alt="book" title="book" class="materialtype"/>
           
           <!-- Add Antonlin image -->
           <xsl:if test="marc:datafield[@tag=856]">
             <xsl:element name="img"><xsl:attribute name="src">/images/Antolin16.png</xsl:attribute><xsl:attribute name="alt">Antolin</xsl:attribute><xsl:attribute name="class">Materialtyp</xsl:attribute></xsl:element>
           </xsl:if>
            Buch</xsl:when>
           <xsl:when test="$leader7='i' or $leader7='s'"><img alt="Zeitschrift" title="Zeitschrift" class="materialtype" src="/opac-tmpl/lib/famfamfam/silk/newspaper.png" /> Periodikum</xsl:when>
           <xsl:when test="$leader7='a' or $leader7='b'"><img src="/opac-tmpl/lib/famfamfam/silk/book_open.png" alt="article" title="article" class="materialtype"/> Aufsatz</xsl:when>
         </xsl:choose>
       </xsl:when>
       <xsl:when test="$leader6='t'"><img src="/opac-tmpl/lib/famfamfam/silk/book.png" alt="book" title="book" class="materialtype"/> Buch</xsl:when>
       <xsl:when test="$leader6='o'"><img src="/opac-tmpl/lib/famfamfam/silk/report_disk.png" alt="Medienkombination" title="Medienkombination" class="materialtype" /> Kit</xsl:when>
       <xsl:when test="$leader6='p'"><img src="/opac-tmpl/lib/famfamfam/silk/report_disk.png" alt="Medienkombination" class="materialtype" title="Medienkombination" />Medienkombination</xsl:when>
       <xsl:when test="$leader6='m'"><img title="Computerdatei" class="materialtype" alt="Computerdatei" src="/opac-tmpl/lib/famfamfam/silk/computer_link.png" /> Computerdatei</xsl:when>
       <xsl:when test="$leader6='e' or $leader6='f'"><img alt="Karte" title="Karte" class="materialtype" src="/opac-tmpl/lib/famfamfam/silk/map.png" /> Karte</xsl:when>
       <xsl:when test="$leader6='g' or $leader6='k' or $leader6='r'"><img src="/opac-tmpl/lib/famfamfam/silk/film.png" alt="Visuelles Material" title="Visuelles Material" class="materialtype" /> Visuelles Material</xsl:when>
       <xsl:when test="$leader6='c' or $leader6='d'"><img src="/opac-tmpl/lib/famfamfam/silk/music.png" alt="Partitur" class="materialtype" title="Partitur" /> Noten</xsl:when>
       <xsl:when test="$leader6='i'"><img class="materialtype" title="Ton" alt="Ton" src="/opac-tmpl/lib/famfamfam/silk/sound.png" /> Ton</xsl:when>
       <xsl:when test="$leader6='j'"><img src="/opac-tmpl/lib/famfamfam/silk/sound.png" class="materialtype" title="Musik" alt="Musik" /> Musik</xsl:when>
     </xsl:choose>
   </span>
 </xsl:if>

Das gleiche muss man dann noch einmal für die Detailansicht machen. Die XSLT Dateien befinden sich unter /usr/share/koha/intranet/htdocs/intranet-tmpl/prog/{langcode}/xslt/MARC21slim2intranetResults.xsl. {langcode} ist z.B. „en“ oder „de-DE“.

Es empfiehlt sich eine Kopie des Standard-Templates zu machen und dieses dann anzupassen. Dazu muss der Pfad in den Systemparametern unter XSLTResultsDisplay noch geändert werden.

Fazit

Bisher lief der Umzug ohne große Probleme ab. Der Schulbetrieb läuft seit einigen Wochen wieder und bisher gab es keine Beschwerden 🙂 Eine Sache haben wir noch nicht eingerichtet, welche aber noch dringend gemacht werden muss: Benachrichtigungen und Mahn- bzw. Erinnerungsnachrichten. Wenn wir das fertig eingerichtet haben, werde ich davon in einem 4. Teil berichten.

9 Comments:

  1. Dietmar

    Hallo Zefanias,
    ich freue mich über eure Aktivitäten Koha in die Schule zu bringen. Bisher habe ich mir noch kein Bild davon machen können, ob ich Koha mit Antolin(-schnittstelle) wirklich so komfortabel einsetzen kann, wie es die Umsetzung z.B. bei https://katalog.dornbirn.at/cgi-bin/koha/opac-antolin.pl suggeriert. Was ist eigentlich bei einer Standardkonfiguration von Koha noch alles zu erstellen? Sind wirklich gute Ausweisvorlagen und Etiketten vorhanden? Wie haltet ihr die Schülerdaten aktuell? Werden sie mit der Schulverwaltungssoftware abgeglichen? Sind die Vorschaubilder auf die Einbände auch bei euch eingebunden? Alles Fragen, die ich nicht schnell beantworten konnten. Wir wollen unsere kleine Grundschulbibliothek möglichst schnell und auf die Bedürfnisse der Schüler eingestellt einrichten können. Vor der Installation habe ich wenig Angst. Doch die Arbeit an Templates etc. bereitet mir Sorgen.
    Grüße Dietmar

  2. zefanja

    Hallo Dietmar,

    Koha ist sehr flexibel und hat viele Features. Man muss nicht alle nutzen, aber es erfordert schon einiges an Zeit, um sich mit Themen wie z.B. Marc21 auseinanderzusetzen.

    Ich möchte dir kurz auf deine Fragen antworten:
    Ausweisvorlagen und Etiketten müssen selbst erstellt. Es gibt ein paar wenige Templates. Wir haben keine Ausweise für unsere Bib, aber wir drucken unsere Etiketten mit Koha. Das geht recht einfach. Die Vorschaubilder kommen per Plugin von Amazon. Die verlinkte Antolinseite ist Eigenentwicklung von http://adminkuhn.ch/ soweit ich weiß. Die Schülerdaten halten wir mit einer Tabelle bzw. einem kleinen Skript aktuell, welches wir 1 oder 2 mal / pro Schuljahr laufen lassen und dann in Koha importieren.

    vG

  3. Milena Singer

    Hallo ich Konfiguriere gerade Koha und wollte fragen wie man genau auf die XSLT-Datei zugreifen kann um diese zu verändern?

  4. zefanja

    Du findest die Dateien auf dem Server an folgender Stelle: /usr/share/koha/intranet/htdocs/intranet-tmpl/prog/{langcode}/xslt/ Du kannst sie z.B. mit „nano“ bearbeiten oder einem beliebigen anderen Texteditor.

  5. Mark

    Ich bin gerade dabei Koha für unsere Schule aufzusetzen. Die Integration von Antolin ist für mich leider nicht verständlich. Ist eine ausführliche Anleitung möglich?

  6. zefanja

    @Mark: Für die Integration von Antolin habe ich ein Skript geschrieben, welches dies CSV Daten von Antolin mit den ISBNs in Koha vergleicht und dann die entsprechenden Einträge vornimmt. Dafür habe ich pymarc genutzt und danach den geänderten Katalog wieder in Koha importiert. Geht sicher auch einfacher, evtl. über die REST-API.

  7. Martin

    @zefanja als Antwort auf @Mark:
    Ich bin genau bei dem selben Problem. Ich vermute, dass hinter
    >>> antolin[titles[recordID][„ISBN“]][„url“], <<<
    die Struktur von "in ein Array bzw. Dict gespeichert" steckt. Könntest Du das mal kurz erklären?

    (Ich habe eine 'list of dictionaries' genommen, in die ich nur die Felder übernehme, die ich für den Koha-Import brauche, also book_id, Titel, grade und ISBN13 als Vergleichsbegriff mit dem Koha-Bestand. )

    Danke!

Leave a Reply:

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert