Introduktion
Joomla er et open source CMS — et content management system — som bruges til at oprette, organisere og publicere indhold på hjemmesider. Platformen har eksisteret siden 2005 og er udviklet som et fællesskabsdrevet projekt. Selve softwaren kan downloades og bruges uden en traditionel licensbetaling, mens den konkrete hjemmeside stadig kan have omkostninger til design, udvikling, udvidelser, hosting og løbende vedligeholdelse.
I Joomla arbejder man blandt andet med artikler, kategorier, menuer, brugere, moduler, komponenter, plugins og templates. Det giver en ret tydelig opdeling mellem indhold, funktionalitet og præsentation. En simpel virksomhedsside kan bygges med relativt få dele, mens en mere avanceret løsning kan udvides med kataloger, formularer, medlemsområder, flersprogede funktioner eller integrationer til eksterne systemer.
Joomla minder på flere punkter om WordPress. Begge er open source CMS-platforme, begge kan installeres på eget webhotel, og begge kan udvides uden at ændre selve kernekoden. De bruger dog forskellige begreber, administrationsmønstre og økosystemer. I WordPress taler man typisk om temaer og plugins, mens Joomla blandt andet skelner mellem components, modules, plugins og templates.
Den forskel er vigtig, når en virksomhed overtager et ældre site. Et Joomla-site er ikke bare “en hjemmeside med nogle filer”. Funktioner kan være fordelt mellem flere udvidelser, template overrides, brugerdefineret kode og databaseindhold. Før en større opdatering eller flytning bør man derfor kortlægge, hvilke dele løsningen faktisk afhænger af.
Sådan bruger du det i praksis
Hvis du allerede har en Joomla-hjemmeside, er det første praktiske spørgsmål ikke, om Joomla generelt er “godt eller dårligt”. Start med den løsning, du har. Hvilken version kører den på? Hvilke extensions er installeret? Er de fortsat vedligeholdt? Er templaten standard, købt eller specialbygget? Og findes der dokumentation for de ændringer, der er lavet gennem årene?
Joomla opdeler udvidelser i forskellige typer. En component leverer typisk hovedindholdet på en side, mens modules kan placere mindre funktionelle eller indholdsmæssige blokke omkring det. Plugins reagerer på hændelser og kan ændre eller udvide adfærd, mens templates styrer den visuelle præsentation. Der findes også andre extension-typer som sprogpakker, libraries og packages. Den opdeling betyder, at man ved fejlsøgning skal vide, hvilken del der faktisk skaber funktionen.
Et eksempel kan være en kontaktside. Selve formularen kan komme fra en component, en module kan vise kontaktoplysninger i siden, et plugin kan håndtere spamkontrol, og templaten bestemmer layout og styling. Hvis siden fejler efter en opdatering, er det derfor ikke nok at konstatere, at “Joomla er gået i stykker”. Fejlen kan ligge i en tredjepartsudvidelse eller en gammel tilpasning.
Drift spiller også en stor rolle. Joomla kræver en serveropsætning med blandt andet PHP og en understøttet database. De præcise versionskrav ændrer sig mellem Joomla-versioner, så man bør altid kontrollere den officielle tekniske dokumentation før en større opgradering. Et gammelt databasesystem eller en forældet PHP-version kan være lige så stor en barriere som selve CMS'et.
Når Joomla skal kobles sammen med andre systemer, bør integrationen beskrives som en selvstændig del af arkitekturen. Data kan eksempelvis komme fra et CRM, bookingsystem eller produktkatalog. Nogle integrationer bruger et API, mens andre er bygget som specialkode eller en extension. Jo mere central integrationen er, desto vigtigere er det at kende ejerskab, dokumentation og opdateringsansvar.
Ved en ny hjemmeside bør CMS-valget komme efter behovene. Hvis virksomheden har få redaktører og almindelige informationssider, kan en meget avanceret arkitektur være unødvendig. Hvis der derimod er mange brugerroller, kompleks publicering, flere sprog og særlige arbejdsgange, kan Joomla-funktioner omkring adgangsstyring og workflows være relevante. Pointen er at vælge efter opgaven frem for efter vane.
Hvis et eksisterende Joomla-site skal flyttes til WordPress, bør man planlægge indholdsmigreringen som mere end copy-paste. URL'er, metadata, billeder, interne links, formularer, brugere og eventuelle strukturerede data skal kortlægges. Gamle adresser, som har trafik eller backlinks, bør håndteres med redirects, så et CMS-skifte ikke samtidig bliver et unødigt SEO-tab.
Eksempel
En rådgivningsvirksomhed har haft samme Joomla-site i otte år. Hjemmesiden fungerer stadig, men administrationen er langsom, nogle extensions er ikke længere vedligeholdt, og medarbejderne ved ikke, hvem der oprindeligt byggede templaten. Virksomheden overvejer derfor, om siden skal opgraderes eller erstattes.
Først bliver installationen kortlagt. Der findes cirka 180 artikler, tre sprog, to kontaktformularer, et medarbejderkatalog og en specialbygget komponent, der viser kurser. De almindelige artikler kan relativt let flyttes. Kursuskomponenten er derimod afhængig af en særlig datamodel og kan ikke bare kopieres til et andet CMS.
Virksomheden laver derfor en funktionsliste i stedet for kun en filliste. Artikler og kategorier er indhold. Kursusoversigten er en funktion. Formularerne er en funktion. Sprogstrukturen er både indhold og navigation. URL'erne er vigtige for søgemaskinerne. På den måde bliver det tydeligt, hvad en ny løsning faktisk skal kunne.
Efter vurderingen vælger virksomheden at bygge en ny professionel hjemmeside i WordPress frem for at modernisere den gamle Joomla-installation. Beslutningen skyldes ikke, at Joomla generelt er ubrugeligt. Den skyldes, at virksomhedens nuværende behov kan løses enklere med den platform og det setup, som fremover skal vedligeholdes.
Inden lanceringen eksporteres indhold, billeder og metadata. De gamle Joomla-URL'er matches mod nye adresser, og permanente redirects sættes op. Kursusfunktionen genbygges efter den nuværende arbejdsgang i stedet for at kopiere otte år gammel specialkode. Resultatet er derfor en reel modernisering og ikke bare en ny overflade på den gamle struktur.
Faldgrube
Den første faldgrube er at bedømme en platform ud fra ét dårligt site. Et langsomt eller besværligt Joomla-site kan skyldes gammel hosting, for mange extensions, dårlig kode eller manglende vedligeholdelse. Det samme kan ske på WordPress og andre CMS'er. Platformnavnet forklarer ikke alene kvaliteten.
En anden fejl er at opdatere selve Joomla-kernen uden først at kontrollere tredjepartsudvidelser og template. En større versionsændring kan ændre tekniske krav og API'er. Hvis en kritisk extension ikke understøtter den nye version, kan funktionen forsvinde, selv om kerneopdateringen i sig selv lykkes.
Pas også på med at antage, at open source betyder vedligeholdelsesfrit. Fri adgang til koden giver fleksibilitet, men nogen skal stadig installere sikkerhedsopdateringer, teste ændringer, tage backup og holde servermiljøet opdateret. Et site, der aldrig røres, bliver ikke mere sikkert af at være open source.
Ved migration er den klassiske fejl kun at fokusere på design og brødtekst. Gamle URL'er, sidetitler, metabeskrivelser, billedstier, redirects og specialfunktioner bliver let glemt. Hvis en side har opbygget synlighed gennem flere år, kan et ukontrolleret CMS-skifte koste trafik.
Endelig skal ejerskab være klart. Virksomheden bør have adgang til domæne, hosting, administratorbrugere, backup og relevante licenser. Det er særligt vigtigt, når et site gennem tiden er blevet udvidet af flere leverandører, og ingen længere ved, hvilke konti der tilhører hvem.
Godt at vide
Joomla-projektet beskriver selv platformen som fri, fleksibel, flersproget og udvidelig. Det er en nyttig beskrivelse af grundideen, men den konkrete hjemmeside afhænger stadig af valg af template, extensions og arkitektur. To Joomla-sites kan derfor være teknisk meget forskellige.
Joomla har et aktivt releaseforløb med både funktions-, fejl- og sikkerhedsopdateringer. Versionsnumre ændrer sig løbende, så en ordbogsartikel bør ikke bruges som versionskontrol. Før installation eller opgradering bør man kontrollere den aktuelle release-side og de officielle systemkrav.
Udtrykket “extension” i Joomla er bredere end “plugin” ofte bruges i daglig tale. Components, modules, plugins og templates løser forskellige opgaver. Det kan være vigtigt, når en kunde siger, at “pluginet” skal flyttes, men funktionen reelt består af en component plus flere modules og template overrides.
Joomla og WordPress behøver ikke behandles som rivaler i enhver situation. De er værktøjer med forskellige økosystemer og arbejdsgange. For virksomheden er de vigtigste spørgsmål normalt: Kan redaktørerne arbejde effektivt? Kan løsningen vedligeholdes? Kan den integreres med de nødvendige systemer? Og er der en klar leverandør- og ejerskabsmodel?
Hvis du står med et ældre Joomla-site, er en teknisk gennemgang derfor ofte mere værdifuld end en principdiskussion om CMS'er. Kortlæg indhold, funktioner, versioner, extensions, URL'er og drift. Først derefter kan man vurdere, om det bedst kan betale sig at opgradere, rydde op eller bygge nyt.
Joomla! Programmers Documentation — Build Extensions
Joomla! Programmers Documentation — Technical Requirements
Joomla! Project — Release News
Senest opdateret