ProcessWire

ProcessWire
Kehittäjä Ryan Cramer
Kehityshistoria
Vakaa versio 2.7.2 ()[1] ja 3.0.227 ()[2]
Kehitystilanne Aktiivinen
Tiedot
Ohjelmistotyyppi Sisällönhallinta
Alusta Alustariippumaton
Ohjelmointikielet PHP
Lisenssi MPL
Aiheesta muualla
processwire.com
Infobox OK

ProcessWire on avoimen lähdekoodin sisällönhallintajärjestelmä ja Content Management Framework. Ohjelma on toteutettu PHP-kielellä, sitä suoritetaan Apache-palvelinohjelman päällä ja sisältö tallennetaan MySQL-tietokantaan. ProcessWiren kehityksessä tärkeimpänä lähtökohtana on ollut tarjota mahdollisimman joustava ja helppokäyttöinen alusta verkkosivustojen kehittäjille ja suunnittelijoille.[3]

Virallisesti ProcessWire tukee yhdistelmää Apache + PHP + MySQL/MariaDB[4], mutta epävirallisten, kolmannen osapuolen muutosten ja ohjeiden avulla sitä on mahdollista hyödyntää myös nginx-[5] ja IIS[6] -palvelinohjelmistoissa.

Historia

ProcessWire nykymuodossaan (versio 2.0 ja uudemmat) perustuu löyhästi aiempaan, samaa nimeä kantaneeseen ProcessWire 1.0[7] -järjestelmään (2007), sekä vielä vanhempaan Dictator CMS[8] -järjestelmään (2003.)

Kaikkien kolmen järjestelmän väliltä löytyy samankaltaisia piirteitä niin toimintalogiikasta, arkkitehtuurista, kuin käyttökokemuksenkin osalta, minkä lisäksi kaikkien kolmen pääkehittäjänä on toiminut yksi ja sama henkilö — Ryan Cramer. ProcessWiren 2:n edeltäjiä ei kuitenkaan koskaan virallisesti julkaistu avoimena lähdekoodina.[3]

Vuonna 2012 sisällönhallintajärjestelmiä käsittelevä verkkolehti CMS Critic valitsi ProcessWiren "kriitikon valintana" vuoden parhaaksi ilmaiseksi sisällönhallintajärjestelmäksi Critic's Choice CMS Awards -kilpailussaan.[9]

Erikoispiirteitä

Lähes kaikki tuotetut sisällöt (mukaan lukien käyttäjät ja oikeudet) ovat ProcessWiren terminologiassa sivuja, jotka hyödyntävät jotakin järjestelmän sisäisistä sivupohjista ("Template".)

Sisäänrakennettujen sivupohjien muokkaamisen lisäksi järjestelmään on mahdollista luoda uusia sivupohjia sivustokohtaisesti, mikä mahdollistaa kokonaan uusien sisältötyyppien lisäämisen ja käsittelyn. Ylläpitäjä voi koska tahansa luoda uusia sivupohjia, nimetä vanhoja sivupohjia uudelleen, tai poistaa tarpeettomiksi jääneitä sivupohjia. Kuhunkin sivupohjaan liittyvien tietokenttien hallinnointi tapahtuu ProcessWiren tarjoaman graafisen käyttöliittymän avulla. [10]

Sisältörakenne

Kaikki sisällöt (sivut) sijaitsevat sivuston puumaisessa sisältörakenteessa, ja kaikilla niistä on oletuksena oma, hakukoneystävällinen, sivun nimeen perustuva polkunsa. Tältä osin ProcessWire eroaa esimerkiksi Drupalista, jossa sisältö ("nodet") oletuksena sijaitsevat numeerisen tunnisteen perusteella määräytyvän polun alla[11].

Muutama esimerkki:

  • sivuston etusivu löytyy aina osoitteesta "/", kun taas sivu nimeltä "About", joka on sijoitettu suoraan etusivun alle, löytyy oletuksena polusta "/about/" (polku luodaan sivua lisättäessä oletuksena nimen perusteella, mutta se on myös mahdollista vaihtaa joko heti tai myöhemmässä vaiheessa)
  • hallintaosio löytyy oletuksena polusta "/processwire/", ja käyttäjähallintaosio polusta "/processwire/access/users/"
  • yksittäinen käyttäjä nimeltä "Admin" löytyy oletuksena käyttäjähallinnan alta, polusta "/processwire/access/users/admin/"

