Erweiterungen für Koha

Dieses Kapitel zeigt, wie Sie verschiedene Verbesserungen und Anpassungen in und um Koha herum hinzufügen können, indem Sie hauptsächlich die vorhandenen Konfigurationsoptionen verwenden.

Amazon-Nachschlageskript für Koha-Bibliotheken

Wir bestellen das meiste Material über Amazon, daher habe ich nach einem angenehmen Weg gesucht, sagen zu können, ob ein Buch, das in Betracht kommt, sich bereits in unserem Katalog befindet.

Greasemonkey & ein benutzerdefiniertes Skript erfüllen die Aufgabe:

Ein paar Vorbehalte:

  • Wie die meisten Skripte, wurde dieses Skript entwickelt, um mit Firefox zu arbeiten; ich habe nicht durchsucht, ob es mit anderen Browsern arbeitet.

  • Ich bin kein JavaScript Programmierer – dies wurde von der Arbeit Anderer abgeleitet. Nur ein paar Linien müssten abgeändert werden, damit das Skript mit ihrem Katalog arbeitet.

  • Es kommt auf das Bestehen der ISBN für das gesuchte Element an, daher würden Filme, ältere Bücher, etc. nicht funktionieren.

Andere Bibliotheken haben weitere Anpassungen hinzugefügt: benutzerdefinierte Hinweise abhängig vom Status der Exemplare (bestellt, bereitgestellt, etc.), … Suchen Sie auf der Seite für UsreScripts mit Amazon und library. Für ein andermal!

Stichwortclouds

Zusätzlich zu der traditionellen Tagcloud, die in Koha zur Verfügung steht, gibt es eine Möglichkeit auch Clouds aus den beliebtesten verwendeten Schlagwörtern zu generieren.

Der Cronjob für Verfasser/Schlagwort-Clouds wird für diesen Prozess verwendet. Der Cronjob erzeugt Dateien mit den entsprechenden Daten.

  • /home/koha/mylibrary/koharoot/koha-tmpl/cloud-author.html

  • /home/koha/yourlibrary/koharoot/koha-tmpl/cloud-subject.html

Das bedeutet, dass Sie Clouds für Verfasser, alle Arten von Schlagworten, Klassifikationen etc. erzeugen können. Und da diese über die Zebra-Indizes generiert werden, geht es schnell, auch bei großen Datenbanken. Tag Clouds werden als Dateien erzeugt. Sie können diese dann z.B. über den Systemparameter OpacMainUserBlock in Koha oder in den Webauftritt Ihrer Bibliothek einbinden.

Einige Bibliotheken speichern die Datei in in einem über Samba geteilten Verzeichnis, aus dem ein Webmaster Sie nach ein bisschen Bereinigung als Grundlage für Navigationswidgets oder -seiten verwenden kann.

Auswahlliste für Neuerwerbungen

Oft möchten wir eine Möglichkeit für unsere BenutzerInnen schaffen, nach den neuesten Medien zu suchen. In diesem Beispiel zeigen wir, wie Sie eine Auswahlliste für die neuesten Medien nach Medientyp hinzufügen können. Dieser Tipp funktioniert auch (mit ein paar kleinen Änderungen) für Sammlungen und Standorte.

Zuerst ist es wichtig, dass Sie wissen, dass jeder Link in Koha ein permanenter Link ist. Das bedeutet, wenn man eine Suche nach einem bestimmten Medientyp, sortiert nach Erwerbungsdatum, macht und die URL als Lesezeichen speichert, werden bei jedem Aufruf die neuesten Exemplare für diesen Medientyp auf der ersten Seite angezeigt.

Mit diesem Wissen können Sie ein Formular mit dieser Funktionalität anlegen. Es löst eine Suche in Ihrem Koha-Katalog nach den Medien für einen bestimmten Medientyp sortiert nach Erwerbungsdatum aus.

Zuerst sollten Sie einen SQL-Report erstellen um eine Liste der Medientypen zu generieren. Warum Kopieren und Einfügen, wenn man die Macht von SQL nutzen kann?

select concat('<option value=\"mc-itype:', itemtype, '\">',description,'</option>') from itemtypes

Der obenstehende Report verwendet die itemtypes-Tabelle und ergänzt das notwendige HTML für jeden Medientyp. Dies kann nun als CSV exportiert und im Texteditor um die weiteren Teile des Formulars ergänzt werden.

