Nachnutzung von QR-Codes in vufind
Wie berichtet haben wir QR-Codes in TUBfind integriert. Wie funktioniert das? Wir benutzen eine OpenSource-verfügbare Implementierung eines QR-Codegenerators (QR-Klasse von Y. Swetake) in PHP im Hintergrund. Diese kann in den Vufind-Applikationsbaum auf dem Server kopiert werden – bei uns hab ich die Quellen so aufgeteilt:
qr_img.php -> ins Verzeichnis web
data -> ins Verzeichnis sys
image -> ins Verzeichnis images
Die folgende Methode muss in die RecordDrivers/IndexRecord.php eingefügt werden:
public function getQRString() {
global $configArray;
global $interface;
$dates = $this->getPublicationDates();
$qrstring = rawurlencode($this->getPrimaryAuthor().“: „.$this->getShortTitle().“ / „.$dates[0].“ – „.$configArray[‚Site‘][‚url‘].$configArray[‚Site‘][‚path‘].“/Record/“.$this->getUniqueID());
return $qrstring;
}
Die folgende Zeile wird in services/Record/Record.php eingefügt (z.B. in der Zeile hinter $interface->assign(‚openURL‘, $this->recordDriver->getOpenURL());):
$interface->assign(‚qr‘, $this->recordDriver->getQRString());
Im Theme (web/interface/themes/~theme~/RecordDrivers/Index/core.tpl) wird der folgende Quelltext benötigt:
<tr valign=“top“>
<th>{translate text=’QR-Code‘}: </th>
<td>
<span class=“showqr“>
<a href=“#“ onClick=’document.getElementById(„qrcode“).style.display = „block“; document.getElementById(„showqr“).style.display = „none“; document.getElementById(„hideqr“).style.display = „block“;‘ id=“showqr“>{translate text=“Show QR-Code“}</a>
<a href=“#“ onClick=’document.getElementById(„qrcode“).style.display = „none“; document.getElementById(„hideqr“).style.display = „none“; document.getElementById(„showqr“).style.display = „block“;‘ style=“display:none;“ id=“hideqr“>{translate text=“Hide QR-Code“}</a>
</span>
<div id=“qrcode“ style=“display:none“>
<img alt=“QR-Image of this book“ src=“{$path}/qr_img.php?d={$qr}“>
</div>
</td>
</tr>
In der lang/de.ini sollten nun noch die Übersetzungen für die neuen Strings eingetragen werden:
QR-Code = „QR-Code“
Show QR-Code = „QR-Code zeigen“
Hide QR-Code = „QR-Code verbergen“
Finito!
Achtung: Beim Kopieren der Codeausschnitte werden möglicherweise die Anführungszeichen (doppelte und einfache) durch nicht-konforme Zeichen ersetzt. Der Code muss also beim Einfügen in Vufind manuell nachkorrigiert werden! Es gibt auch eine Patchdatei für Vufind 1.0.1: QR-Code-Patch Vufind 1.0.1. Speichern Sie die Datei im Vufind-Hauptverzeichnis und führen Sie den Patch mit dem Kommando patch -p0 < vufind-1.0.1_qrcode.txt
aus (ohne Gewähr!).