Sivupohjat

Kuhunkin sivuun liittyy aina jokin sivupohja, ja kuhunkin sivupohjaan puolestaan liittyy aina sivuston hallintatyökalujen avulla käsiteltävää metatietoa. Näihin metatietoihin lukeutuu esimerkiksi tieto sivupohjaan liitetyistä kentistä sekä sivupohjakohtaisista oikeusmäärityksistä, jotka kertovat millä rooleilla on esimerkiksi luku- ja kirjoitusoikeudet kyseisen sivupohjan omaaviin sivuihin.

Vaikka kaikki sisällöt sijaitsevatkin sivuston sisältöpuussa ja niillä on omat yksilölliset osoitteensa, eivät kaikki sisällöt välttämättä ole julkisesti tarkasteltavissa kyseisessä osoitteessa. Mikäli sivulla ei ole ns. sivupohjan tiedostoa, sitä ei näytetä koskaan julkisesti. Lisäksi kunkin sivupohjan osalta sivujen katseluoikeus voi olla rajattu tietylle käyttäjäroolille, ja kunkin yksittäisen sivun tila voi olla julkaisematon, jolloin sivut näkyvät vain tunnistautuneille käyttäjille.

Esitystapa

Mikäli tiettyä sivupohjaa hyödyntävien sivujen halutaan myös olevan selaimen avulla tarkasteltavissa, voidaan niihin liittää sivupohjan tiedosto ("Template file"), joka määrittää, miten kyseisen sivupohjan omaavat sivut loppukäyttäjälle näytetään.

Mikäli sivupohjaan ei liity tiedostoa (oletuksena näin on esimerkiksi käyttäjien ja oikeuksien osalta), sen omaavat sivut eivät ole suoraan selaimen kautta tarkasteltavissa. Tällöin niihin liittyvään osoitteeseen siirtyminen palauttaa joko 404-virhesivun, ohjaa kirjautumisnäkymään, tai näyttää käyttäjälle määrätyn muun sivun sisällön. Toiminta tällaisessa tilanteessa on sivuston ylläpitäjien määriteltävissä sivupohjakohtaisesti.

Sivujen esitystavan osalta ProcessWire eroaa olennaisesti esimerkiksi WordPress-järjestelmästä: lähtökohtaisesti se ei tuota merkkausta, ja sivuston toteuttajan tehtävänä onkin määritellä, miten ProcessWiren avulla tuotetut sisällöt esitetään.[3] Tämä mahdollistaa sekä sivuston rakenteen ja ulkoasun vapaan mukautuksen, tarvittaessa myös esimerkiksi sisältösivujen esittämisen tavanomaisten web-sivujen sijaan vaikkapa RSS-syötteinä tai XML-dokumentteina.

Tyypillisten web-sivuston osioiden tai elementtien, kuten valikoiden ja lomakkeiden, luontiin voidaan hyödyntää erikseen asennettavia Markup- eli merkkausmoduuleita[12].

