En innføring i ProcessWire

Siden våren 2015 har jeg i stor grad brukt ProcessWire på nye websider. Her skal jeg kort gå gjennom hva som kjennetegner dette systemet og hvorfor jeg har valgt å bruke det.

Processwire.com

Introduksjon til ProcessWire

ProcessWire kalles både et CMS (content management system) og et CMF (content management framework). Det er gratis, har en dedikert følgerskare og et godt forum, og er åpen kildekode.

Grunnen til at CMF-begrepet brukes, er at du til en viss grad sjøl må sette opp hvordan innholdet skal styres, som gjør det til et rammeverk å bygge din egen vri av et CMS innenfor. Likevel har du en grunnflate å starte ut fra: Et installasjonsskript og et kontrollpanel du logger inn på. Ikke ulikt WordPress, for å introdusere CMS-et jeg kommer til å sammenligne mest med i teksten.

Felter og maler

ProcessWire er bygd opp på et prinsipp om at du sjøl setter opp funksjonaliteten du ønsker. Du kan laste ned moduler som tilfører en del funksjonalitet, men kun på innsiden av systemet. Hvordan modulenes funksjoner vises i bruk på selve websiden må du sette opp sjøl.

Det meste av websidens behandling av innhold setter du opp med felter og maler. En typisk mal kan være et blogginnlegg, som består av felter som tittel, ingress, tekst, merkelapper, publiseringsdato, forfatter, kategorier, med mer. Det finnes ulike typer felter, som rene tekstfelter til datofelter, med mer.

Du vil gjerne ha en unik forside som lister opp blogginnleggene, dette blir ofte da en egen mal hvor du ikke nødvendigvis bruker så mange felter, men koder inn i malens tilhørende PHP-fil at den skal liste opp blogginnleggene. Hvordan du gjør dette beskrives i ProcessWires API-dokumentasjon.

Hva om du ønsker å kunne trykke på et kategorinavn i blogginnlegget, og komme til en side som viser innlegg knyttet til den kategorien. Lag en egen mal og skriv inn litt kode i malens PHP-fil.

Hvorfor ikke WordPress?

Som du skjønner krever dette en del ekstra arbeid, sammenlignet med å sette opp et ferdig system som WordPress. Mest utbytte mener jeg du får dersom du har behov eller en sammensetning av flere behov, som WordPress ikke kan tilby på en tilstrekkelig måte. Hva som er tilstrekkelig er da en vurderingssak.

Et eksempel kan være om du har en webside hvor du vil sette opp en kombinasjon av blogg, arrangementer, produktsider, ansattliste, nyheter, kontaktside, med mer.

Igjen så er det sånn at WordPress kan tilby det meste av dette i form av innstikk. Som tar meg over på det som er min egen begrunnelse til hvorfor jeg likevel har valgt ProcessWire.

Kontroll

Det handler om kontroll, og til dels om sikkerhet. Hvor jeg med WordPress alltid måtte forholde meg til systemets rammer, og funksjonaliteten ferdige innstikk kunne tilby, velger jeg med ProcessWire å bygge akkurat det jeg vil ha. Verken mer eller mindre.

ProcessWire har en systemkjerne som tilbyr denne muligheten til å bygge det du vil. Og så lenge sikkerheten til dens kjerne er god, vil det du bygger være like sikkert. Dette kan ikke alltid WordPress innstikk skilte med. Hva så med ProcessWires moduler? De er en utvidelse av kjernen, på kjernens premisser, og har dermed den samme sikkerheten som kjernen.

Kontroll over hvordan noe ser ut har også vært med i vurderingen min. Med innstikk i WordPress kom det gjerne innhold ut på siden som hadde sine egne JavaScript og CSS-kode. Og for å få kontroll over disse måtte jeg gjerne inn og blokkere disse ressurserene, for så å tilføye igjen det jeg hadde bruk for. Da velger jeg heller å ha full kontroll fra grunnen av og opp.

Det blir ryddigere å kun legge til, enn først å fjerne og så legge til.

Andre webløsninger

Det finnes selvsagt andre løsninger å velge i tillegg til ProcessWire og WordPress. Drupal og Joomla er populære, og var et par jeg leste om før eg valgte ProcessWire. Valget falt omsider på dette systemet fordi det i tillegg til å ha store muligheter for egen tilpasning, bygde på det enkele konseptet med maler og felter.

API-et er ikke spesielt komplisert, heller ikke for meg som anser meg selv som markup-koder først og fremst (HTML og CSS), og kun som nybegynner på områder som PHP og JavaScript.

Skjermbilde fra Filmdagboks back end

Filmdagbok — et eksempel

Våren 2015 overførte jeg min filmblogg, Filmdagbok, fra WordPress til ProcessWire. Dette var mer et eksperiment enn av nødvendighet. Men med over 2000 innlegg var det mye arbeid å gjøre endringer og ha full kontroll over innholdet, så jeg ønsket et system hvor dette kunne håndteres annerledes.

Overflyttingen bestod av følgende trinn

  1. Eksportering av tekstinnhold fra WordPress.
  2. Kopiering av bildeinnhold fra WordPress.
  3. Oppsett av felter og maler i ProcessWire.
  4. Importering av tekstinnhold til ProcessWire.
  5. Importering av bildeinnhold til ProcessWire.
  6. Design av nye sider, det vil si malene i ProcessWire.

Et blogginnlegg i WordPress bestod av

  • Tittel
  • Tekst
  • Merkelapper (rangering og regissører blandet)
  • Kategorier
  • Publiseringsdato
  • Et tekstfelt for IMDb-ID

Derfor satte jeg følgende opp maler i ProcessWire

  • Blogginnlegg
  • Kategorier
  • Rangeringer
  • Regissører
  • Med flere

I stedet for å skrive inn kategoriene som tekst inn i et blogginnlegg i ProcessWire, er blogginnlegget knyttet til kategorisider ved bruk av et sidefelt. I prinsippet likt WordPress. Og i stedet for å ha kun et sidefelt for merkelapper, opprettet jeg egne sidefelter for rangeringer, regissører og etter hvert også skuespillere og generelle merkelapper.

Etter å ha satt opp strukturen importerte jeg eksportfilene jeg fikk fra WordPress til ProcessWire. Her gjorde jeg første en del søk og erstatt, og rensket innholdet. Samtidig som jeg for eksempel byttet ut WordPress-innleggenes tilknytning til kategorier med tilknytning til kategorisidenes ID i ProcessWire.

Kort fortalt var det noe, men relativt lite manuelt arbeid, da mesteparten kunne gjøres ved å bruke ProcessWire sitt API til å lage dedikerte importer.

I senere tid knyttet jeg opprettelsen av nye innlegg til MyAPIFilms. Så hver gang jeg skulle skrive om en ny film, fylte jeg ut en IMDb-ID i et felt, og ProcessWire importerte filmens tittel, regissør, skuespillere, lanseringsår og sjangrer. Dermed gjenstod det bare for meg å skrive om filmen.

Resultatet ved publisering av dette innlegget var en blogg med 4318 innlegg, hvor cirka 3000 har en slags anmeldelse i seg. Disse var knyttet opp mot 247 merkelapper, 2712 regissører, 156 139 skuespillere, 5 rangeringer, 25 sjangrer, 4 typer og 260 land.

Hvilke filmer hadde jeg sett med Will Ferrell i? Skuespillersiden til Will Ferrel på Filmdagbok gav meg svaret.

{{ message }}

{{ 'Comments are closed.' | trans }}