<p><strong>New Items</strong></p>
<p><form name="searchform" method="get" action="/cgi-bin/koha/opac-search.pl">
<input name="idx" value="kw" type="hidden">
<input name="sort_by" value="acqdate_dsc" type="hidden">
<input name="do" value="OK" type="hidden">
<select name="limit" onchange="this.form.submit()">
<option>-- Please choose --</option>
<option value="mc-itype:BOOK">Book</option>
<option value="mc-itype:BOOKCD">Book on CD</option>
<option value="mc-itype:DVD">DVD</option>
<option value="mc-itype:LRG_PRINT">Large print book</option>
<option value="mc-itype:MAGAZINE">Magazine</option>
<option value="mc-itype:NEWSPAPER">Newspaper</option>
<option value="mc-itype:VIDEO">Videocassette</option>
</select>
</form>
</p>

Was bedeutet dies nun alles? Die wichtigen Punkte sind:

Zuerst, der Anfang des Formulars.

<p><form name="searchform" method="get" action="/cgi-bin/koha/opac-search.pl">

Dies sagt dem Browser, dass er den ausgewählten Wert an das Ende der URL http://IHRKATALOG/cgi-bin/koha/opac-search.pl setzen soll. Wenn Sie dieses Formular in Ihre Bibliotheksseite einfügen möchten (und nicht im OPAC), können Sie hier die vollständige OPAC-URL angeben.

Als nächstes wird ein versteckter Wert angegeben, der die Sortierung nach Erwerbungsdatum absteigend definiert (neueste Exemplare zu Beginn).

<input name="sort_by" value="acqdate_dsc" type="hidden">

Und zuletzt haben Sie eine Option für jeden Medientyp, den Sie suchbar machen möchten.

<option value="mc-itype:BOOK">Book</option>

Diese Optionen enthalten auch die Zeichenkette „mc-itype:“, um eine Suche im Index für den Medientyp durchzuführen.

Nachdem Sie dies nun angepasst haben, können Sie das Formular an beliebiger Stelle in Ihrem Katalog einfügen. Der Katalog der Farmington Public Libraries hat hierzu ein paar Beispiele auf der linken Seite.

Slideshow für Neuerwerbungen im OPAC

Oft möchten Bibliotheken eine Diashow, Karussel oder ähnliches für Ihre Neuerwerbungen auf der Startseite des Bibliothekskatalogs anbieten. Um dies einzubinden, können Sie ein Widget von verschiedenen Diensten verwenden (oft gegen ein Entgelt) oder Sie können Kohas Pluginsystem aktivieren und das Cover Flow Plugin, welches auf auf dem responsiven jQuery Coverflow Plugin Flipster basiert, verwenden.

Sobald das Plugin installiert ist, müssen Sie die nächsten Schritte ausführen, damit es angezeigt wird:

Zuerst müssen Sie einen oder mehrere öffentliche Reports für das Coverflow Widget anlegen. Über diese wird festgelegt, welche Inhalte das Widget anzeigt. Jeder Report muss drei Spalten enthalten: title, biblionumber und isbn. Es ist wichtig, dass Sie gute und gültige ISBN in Ihren Daten haben, da diese für die Coverdienste benötigt werden. In der aktuellen Iteration des Plugins werden Cover von Amazon verwendet, dies wird aber in späteren Versionen ggf. konfigurierbar sein.

Als nächstes müssen Sie das Plugin konfigurieren. Die Konfiguration des Plugins erfolgt über ein einzelnes Eingabefeld, dass die YAML-Syntax verwendet (tatsächlich ist es JSON, ein Subset von YAML). In diesem Beispiel sieht es so aus:

- id: 42
  selector: #coverflow
  options:
  style: coverflow

In diesem Beispiel konfigurieren wir das Plugin um den Report mit der internen ID 42 zu verwenden und verwenden es um ein Coverflow Widget mit der HTML id „coverflow“ zu generieren. Die Liste der Optionen wird direkt an Flipster weitergereicht, so dass alle Optionen, die Flipster beherrscht, auch in der Plugin-Konfiguration verwendet werden können. Tatsächlich hat Flipster neben der klassischen Coverflow-Sicht auch einen Karussel-Modus, der eine kompaktere Version des Coverflows ist. Sie können in der Konfiguration u.a. auch festlegen, mit welchem Cover das Widget beginnt.