Ominaisuuksia

  • jQuery-vaikutteinen[13] helppokäyttöinen (sisäinen) API mahdollistaa järjestelmään syötettyjen sivujen ja muiden sisältöjen noutamisen, käsittelyn, tallentamisen, sekä poistamisen[14][15].
  • Ylläpitonäkymän kautta (tai vaihtoehtoisesti ohjelmallisesti API:n avulla) luotavat tietokentät, joiden määrää ei ole rajoitettu ja joista jokainen voi liittyä yhteen tai useampaan sivuun tarpeen mukaan (kenttien uudelleenkäyttäminen.)
  • Modulaarinen rakenne[3] — jopa ProcessWiren sisäänrakennetun sisällönhallintajärjestelmän toiminnot on toteutettu ProcessWire-ohjelmistokehyksen päälle asennettujen sovellusmoduulien avulla.
  • Sivupohjien toteuttamisessa hyödynnetään PHP-kieltä oman mallinejärjestelmän sijaan. Kolmannen osapuolen moduulien avulla tarjolla on kuitenkin tuki esimerkiksi Twig-[16] ja Smarty[17] -mallinejärjestelmille.
  • Sivuston oikeuksien hallinnointi on toteutettu sivupohjien tasolla roolipohjaisesti. Lisäksi oikeudet periytyvät puurakenteessa alaspäin, ellei seuraaviin sivuihin liittyvillä sivupohjilla ole omia oikeusasetuksia.
  • Mahdollisuus ylläpitää useita sivustoja sekä verkkotunnuksia yhden julkaisujärjestelmäasennuksen avulla[18].
  • Hallintaosion osoitteen vaihtaminen ja koko hallintaosion ulkoasun sekä rakenteen muokkaaminen tai korvaaminen jollain valmiista vaihtoehdoista.
  • Mahdollisuus sivujen välisten relaatioiden — eli liitosten — luomiseen Sivu-tyyppisiä tietokenttiä hyödyntäen.
  • Sisäänrakennettu tuki monikielisille sivustoille [18][19].

Lähteet

  1. Release 2.7.2, (viitattu ). Tieto on haettu Wikidatasta.
  2. Release 3.0.227, (viitattu ). Tieto on haettu Wikidatasta.
  3. a b c d Josette Rigsby: ProcessWire Aims to Simplify Web CMS CMSWire. 22.02.2011. Josette Rigsby. Viitattu 09.12.2011. (englanniksi)
  4. ProcessWire software requirements processwire.com. Viitattu 15.2.2020. (englanniksi)
  5. ProcessWire on NGINX ProcessWire Support Forums. 26.6.2011. Viitattu 16.6.2013. (englanniksi)
  6. ProcessWire on Windows7/2008 Server with IIS WebServer ProcessWire Support Forums. 18.5.2013. Viitattu 16.6.2013. (englanniksi)
  7. Ryan Cramer: ProcessWire - Introduction ryancramer.com. Ryan Cramer. Arkistoitu 4.11.2011. Viitattu 09.12.2011. (englanniksi)
  8. Dictator CMS - Total Content Management Control dictatorcms.com. Viitattu 09.12.2011. (englanniksi)
  9. Critic's Choice for Best Free CMS goes to... Mike Johnston. (englanniksi)
  10. What's unique about ProcessWire CMS processwire.com. Viitattu 15.2.2020. (englanniksi)
  11. About nodes drupal.org. 26.9.2012. Viitattu 16.6.2013. (englanniksi)
  12. Markup Generation processwire.com. Viitattu 16.6.2013. (englanniksi)
  13. @smashingmag (Smashing Magazine Twitter-palvelussa). 20.10.2011. Viitattu 09.12.2011. (englanniksi)
  14. About the ProcessWire API processwire.com. Viitattu 15.2.2020. (englanniksi)
  15. Marc Carson: Processwire post-launch notes friendlyskies.net. 27.10.2011. Marc Carson. Viitattu 09.12.2011. (englanniksi)
  16. Twig Template Engine Output modules.processwire.com. Viitattu 16.6.2013. (englanniksi)
  17. Smarty Templating modules.processwire.com. Viitattu 16.6.2013. (englanniksi)
  18. a b ProcessWire 2.2 [soft launch] (Version 2.2 julkaisutiedote) processwire.com. 17.1.2012. Viitattu 11.2.2011. (englanniksi)
  19. Multi language support with ProcessWire CMS processwire.com. Viitattu 15.2.2020.

Aiheesta muualla

  • ProcessWiren virallinen sivusto (englanniksi)
  • ProcessWire GitHub-palvelussa (englanniksi)
  • Projektin esittely ja tilastoja Open Hub -palvelussa (englanniksi)
  • Esittely socPub-sivustolla (englanniksi)
  • Version 2.1 julkaisutiedote CMS Critic -sivustolla (englanniksi)
  • Esittely Tyssen Design -suunnittelutoimiston blogissa (englanniksi)