ProcessWire
ProcessWire on avoimeen lähdekoodiin perustuva PHP-kielellä toteutettu sisällönhallintajärjestelmä / Content Management Framework joka on suunniteltu toimimaan Apache-palvelinohjelman päällä ja hyödyntää sisällön säilömiseen MySQL-tietokantaa. ProcessWiren kehityksessä päällimmäisenä ohjenuorana on ollut mahdollisimman joustavan ja helppokäyttöisen alustan tarjoaminen verkkosivustojen kehittäjille ja suunnittelijoille.
Virallisesti ProcessWire tukee alustana Apache + PHP + MySQL-yhdistelmää, mutta epävirallisten, kolmannen osapuolen muutosten ja ohjeiden avulla sen on todettu toimivan myös nginx- ja IIS -palvelinohjelmistojen päällä sekä tukevan oletuksena MariaDB-tietokantaa.
ProcessWire nykymuodossaan (versio 2.0 ja tätä 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.
Lähes kaikki tuotetut sisällöt (mukaan lukien käyttäjät ja oikeudet) mielletään ProcessWiren terminologiassa sivuiksi ja siten ne myös hyödyntävät jotakin järjestelmän sisäisistä sivupohjista ("Template".)
Omat sivupohjansa voidaan luoda esimerkiksi etu- ja alasivuille, uutisille, tapahtumille ja blogikirjoituksille, mikäli sivustolla tarvitaan tällaisia sisältötyyppejä ja niille halutaan asettaa omat tietokenttänsä. Ylläpitäjä voi koska tahansa luoda uusia sivupohjia, nimetä vanhoja uudelleen tai poistaa kokonaan tarpeettomaksi jääneitä. Lisäksi kuhunkin sivupohjaan liittyvien tietokenttien hallinnointi onnistuu ProcessWiren tarjoaman graafisen käyttöliittymän avulla.
Kaikki sisällöt (sivut) sijaitsevat sivuston puumaisessa sisältörakenteessa ja kaikilla näillä 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: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 puumaisessa rakenteessa ja niillä on aina oma yksilöllinen osoitteensa, eivät kaikki näistä välttämättä ole (etenkään julkisesti) tarkasteltavissa kyseisessä osoitteessa.
Mikäli tiettyä sivupohjaa hyödyntävien sivujen halutaan myös olevan selaimen avulla tarkasteltavissa, voidaan niihin liittää mallinetiedosto ("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 ohjaa käyttäjän ylläpitäjän määrittämään osoitteeseen (tämä on täysin ylläpitäjän hallittavissa.)
Sivujen esitystavan osalta ProcessWire eroaakin olennaisesti esimerkiksi WordPress-järjestelmästä: lähtökohtaisesti se ei tuota minkäänlaista merkkausta, vaan sivuston toteuttajan tehtävänä on määritellä, miten sillä tuotetut sisällöt esitetään. Tämä mahdollistaa tarvittaessa sisältösivujen esittämisen tavanomaisten web-sivujen sijaan esimerkiksi RSS-syötteinä tai XML-dokumentteina.
Tyypillisten web-sivuston osioiden tai elementtien, kuten valikoiden ja lomakkeiden, luontiin voidaan kuitenkin hyödyntää erikseen asennettavia Markup- eli merkkausmoduuleita.