Wenn die Konfiguration des Plugins gespeichert oder aktualisiert wird, generiert es minimierten JavaScript-Code, der automatisch in den Systemparameter OpacUserJs eingefügt wird. Hier ist ein Beispiel für die Ausgabe:

/* JS for Koha CoverFlow Plugin
 This JS was added automatically by installing the CoverFlow plugin
 Please do not modify */$(document).ready(function(){$.getScript("/plugin/Koha/Plugin/Com/ByWaterSolutions/CoverFlow/jquery-flipster/src/js/jquery.flipster.min.js",function(data,textStatus,jqxhr){$("head").append("<link id='flipster-css' href='/plugin/Koha/Plugin/Com/ByWaterSolutions/CoverFlow/jquery-flipster/src/css/jquery.flipster.min.css' type='text/css' rel='stylesheet' />");$('#coverflow').load("/coverflow.pl?id=42",function(){var opt={'items':'.item','minfactor':15,'distribution':1.5,'scalethreshold':0,'staticbelowthreshold':false,'titleclass':'itemTitle','selectedclass':'selectedItem','scrollactive':true,'step':{'limit':4,'width':10,'scale':true}};$('#coverflow').flipster({style:'coverflow',});});});});
/* End of JS for Koha CoverFlow Plugin */

Warum wird dies so gehandhabt? Für die Geschwindigkeit! Statt diesen Code jedes Mal auf neue zu generieren, wenn die Seite aufgerufen wird, wird er nur einmalig generiert und wieder und wieder verwendet.

Wenn Sie sich den Code genau ansehen, sehen Sie Verknüpfungen zum Skript coverflow.pl. Dieses ist ein Skript des Coverflow-Plugins. Da wir dieses Skript vom OPAC aus aufrufen können müssen (und wir keine XSS-Warnungen erzeugen möchten), muss die Konfiguration des Webservers für den Katalog auf folgende Weise angepasst werden:

ScriptAlias /coverflow.pl "/var/lib/koha/mykoha/plugins/Koha/Plugin/Com/ByWaterSolutions/CoverFlow/coverflow.pl"

Diese Zeile erlaubt den Zugriff auf das Skript coverflow.pl vom OPAC aus. Das Skript greift auf die Daten des Reports zu und gibt diese an den Katalog und das Coverflow-Widget weiter. Koha::Cache wird ebenfalls unterstützt um das Widget schnellstmöglich laden zu können.

Im letzten Schritt müssen Sie Ihr Selector-Element in Ihrem Katalog einfügen. In diesem Beispiel haben wir folgendes in den Systemparameter OpacMainUserBlock eingefügt:

<span id="coverflow">Loading...</span>

Sobald dieser Code eingefügt wurde, müssen Sie den OPAC nur einmal neu aufrufen und es ist da - Ihr eigenes Coverflow-Widget! Diese Coverflows sehen nicht nur auf dem Bildschirm großartig aus, sondern auch auf kleineren Bildschirmen und können auch dort gut bedient werden.

image1316

Katalogisierung und Suche nach Farbe

Eines der mit Koha installierten Iconsets enthält eine Reihe von Farben. Dieses Set kann im Katalog für eine Suche nach Farbe verwendet werden. Diese Anleitung erklärt, wie Sie die Sammlungen für Farben verwenden können.

Das nachfolgende SQL kann verwendet werden, um diese Farben zum Normierten Wert CCODE hinzuzufügen. Wenn sie diese Farben für einen anderen Normierten Wert verwenden möchten, müssen Sie die Kategorie entsprechend anpassen:

insert into authorised_values (category, authorised_value, lib,
 lib_opac, imageurl) values ('CCODE','000000','Black','','colors/000000.png');
insert into authorised_values (category, authorised_value, lib,
 lib_opac, imageurl) values ('CCODE','66cc66','Bright Green','','colors/66cc66.png');
insert into authorised_values (category, authorised_value, lib,
 lib_opac, imageurl) values ('CCODE','99cc33','Olive','','colors/99cc33.png');
insert into authorised_values (category, authorised_value, lib,
 lib_opac, imageurl) values ('CCODE','3333cc','Dark Blue','','colors/3333cc.png');
