Dynamiske links til nyhedslister i OPAC’en, ver. 2

I august 2009 smed jeg opskriften på en lille stump PHP til generering af en dynamisk dato i nyhedslister til OPAC’en her på bloggen. Dengang medtog scriptet kun sidste måneds nyheder. Siden da er det blevet opdateret til at medtage både sidste og indeværende måneds nyheder, og der er også lavet en JavaScript version.

Implementering af PHP scriptet:

Opskriften er næsten identisk med den gamle, se forklaring her.

Sådan konstrueres de funktioner, der udregner månederne:

<?php
// Display last month
function showmonth() {
	if (date("n") == 1) {
		echo date("Y")-1 . "12";
	} elseif (date("n") >= 2 && date("n") <= 9) {
		echo date("Y") . "0" . date("n")-1;
	} else {
		echo date("Y") . date("n")-1;
	}
}

// Display the current month
function showcurr_month() {
	if (date("n") <= 9) {
		echo date("Y") . "0" . date("n");
	} else {
		echo date("Y") . date("n");
	}
}
?>

Sådan sættes funktionerne ind i et givent link (her en nyhedsliste over “romaner”):

<a href="https://www.bibfolk.horsens.dk/sites/WWW/pub/search.html?doaction=search&amp;data=scode_ccl=(ad%3D<?php showmonth() ?>%3F%2520eller%2520ad%3D<?php showcurr_month() ?>%3F)%2520og%2520bh%3Dvo%2520og%2520ma%3Dte%2520og%2520bh%3Droman%20&amp;request_attr_sortformat=1%20&request_attr_defaultpage=20%20&rec=0">Romaner</a>

Implementering af JavaScriptet:

Hent filen nyhedslister.js her.

Scriptet er noget værre klyt, men det virker. Hele nyhedslisten er hard coded i .js filen for at få det til at virke på OPAC’ens forside, så hvis der skal rettes links eller søgninger til, skal de rettes i denne fil. Heri rettes også basis URL’en, således at søgningen foretages i din og ikke Horsens Biblioteks OPAC. Linje 35 rettes således til dit eget domæne og HTGROUP:

var basic_url = 'https://www.bibfolk.horsens.dk/sites/WWW/pub/search.html?doaction=search&data=scode_ccl=';

Scriptet placeres på din webside, hvor det ønskes med <script> tagget:

<script src="nyhedslister.js" type="text/javascript"></script>

Generering af links til OPAC:

… er generelt noget værre hejs, fordi OPAC’en ikke automatisk genererer en URL pr. faustnr. Det ville ellers gøre livet en hel del lettere for både brugere og personale. Derfor må man gå en omvej.

Linksene i nyhedslisterne er således genereret med dette lille værktøj, der er beregnet til at lave links ind i Horsens Biblioteks OPAC.

ÆØÅ og andre specialtegn
Specialtegn som f.eks. ÆØÅ kan volde problemer i links, fordi de skal URL encodes. I den sammenhæng har W3schools.com en nyttig URL encoding reference her (scroll lidt ned på siden).

Forsideservice i DDELibraWeb

Horsens kommunes biblioteker driver DDELibraWeb sites for en række skoler, institutioner og naturligvis for biblioteket selv. På disse drift-sites har Axiell i sin tid sat forsideservice op, således at der bliver vist bogforsider til hver post.

Vi har imidlertid også et udviklingssite kørende til testformål. På dette site har forsideservice dog hidtil ikke været sat op og vi har savnet dokumentation til, hvordan det sættes op. Her kommer løsningen:

Opsætningen af forsideservice for DDELibraWeb sites defineres i XML konfigurationsfilen cover-sites-config.xml. Filen findes på følgende sti på webserveren:

c:\ddelibraWeb\conf\cover-sites-config.xml

Indholdet af filen ser nogenlunde således ud:

<?xml version="1.0" encoding="UTF-8"?>
<sites>
  <site name="DEFAULTSITENAVN"> <!-- I horsens er sitenavnet WWW -->
    <parameter name="netpunkt-user" value="dit-netpunkt-brugernavn"/>
    <parameter name="netpunkt-group" value="dit-biblioteksnummer"/>
    <parameter name="netpunkt-password" value="dit-netpunkt-password"/>
  </site>
  <site name="FILIALSITENAVN"> <!-- Horsens udviklingssite hedder OPACUDV -->
    <parameter name="site-ref" value="DEFAULTSITENAVN"/>
  </site>
</sites>

I ovenstående eksempel er forsideservice koblet på to sites. For at koble forsideservice på flere sites, kopierer du bare det nederste site, dvs.:

<site name="FILIALSITENAVN">
  <parameter name="site-ref" value="DEFAULTSITENAVN"/>
</site>


… og sætter det ind i bunden af dokumentet, før </sites> tagget.

Når du har gemt filen, genstartes serveren. Det er ikke nok at initialisere, genstarte eller reset’e det lokale site. Det er nødvendigt at genstarte web serveren.

Du kan naturligvis kun koble forsideservice på så mange sites, som du har installeret og har licens til.