Ett ovanligt kul kalenderprojekt

SDS-koncernen har tagit första steget för att implementera sitt nya kalenderbygge som körs på WordPress. Wp är kanske mest känt som bloggplattform men fungerar, som jag tidigare varit inne på, alldeles utmärkt även som ramverk för att bygga helt andra typer av webbapplikationer. En av fördelarna är att man i WordPress får ett välkänt och omtyckt backend som även erbjuder ett starkt API.

Tanken var att bygga en central kalender där all data låg på ett och samma ställe för att man sedan skulle kunna skapa fristående ”frontar” som kunde pressentera kalenderhändelser. Dessa frontar skulle kunna ha olika utseende, olika innehåll och svara på olika domäner. Sydsvenskan.se skulle ha sig egen front, och Ystadsallehanda sin osv. Inmatningen skulle ske från flera olika redaktioner och även externt.

De olika tidningarna kommer att ha varsin mer permanent kalender och enkelt kunna sätt upp tillfälliga vid behov (tex Konstrundan-kalendern) dessutom ville man ha en export av kalenderdata från WordPress direkt till tidningssidan som ligger i InDesign. Slutligen ville man ha ett API för att på ett enkelt sätt kunna koppla på externa aktörer samt enkelt bygga formulär för att låta användarna kunna mata in egna händelser.

Lösningen blev att installera en nätverksversion av wp, låta rootbloggen hålla i all kalenderdata och därefter låta front-bloggarna kunna hämta ut data ur rootbloggen och lista ut. Inte helt standard men det fungerar kalas, inte minst tack vare <?php switch_to_blog($new_blog) ?> som gör jobbet bra.

En egen post_type blev grunden för en händelse och till den kopplades sedan kategorier och taggar. Metadata hamnade där den brukar hamna (på vant wp-vis) men i de fall vi behövde göra extremt snabba uppslag lagrades metadata istället i en egen index-tabell. Ett index från GSA eller Sorl hade säkert fungerat lika bra.

Alla sajter i kalender-installation delar alltså på ett antal tabeller, taggar, kategorier osv. Därefter kan redaktören konfigurera vilka områden (kommuner) som ska vara tillgänglig via en given front, välja ett tema och köra ut en kalender. Exporter till InDesign tas ut på liknande sätt och kan skickas direkt in på de olika tidningarnas pappers-sidor.

Wp sköter hela backend som är ganska default förutom någon extra tabell. Utlistningen av händelser i fronten fick dock byggas om rejält då gamla fina ”the_loop” har dåligt stöd för att hämta data från en annan sajt än den man befinner sig på. För att få upp anständiga svarstider från den egna index-tabellen har vi lagt ett memecached-lager ovanpå alltihop, och allra längst ut tar Akamai hand om eventuella trafiktoppar.

http://kalender.kristianstadsbladet.se är först ut.

  • Pingback: Vår nya kalender – Ping

  • http://syn-ack.se/ Fredrik Broman

    Snyggt. Jag ser att sidans titel blir ”Sidan kunde inte hittas” så fort man väljer ett ”topic” i filtret.

    • Johannes

      hej, ska vara löst nu, frontdesignen kommer utvecklas ganska mycket under våren, är tanken.