insert into authorised_values (category, authorised_value, lib,
 lib_opac, imageurl) values ('CCODE','006600' ,'Dark Green','','colors/006600.png');
insert into authorised_values (category, authorised_value, lib,
 lib_opac, imageurl) values ('CCODE','6600cc','Plum','','colors/6600cc.png');
insert into authorised_values (category, authorised_value, lib,
 lib_opac, imageurl) values ('CCODE','6666cc','Purple','','colors/6666cc.png');
insert into authorised_values (category, authorised_value, lib,
 lib_opac, imageurl) values ('CCODE','9999cc','Light Purple','','colors/9999cc.png');
insert into authorised_values (category, authorised_value, lib,
 lib_opac, imageurl) values ('CCODE','660000' ,'Burgundy','','colors/660000.png');
insert into authorised_values (category, authorised_value, lib,
 lib_opac, imageurl) values ('CCODE','663333' ,'Brown','','colors/663333.png');
insert into authorised_values (category, authorised_value, lib,
 lib_opac, imageurl) values ('CCODE','990000' ,'Red','','colors/990000.png');
insert into authorised_values (category, authorised_value, lib,
 lib_opac, imageurl) values ('CCODE','996633' ,'Tan','','colors/996633.png');
insert into authorised_values (category, authorised_value, lib,
 lib_opac, imageurl) values ('CCODE','999999' ,'Gray','','colors/999999.png');
insert into authorised_values (category, authorised_value, lib,
 lib_opac, imageurl) values ('CCODE','cc66cc','Pink','','colors/cc66cc.png');
insert into authorised_values (category, authorised_value, lib,
 lib_opac, imageurl) values ('CCODE','cc99cc','Bubble Gum','','colors/cc99cc.png');
insert into authorised_values (category, authorised_value, lib,
 lib_opac, imageurl) values ('CCODE','cc3333' ,'Orange','','colors/cc3333.png');
insert into authorised_values (category, authorised_value, lib,
 lib_opac, imageurl) values ('CCODE','cc6666' ,'Peach','','colors/cc6666.png');
insert into authorised_values (category, authorised_value, lib,
 lib_opac, imageurl) values ('CCODE','cc9999' ,'Rose','','colors/cc9999.png');
insert into authorised_values (category, authorised_value, lib,
 lib_opac, imageurl) values ('CCODE','cccc00' ,'Gold','','colors/cccc00.png');
insert into authorised_values (category, authorised_value, lib,
 lib_opac, imageurl) values ('CCODE','ffff33' ,'Yellow','','colors/ffff33.png');
insert into authorised_values (category, authorised_value, lib,
 lib_opac, imageurl) values ('CCODE','ffffcc','Cream','','colors/ffffcc.png');
insert into authorised_values (category, authorised_value, lib,
 lib_opac, imageurl) values ('CCODE','ffffff','White','','colors/ffffff.png');

Wenn Sie die Farben manuell auswählen möchten, können Sie dies über Normierte Werte im Administrationsmodul konfigurieren.

image1118

Als nächstes könnten Sie die MARC-Frameworks für Feld 952$8 (falls Sie Sammlungen verwenden) aktualisieren, so dass die Beschreibung „Farbe“ lautet.

Sobald dies geschehen ist, können sie nach Farben katalogisieren.

Zuletzt können Sie noch das nachfolgende jQuery in Ihre Systemparameter einfügen, um die Beschriftung auch an anderen Stellen von „Sammlung“ zu „Farbe“ zu ändern

IntranetUserJS

$(document).ready(function(){
    $("#advsearch-tab-ccode a:contains('Collection')").text("Color");
    $("#holdings th:contains('Collection')").text("Color");
    });

OPACUserJS

$(document).ready(function(){
    $("#advsearch-tab-ccode a:contains('Collection')").text("Color");
    $('#item_ccode').text("Color");
    });

Koha als Content Management System (CMS)

Konfiguration

