ProcessWire

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.
Virallisesti ProcessWire tukee yhdistelmää Apache + PHP + MySQL/MariaDB, mutta epävirallisten, kolmannen osapuolen muutosten ja ohjeiden avulla sitä on mahdollista hyödyntää myös nginx- ja IIS -palvelinohjelmistoissa.
Historia.
ProcessWire nykymuodossaan (versio 2.0 ja uudemmat) perustuu löyhästi aiempaan, samaa nimeä kantaneeseen ProcessWire 1.0 -järjestelmään (2007), sekä vielä vanhempaan Dictator CMS -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.
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.
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.
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.
Muutama esimerkki:
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. 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.