Flexible Widgets – et WordPress plugin

I forbindelse med forårets udvikling og redesign af Horsensbibliotek.dk, implementerede jeg et par ideer til forbedring af anvendelsen af WordPress som CMS.

WordPress er som bekendt født som blogging værktøj og mangler på visse områder noget fleksibilitet i forhold til, hvad man kunne ønske at vise af sekundært indhold. Man kan således placere en række widgets i sin sidebar, men som udgangspunkt vises disse widgets globalt på sitet.

Det ville jeg gerne gøre op med, da jeg havde brug for at kunne placere widgets kontekstuelt ift. det primære indhold på en side. Således skrev jeg en stump kode, der gjorde det muligt at knytte widgets til givne sider og/eller kategorier, så de kun vises her, fremfor globalt.

Henover sommeren har jeg haft mulighed for at skrive koden om til et plugin med navnet Flexible Widgets, som nu er frigivet i WordPress Plugin Directory. Således håber jeg at kunne betale lidt tilbage til WordPress-fællesskabet på nettet, som giver uvurderlig hjælp når man sidder fast.

Plugin’et er især velegnet, hvis man vil bruge WordPress som content management system.

Forslag til forbedringer, spørgsmål og kommentarer modtages gerne. Smid en kommentar.
Evt. fejl, mangler og bugs kan skrives i support forummet
.

Bibliotekets website – nu på smart phones

Horsens kommunes bibliotekers website er nu tilgængeligt i en særlig udgave til smart phones med touch brugergrænseflade. Sitet ser nogenlunde således ud på iPhone:

Bibliotekets hjemmeside på en iPhoneNavigationsmenuen på en iPhoneHer vises en artikel fra bibliotekets hjemmeside på en iPhone

P.T. understøtter mobil-udgaven flg. mobilstyresystemer: Android, CUPCAKE, bada, blackberry 9800, blackberry9500, blackberry9520, blackberry9530, blackberry9550, dream, iPhone, iPod, incognito, s8000, webOS, webmate.

Mobiludgaven er baseret på WPtouch fra BraveNewCode.com. Der arbejdes endnu med en dansk oversættelse.

OPAC (søgesystem) og arrangementskalender understøttes desværre ikke, da disse er baseret på andre systemer.

OPAC i nye klæder

Screen shot af bibliotekets redesignede OPACRE-DESIGN: Horsens kommunes bibliotekers OPAC har fået en vældig overhaling. Der er blevet strammet op grafisk og farvemæssigt, og OPAC’en kan nu, takket være Ewan Adreasen fra Vejle, samsøge med bibliotekets websites.

Den nye OPAC er netop sat i drift. Er der uhensigtsmæssigheder, så giv lyd.
Se den re-designede OPAC her.

Styling af OPAC’en

- eller sådan smører man læbestift på en gris

Ét af årets store indsatsområder handler om at få vores OPAC til tilnærmelsesvis at ligne vores øvrige websider. Den opgave er jeg i gang med i øjeblikket, og det er lidt af en opgave, skulle jeg hilse at sige.

OPAC’en har en del sygdomme, men ikke mindst lider den af forældet og ringe front end kode (HTML). Det kan man desværre kun gøre noget ved i nogen grad, da en gennemgribende omskrivning af koden også vil gå ud over øvrige sites i installationen (skolernes OPAC’s). Jeg er således i færd med at omskrive OPAC’ens HTML “skelet”, men må lade detaljerne, såsom login-boks, søgeboks mm. være. Heldigvis kan jeg dog nogenlunde styre placeringen af elementerne.

I samme omgang laves der om på grafik og CSS, således at OPAC’en kommer til at fremstå i Horsens biblioteks farver, logo osv. Endvidere strammes layoutet gevaldigt op.

Følg med i udviklingen på vores test-OPAC her.

Optimering af javascript-kald i WordPress MU

Da version 1 af stylesheets og templates til Horsens kommunes biblioteker i sin tid blev kodet op, havde jeg hentet javascript-biblioteket jQuery + diverse plugins, placeret dem i wp-theme mappen og kaldt dem manuelt i theme’ets header.php script. Det var før jeg fandt ud af, at jQuery + plugins faktisk er inkluderet i WordPress og kan kaldes med indbyggede funktioner.

Horsens kommunes bibliotekers website er nu opdateret med den “rigtige” WordPress-måde at kalde javascripts på. Jeg beskriver metoden i tekniske detaljer på Netsans.dk.

Mere fleksibilitet i WordPress med én kategori pr. sidebar

Der er mange fordele ved at bruge WordPress som publikationsplatform, især hvis man har brug for en avanceret blog. I Horsens kommunes biblioteker bruger vi WordPress som decideret content management system (CMS), men her er der som udgangspunkt en del begrænsninger. Vi har nemlig behov for relevant sekundært indhold på alle sider, ikke bare en generel liste med kategorier, et arkiv og en blog roll.

Jeg har brugt en del af forsommeren på at udforske mulighederne for at udvide WordPress’ funktionalitet i den henseende, og har fundet et par løsninger, der dog endnu ikke er implementeret på websitet (det bliver de, når jeg returnerer fra barsel).

Én af dem er at oprette én sidebar pr. emnekategori. På den måde kan vi opnå relevant indhold på alle sider.
Til de teknisk anlagte: Jeg beskriver metoden i detaljer her.

Karakter fra 1-6 stjerner i blogs

Horsens kommunes bibliotekers bloggere og webskribenter har nu mulighed for nemt at give karakter fra 1-6 stjerner i anbefalende eller anmeldende blog-indlæg.

Jeg har installeret Joen Asmussens Ratings Shorttags plugin i vores WordPress MU site. Plugin’et fungerer således at der indsættes en lille kode (et shorttag), der hvor man ønsker stjernerne placeret. Tagget ser således ud hvis man vil have vist 4 stjerner ud af 6: [rating=4].

Joen har for nylig (på min opfordring) opdateret plugin’et, så der er kommet knapper i WordPress’  redigeringsværktøj. Når man klikker på knappen (se fig. herunder), indsættes koden automatisk i teksten.

TinyMCE rating-plugin-knap

Herunder ses et par eksempler på, hvad det kan bruges til:
Vold og Magt af Elsebeth Egholm: [rating=3]
Rachel getting Married: [rating=4]
The Heartless Bastards : The Mountain: [rating=5]

… og så fremdeles.

Godt stykke arbejde, Joen.

Dynamiske links til sidste måneds nyheder i OPAC’en

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:

  1. <?php
  2. function showmonth() {
  3. if (date("n") == 1) {
  4. echo date("Y")-1 . "12";
  5. } elseif (date("n") >= 2 && date("n") <= 9) {
  6. echo date("Y") . "0" . date("n")-1;
  7. } else {
  8. echo date("Y") . date("n")-1;
  9. }
  10. }
  11. ?>


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)

  1. <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.