Axiell’s DDELibraWeb åbner som udgangspunkt alle links via JavaScript på en dybt frustrerende måde for vi, som arbejder med systemet til daglig. Destinations-URL’en fremgår nemlig ingen steder og er derfor ikke umiddelbart til at få fat i, hvilket gør det svært at linke ind i systemet.
Hidtil har vi således skullet omkring vores link-genereringsværktøj for at lave links til poster i OPAC’en, hvilket er en noget omstændelig proces, der tager mindst 10 gange så lang tid som at kopiere en almindelig URL fra et almindeligt link.
I går blev frustrationen en tand for meget og jeg satte mig for at skrue en stump kode sammen, der genererer et link til fuld postvisning, direkte i søgeresultatet.
Hvordan linker man til en fuld postvisning?
URL’en til den fulde postvisning var en udfordring i sig selv. Det fremgår nemlig ingen steder, hvilke parametre, der skal kobles på URL’en for at nå frem til den fulde post. Det kunne vores virksomhedspraktikant og datalogi-ninja, Ulrich Christensen, heldigvis dechifrere for mig.
Skabelonen til en fuld postvisnings-URL ser således ud:
$baseurl = "www.bibfolk.horsens.dk"; $htgroup = "WWW"; $link = "https://" . $baseurl . "/sites/". $htgroup . "/pub/search.html?doaction=showfull&data=keyno_list%3D" . $materialeid . "+format%3Dfull";
hvor $baseurl er den grundlæggende URL til din OPAC, $htgroup er navnet på din HTGROUP, $materialeid er faust-nr. og +format%3Dfull angiver, at vi skal have beholdningen med.
Implementering af permalink med jQuery i OPAC’en
For at få linket til at blive vist på front end’en i OPAC’en, må vi ty til JavaScript.
JavaScript-biblioteket jQuery er i forvejen implementeret og (mis)brugt i OPAC’en, så det kan vi ligeså godt udnytte. Jeg har yderligere smidt en lille “custom-made” JavaScript fil ind i <head> elementet på Horsens Biblioteks OPAC, common.js (husk at gemme det i local mappen, før du initialiserer systemet), og deri står nu den kode, vi skal bruge:
// Get FAUST nr.
$("img.cssbookcoverloading").each(function(){
var faustStr = $(this).attr("id");
var faustUri = faustStr.replace("cover:", "https://www.bibfolk.horsens.dk/sites/WWW/pub/search.html?doaction=showfull&data=keyno_list%3D");
$(this).parent().after("<br /><a href='" + faustUri + "+format%3Dfull' title='Link til denne post'>Permalink</a>");
});
Vi har for det første brug for at få identificeret materialeID’et. Det kan vi heldigvis finde i en id attributten på en lille .gif med class attributten .cssbookcoverloading.
Vi gør altså det, at for hver .gif med class attributten .cssbookcoverloading:
- finder vi ud af hvad der står i
idattributten (var faustStr) - bytter tekststrengen
cover:ud med den faste del af vores URL (var faustUri) - og genererer et link, inkl. det dynamiske materialeID, efter det link, der er rundt om .gif’en (
(this).parent().after("… osv. )
Ét voila!
Nu er der et lille link med teksten “Permalink” umiddelbart under hvert forsidebillede i søgeresultatet.
Se et eksempel på en søgning her.
Bemærk: Har man brug for at lave links til længere ccl søgninger, må man stadig ty til et link-genereringsværktøj.

Lad det være sagt med det samme, jeg kan godt lide min mac. Den mangler dog en Internet Explorer til at teste websites i. Men heller ikke i en almindelig Windows-installation findes der som regel ret meget mere end seneste version af Explorer. Det er naturligvis noget rod for front end udviklere, når alle versionerne tegner et givent website forskelligt.