Die nachfolgenden Instruktionen erlauben es, CMS-Funktionen in eine Standardinstallation von Koha zu integrieren. Diese erlauben es einer Bibliothek eine beliebige Anzahl zusätzlicher Seiten basierend auf einem Template anzulegen. Dieses Beispiel verwendet das Template von der Startseite des OPAC, aber es ist möglich mit ein paar weiteren Änderungen ein beliebiges Template zu verwenden. Diese Funktion hilft, wenn Sie eine kleine Bibliothek sind, das Personal einfach Seiten bearbeiten können soll oder Sie kein vollständiges CMS betreiben möchten.

  • Kopieren Sie /usr/share/koha/opac/cgi-bin/opac/opac-main.pl nach /usr/share/koha/opac/cgi-bin/opac/pages.pl (im gleichen Verzeichnis)

  • Bearbeitung von pages.pl im Editor

  • Ungefähr in Zeile 33 müssen Sie diesen Code verändern:

    template_name  => "opac-main.tt",
    
  • Zu diesem Code:

    template_name  => "pages.tt",
    
  • Und danach ungefähr in Zeile 62:

    $template->param(
               koha_news       => $all_koha_news,
               koha_news_count => $koha_news_count,
               display_daily_quote => C4::Context->preference('QuoteOfTheDay'),
               daily_quote         => $quote,
               );
    
  • Diese Zeilen hinzufügen:

    my $page = "page_" . $input->param('p');          # go for "p" value in URL and do the concatenation
    my $preference = C4::Context->preference($page);  # Go for preference
    $template->{VARS}->{'page_test'} = $preference;   # pass variable to template pages.tt
    
  • Bitte beachten Sie, dass pages.pl vom Webserver-User ausführbar sein muss, dafür können Sie den chmod Befehl verwenden, wenn Sie als dieser User angemeldet sind:

    $chmod 755 pages.pl
    
  • Gehen Sie im Browser zu Start > Administration > Systemparameter > Lokale Verwendung und legen Sie einen neuen Systemparameter mit dem Namen „page_test“ an

  • Füllen Sie dies so aus

    • Erklärung: Test-Seite für Mini-CMS

    • Variable: page_test

    • Wert: Lorem ipsum

    • Klicken Sie auf den Textarea-Link (oder wählen Sie „Textarea“ aus der Auswahlliste)

    • Weitere Optionen (letztes Feld): 80|50

  • Rufen Sie im Browser die Adresse http://ihrkatalog/cgi-bin/koha/pages.pl?p=test auf. Die Seite sollte mit dem Text „Lorem ipsum“ im Hauptbereich angezeigt werden. (Ersetzen Sie „ihrkatalog“ mit localhost, 127.0.0.1 oder Ihrer Domain, abhängig davon, wie Sie Apache eingerichtet haben.)

  • Um weitere Seiten hinzuzufügen, legen Sie weitere Systemparameter an, deren Variable mit „page_“ beginnt, gefolgt von einer beliebigen Zeichenfolge. Sie können beliebiges Markup für den Wert der Variable verwenden. Sie können auf die Seite verlinken, indem Sie den Wert das „p“-Parameters in der URL anpassen.

Weitere Informationen finden Sie auf der Wiki-Seite zu diesem Thema: http://wiki.koha-community.org/wiki/Koha_as_a_CMS

Bearbeitung des Seitentemplates

  • Kopieren Sie /usr/share/koha/opac/htdocs/opac-tmpl/bootstrap/en/modules/opac-main.tt nach /usr/share/koha/opac/htdocs/opac-tmpl/bootstrap/en/modules/pages.tt

  • Bearbeiten Sie /usr/share/koha/opac/htdocs/opac-tmpl/bootstrap/en/modules/pages.tt

  • Ungefähr in Zeile 61 ändern Sie:

    [% IF ( OpacMainUserBlock ) %]<div id="opacmainuserblock">[% OpacMainUserBlock %]</div>[% END %]
    
  • Zu:

    [% IF ( page_test ) %]<div id="opacmainuserblock">[% page_test %]</div>[% END %]
    

Anmerkung: Eventuell möchten Sie den Block mit den Nachrichten von Ihren CMS-Seiten entfernen z.B. wenn Sie ihn auf diesen Seiten nicht anzeigen möchten oder die Nachrichten so lang sind, dass die Inhalte von „page_test“ dadurch außerhalb des sichtbaren Bereichs liegen. In diesem Fall können Sie den folgenden Code aus Ihrem pages.tt-Template löschen.

