For nylig har vi på Horsens kommunes bibliotekers website implementeret en række lister med dynamiske links til sidste måneds anskaffelser i bibliotekets DDELibra baserede OPAC. Listerne kan i høj grad erstatte Axiell’s modul til DDELibra, “Publicering af lister” (se produktspecifikation i PDF format her). Her er opskriften.
Du skal bruge:
Et website, der er programmeret i PHP med fuld adgang til front end koden.
Det er en fordel at have adgang til en “link-generator” til OPAC’en, så du nemt kan omdanne CCL søgninger til links. Se f.eks. Horsens kommunes bibliotekers link-generator her.
Fremgangsmåde:
De links, vi konstruerer til en nyhedsliste, består af:
- en statisk del, nemlig den emneafgrænsende del af CCL søgningen.
- en dynamisk del, nemlig den tidsafgrænsende del af CCL søgningen.
Det er den tidsafgrænsende del, vi skal kode i PHP. Vi har valgt at tidsafgrænse nyhedslisterne til sidste måned. For at få fat i datoen samt få den afgrænset til sidste måned, hverken mere eller mindre, opretter vi en funktion, der ser således ud:
PHP kode:
- <?php
- 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;
- }
- }
- ?>
Forklaring:
3) Hvis indeværende måned er januar, (4) udskrives december måned sidste år. (5) Men hvis indeværende måned er mellem februar og oktober, (6) udskrives indeværende årstal og sidste måneds nummer som 1 decimal. (7) Ellers (8) udskrives indeværende årstal og sidste måned.
Det var selve beregningen af funktionen. Nu skal vi kalde funktionen som en afgrænsende dato i den link-genererede CCL-søgning. Det gøres med <?php showmonth() ?>. Et link til listen over sidste måneds anskaffelser af krimier kommer dermed til at se således ud:
Selve linket: (Bemærk! Linien er brudt aht. læsbarheden. Linket må IKKE brækkes i stykker over flere linier)
- <a href="https://www.bibfolk.horsens.dk/sites/WWW/pub/search.html?doaction=search&
data=scode_ccl=bh%3D<?php showmonth() ?>%3F%2520og%2520bh%3Dvo%2520og%2520
ma%3Da%2520og%2520bh%3Dkri%20&request_attr_sortformat%3D2%20&
request_attr_defaultpage%3D20%20&rec%3D0">Krimier</a>
There you go. God fornøjelse. Hvis du har forslag til forbedringer, hører jeg gerne nærmere.