[% IF ( koha_news_count ) %]
    <div id="news">
    <table class="table table-bordered">
    [% FOREACH koha_new IN koha_news %]
      <thead><tr><th>[% koha_new.title %]</th></tr></thead>
      <tbody><tr><td><p>[% koha_new.new %]</p>
      <p class="newsfooter"><i>(published on [% koha_new.newdate %])</i></p></td></tr></tbody>
    [% END %]
    </table>
    </div>
   [% END %]

Problembehebung

Wenn Sie Probleme mit der Funktion haben, prüfen Sie zunächst die Berechtigungen für pages.pl und pages.tt. Sie sollten demselben User und derselben Gruppe wie die anderen Koha-Dateien gehören.

Bonuspunkte

Statt die Adresse http://ihrkatalog/cgi-bin/koha/pages.pl?p=test zu verwenden, können Sie dies auch zu http://ihrkatalog/pages.pl?p=test verkürzen. Öffnen Sie dazu die Datei /etc/koha/koha-httpd.conf und fügen Sie den folgenden Code um Zeile 13 ein:

ScriptAlias /pages.pl "/usr/share/koha/opac/cgi-bin/opac/pages.pl"

Starten Sie Apache neu.

Verwendung

Nachdem Sie Koha als CMS eingerichtet haben, können Sie neue Seiten nach dieser Anleitung hinzufügen:

Seiten anlegen

Um eine neue Seite anzulegen, müssen Sie einen neuen Systemparameter für „Lokale Verwendung“ anlegen.

  • Pfad in Koha: Mehr > Administration > Globale Systemparameter > Lokale Verwendung

  • Klicken Sie auf „Neuer Parameter“

  • Geben Sie eine Beschreibung in das Feld „Erklärung“ ein

  • Geben Sie einen Wert, der mit „page_“ beginnt unter Variable ein

  • Geben Sie im Feld Wert Ihr HTML ein

    image1076

  • Setzen Sie den „Typ der Variablen“ auf Textarea

  • Tragen Sie unter Optionen etwas wie 20|20 für 20 Zeilen und 20 Spalten ein

    image1077

Ihre Seite anzeigen

Sie können Ihre neue Seite unter http://IHR-KATALOG/cgi-bin/koha/pages.pl?p=SEITENNAME aufrufen, der Seitenname ist dabei der Teil, den Sie nach „page_“ im Feld Variable angegeben haben.

Beispiel

Dieser Prozess kann verwendet werden, um Leselisten innerhalb von Koha anzulegen. Nachdem die erforderlichen Codeänderungen für „Koha als CMS“ durchgeführt würden, können Sie die Anleitung unter „Seiten anlegen“ verwenden, um eine neue Seite „Leseempfehlungen“ anzulegen.

image1078

Als nächstes können wir Seiten für die verschiedenen Klassen (oder Kategorien) anlegen. Um dies zu tun, gehen Sie zurück zum Abschnitt „Seiten anlegen“ und fügen legen Sie einen Systemparameter für die erste Klasse oder Kategorie an.

image1079

Als nächstes können Sie Ihre erste Seite mit der neuen zweiten Seite verlinken. Bearbeiten Sie dazu den neuen Parameter page_recommend. Jetzt können Sie das HTML so anpassen, dass es auf Ihre neue Seite verlinkt:

image1080

Beispiele

  • Die Crawford Library des Dallas Christian College verwendet diese Methode für Ihre Leseempfehlungen: http://opac.dallas.edu/

Koha-Suche auf Ihren Webseiten

Vielleicht möchten Sie eine Suchbox für Koha in Ihre Bibliothekswebseite integrieren. Um dies zu tun, kopieren Sie einfach den nachfolgenden Code und fügen diesen in Ihre Bibliothekswebseite ein. Ändern Sie dabei IHRKATALOG zu Ihrer eigenen Katalog-URL. Das wars.

<form name="searchform" method="get" action="http://YOURCATLOG/cgi-bin/koha/opac-search.pl" id="searchform">
<input id="transl1" name="q" type="text"><p>
<select name="idx" id="masthead_search">
<option value="kw">Keyword</option>
<option value="ti">Title</option>
<option value="au">Author</option>
<option value="su">Subject</option>
<option value="nb">ISBN</option>
<option value="se">Series</option>
<option value="callnum">Call Number</option>
</select>
<input value="Search" id="searchsubmit" type="submit">
</p></form>