ProcessWire: CMS open source per creare siti web personalizzati

ProcessWire è un Content Management Framework (CMF) e Content Management System (CMS) open source e gratuito. Il tool lascia ampia libertà di configurare il sito web e presenta un back end strutturato accuratamente e facile da gestire. Anche se non gode della stessa popolarità del gigante dei CMS WordPress o dei suoi concorrenti Joomla!, Drupal e TYPO3, questo software si distingue dai suoi competitor per alcuni aspetti vantaggiosi. Per questa ragione ProcessWire merita un'analisi più attenta.

ProcessWire: storia

Il software era in fase di sviluppo già dal 2003 con il nome Dictator CMS quando nel 2007 Ryan Cramer lo lanciò sul mercato con il nome ProcessWire 1.0. Entrambe le versioni non erano ancora open source, sebbene ci fossero aspirazioni in tal senso. Nel 2010, infine, fu rilasciata l'edizione 2.0 con Mozilla Publica License (MPL) 2.0. La versione 2.3 fu per gli sviluppatori una pietra miliare, dal momento che fu il primo release del software al cui sviluppo aveva collaborato l'intera community. La versione 3.0 del 2016 è l'ultimo importante release. Grazie a una comunità molto attiva sono oggi disponibili dei pacchetti localizzati per alcune lingue come tedesco, francese, spagnolo e italiano.

Le componenti principali del CMS ProcessWire

Il back end di ProcessWire è ben strutturato e l'interfaccia utente è decisamente user friendly. Le pagine web vengono costruite a partire da singoli elementi, chiamati campi (fields), a ciascuno dei quali vanno assegnate una funzione e una posizione all'interno della pagina. La struttura della pagina viene definita sulla base di un template, nel quale si possono posizionare i campi a piacimento. Quando assegnate le pagine a un determinato template, il sito web le presenta con la disposizione prescelta.

Template e relazione tra le pagine

L'immagine qui sotto mostra il back end della versione demo di ProcessWire disponibile online. Nella sezione "Setup" trovate il template editor: il template "architect" definisce le proprietà della pagina (layout, textbox, campi di input ecc.) per le 216 pagine del dominio.

Cliccando sul template aprite l'editor e iniziate a lavorarci. Nella scheda "Basics" potete modificare i campi o aggiungerne di nuovi, gestire i diritti d'accesso e la gerarchia delle pagine, gli URL, la cache e le impostazioni relative a tag e icone; inoltre potete importare i campi da altri temi o eliminare i template superflui.

Nella scheda "Family" potete definire le relazioni tra le pagine interne. Nella costruzione di un sito o di un'applicazione con ProcessWire, ad ogni componente viene assegnata una pagina (page). Ogni pagina dispone a sua volta di sottopagine. Le relazioni tra le pagine sono presentate da una struttura ad albero simile al Document Object Moodel (DOM). Ryan Cramer, il creatore di ProcessWire, si è ispirato al modello molto semplice e intuitivo di jQuery. Per i programmatori non esistono tuttavia limiti alla profondità o alla suddivisione della struttura.

Poiché ad ogni parte del vostro sito viene assegnata una pagina, il CMS lavora con pagine nascoste (hidden pages). Queste sono sempre nascoste, appunto, e utilizzate come memoria per il contenuto di altre pagine, oppure regolano la navigazione. Una terza possibilità è che compaiano in alcune interazioni tra gli utenti e il sito, come nel caso del messaggio di errore 404 che viene mostrato quando inserite un URL non valido.

API stabile

La stabile interfaccia di programmazione (API, abbreviazione di Application programming interface) è il vanto di questo CMF. Vista l'impalcatura modulare di ProcessWire, il sistema necessita di interfacce interne attraverso le quali gli utenti possano trovare i dati, modificarli o crearne di nuovi. L'elaborazione dei dati avviene attraverso variabili d'interfaccia e selettori. Nello script è possibile concatenare i comandi necessari e posizionarli in una riga. Oltre ai moduli integrati, l'API consente un fluido scambio di dati con plug-in di parti terze.

Campo

Le pagine consistono in campi, che hanno a propria volta una particolarità: a differenza di Wordpress, ad esempio, non ci sono sezioni di input grandi e uniche in cui inserire interamente il contenuto in una singola pagina. Potete infatti personalizzare tutti i campi in base alle vostre esigenze e combinarne diversi sulla pagina, che si tratti di semplici elementi di testo o video. Questi campi vengono assegnati ai template di ProcessWire, che potete inserire nel CMS con la funzione drag-and-drop sia nel caso di semplici file HTML sia di applicazioni PHP complesse. La maggior parte dei programmatori utilizza i template con tag PHP per visualizzare contenuti dinamici.

Il funzionamento dei template di ProcessWire può essere spiegato così: gli utenti caricano una pagina, il CMS richiama il template che le è associato, assegna le variabili API al template e lo esegue come script PHP.

Moduli

Il programma principale contiene già alcuni plug-in stabili. Ci sono moduli per:

  • Temi admin
  • Antispam Akismet per la sezione commenti
  • Plugin per la configurazione dei campi (checkbox, immagini, opzioni di selezione, titoli di pagina ecc.)
  • Configurazione delle cartelle
  • Immagini
  • Campi di input (pulsanti, email, nome, selettore, textarea ecc.)
  • jQuery
  • Lingue
  • Hooks
  • Markup
  • Pagine
  • Processi (editing delle pagine, autorizzazioni, editing dei campi etc.)
  • Sessioni
  • Gestione e aggiornamenti del sistema
  • Formattazione testi

Il metodo di lavoro può essere modificato tramite gli hooks. Invece di modificare il codice sorgente, vi collegate con un plug-in o un tema in una specifica sezione del codice. Trovate moduli aggiuntivi e open source, caricati dai membri della community, nella directory dei plug-in. Tra gli altri ricordiamo il Form builder, un tool che facilita la creazione dei formulari, e ProFields, che permette di elaborare una grossa quantità di dati in pochi campi.

Vale la pena di menzionare anche la cache: uno strumento molto utile per velocizzare la creazione delle pagine sia nella versione già inclusa che in quella professionale a pagamento (il ricavato delle vendite di ProCache viene interamente reinvestito nello sviluppo).

ProcessWire: requisiti

Requisiti minimi

  • Web server su base Unix o Windows
  • Apache (o un equivalente come NGINX o IIS che includa un sostituto di .htaccess, ad esempio web.config su IIS)
  • mod-rewrite attivo su Apache
  • Apache deve supportare .htaccess
  • PHP a partire dalla versione 5.3.8 con supporto di banca dati PDO
  • Libreria GD-2 per PHP

Consigliati:

  • Versione più stabile e recente di PHP
  • Tag PHP corti attivati
  • Supporto di multibyste string compilato con PHP (--enable-mbstring)

ProcessWire vs. WordPress: il confronto

Entrambi i software sono comparsi per la prima volta sulla scena nel 2003. Wordpress è il gigante dei CMS e, secondo gli ultimi dati, occupa una fetta di mercato pari a circa il 60%. Gli utenti che hanno scelto ProcessWire sono invece solo lo 0,1%. Una differenza sostanziale tra i due tool è che WordPress è molto semplice da installare e utilizzare, oltre a non richiedere una conoscenza pregressa di HTML e PHP.

È un po' come la musica: scrivere una canzone di successo, ma banale, non richiede tanto tempo o talento. Si segue uno schema esistente, si eliminano i difetti di intonazione con l'auto-tune e si manda il pezzo in radio, dove migliaia di persone senza competenze particolari lo ascolteranno di continuo. La musica più originale o complessa può invece essere più interessante, ma ci vogliono maggiori abilità e conoscenze per comporla e apprezzarla.

Facilità d'uso

ProcessWire dispone di alcune funzioni che rendono più comoda la vita di web designer e sviluppatori, come ad esempio l'upload del file tramite drag-and-drop. Anche l'installazione non comporta un tempo eccessivo. Ma la libertà di poter progettare un sito web come si vuole richiede una conoscenza dei linguaggi di programmazione. Il target di ProcessWire è perciò diverso da quello di WordPress: il leader del mercato promette installazione e setup in meno di cinque minuti e un quadro di riferimento costituito da temi e template pronti, in modo che anche i profani possano aprire in poco tempo un blog dall'aspetto più che decente.

Con ProcessWire, lo sviluppatore del sito deve associare i template e le pagine. In pratica è necessario costruire il framework del sito autonomamente, compito da web designer o programmatori professionisti o almeno con un certo grado di esperienza. L'utente finale del sito già pronto non ha bisogno di grandi competenze: una volta implementato il framework anche chi è poco avvezzo all'informatica può aggiornare il sito e aggiungere nuove pagine senza problemi. Una funzionalità molto comoda è Out-of-the-box, che consente di creare più domini localizzati per un sito web. Grazie ai pacchetti di lingua si può anche lavorare nel back end nella lingua di destinazione. WordPress non facilita l'integrazione linguistica fino a questo punto.

Ottimizzazione SEO

Chi cre un sito web desidera naturalmente che sia facile da trovare in rete. Sia ProcessWire sia WordPress vi supportano in questo senso facilitando l'ottimizzazione delle pagine. Il programma principale ottimizza gli URL per i crawler dei motori di ricerca e per i lettori. La struttura ad albero di ProcessWire è molto adatta per la creazione di una gerarchia chiara. Tuttavia la numerazione può essere un problema. Le pagine prive di contenuto, che rimandano soltanto ad altre pagine, non offrono nulla ai crawler e nel peggiore dei casi li fanno girare in loop. I programmatori di ProcessWire consigliano a questo proposito di preparare pagine di errore 404 per eventuali problemi di caricamento. La cache aumenta la velocità di caricamento. Lo stesso obiettivo è raggiungibile in WordPress con l'impiego di un'estensione.

Tra i plug-in di WordPress trovate molti tool per l'ottimizzazione. Yoast SEO ad esempio mette a disposizione un pacchetto che comprende importanti funzionalità per l'integrazione dei social media, l'ottimizzazione dei metadati e l'analisi del sito. Con il plug-in Google XML Sitemaps potete creare una mappatura del sito. Anche ProcessWire fornisce un modulo per questo scopo. Una soluzione completa consiste nell'estensione MarkupSEO: questo strumento implementa una scheda SEO nella sezione "Pages", dove vengono inseriti titolo, immagini anteprima e altri metadati. Nella sezione superiore è disponibile una preview di Google che si aggiorna insieme all'elaborazione. ProFields: Autolinks collega automaticamente le parole chiave selezionate a determinati URL. Il modulo ProcessWire Accessibility Tools, invece, aumenta l'accessibilità del vostro sito web.

Consiglio

Volete saperne di più su WordPress? In questo articolo vi mostriamo cosa potete fare con WordPress, oltre ai blog.

Struttura base e plug-in

Come già accennato, ProcessWire è strutturato ad albero e praticamente non ha limiti di ampliamento. Per la programmazione del sito avete a disposizione un software stabile e leggero. L'interfaccia di programmazione consente di integrare i moduli che servono al progetto, alcuni dei quali sono già contenuti nel software al momento dell'installazione. Anche le applicazioni sviluppate dalla community si basano sul software open source e vengono testate dai lead developer prima di essere pubblicate. Il programma è considerato un Content Management Framework in quanto fornisce gli strumenti per creare il vostro Content Management System.

WordPress è basato sul software b2, originariamente sviluppato per i blog. Tuttavia è anche possibile impostare una gerarchia tra le pagine e utilizzarlo come CMS. L'API è stata spesso criticata: a differenza di ProcessWire, in cui software base e moduli si integrano, la grossa community di WordPress aggiunge di continuo nuovi plug-in, che possono anche essere poco sicuri, sovrapporsi o essere addirittura in competizione tra loro. Manca infatti una chiara demarcazione di aree di competenza e responsabilità. Inoltre, a causa dell'elevato numero, non è possibile testare la compatibilità di tutte le applicazioni: nel caso degli aggiornamenti, spesso automatici, le nuove versioni dei plug-in possono causare la limitazione di altre funzioni del sito web passate inosservate.

Un'altra caratteristica di ProcessWire è che tutte le componenti del sito, visibili o meno, sono pagine. Potete quindi disporre di campi dati su misura dei metodi di input. Il CMS per blog WordPress, al contrario, vi permette di lavorare in un unico grande campo di inserimento e avete solo pochi campi dati per la categorizzazione.

Sicurezza

WordPress è conosciuto e apprezzato a livello internazionale, cosa che ovviamente attrae l'attenzione degli hacker. A marzo 2018 il CVE (Common Vulnerabilities and Exposures) ha elencato in tutto 273 aree di vulnerabilità nelle applicazioni WordPress, molte delle quali decisamente critiche. Inoltre il numero dei punti deboli è più che raddoppiato rispetto al 2017. Il metodo del Cross-site scripting (XSS) è in cima alla lista degli attacchi cibernetici più frequenti. WordPress lavora costantemente agli update di sicurezza, ma molte pagine utilizzano una grande quantità di plug-in che devono essere a loro volta aggiornati, nonostante talvolta gli amministratori se ne dimentichino. Anche i temi sovraccaricati dai plug-in hanno spesso gravi lacune di sicurezza.

Di fronte al gigante Wordpress, ProcessWire continua a testare i moduli della comunità prima della distribuzione, nonostante la collaborazione open source. La libreria è quindi più piccola, ma senza dubbio più gestibile e con plug-in relativamente sicuri. Inoltre ProcessWire lavora di continuo agli update di sicurezza.

ProcessWire WordPress  
Sistema operativo Multipiattaforma Multipiattaforma
Categoria CMF, CMS Software per blog, CMS
Licenza Mozilla Public License 2.0 GNU GPLv2+
Web server supportati Web server basati su Windows o Unix con supporto di Apache, PHP e MySQL Web server con supporto di MySQL e PHP
Banche dati supportate MySQL, MariaDB 5.0.15 o successivo MySqL, MariaDB
Linguaggio dei template PHP PHP
Back end basato su browser
Hosting no
Strumenti per l'ottimizzazione SEO
Web design responsivo
Sicurezza Il piccolo gruppo di utenti non è molto interessante per gli hacker La grande diffusione del programma attira gli hacker
  Solo plug-in testati Alcuni plug-in non sono sicuri
    Aggiornamenti regolari del sistema
Gestione utenti Multi-tenant, gruppi di utenti, limitazione dei diritti degli utenti, controllo di abilitazione a più livelli anche per singoli campi Multi-tenant, gruppi di utenti, limitazione dei diritti degli utenti, controllo delle abilitazioni
Servizi Script PHP con struttura ad albero, Editor WYSIWYG , anteprima, label, ricerca, back nd con temi admin Editor WYSIWYG , sistema per blog, anteprima, ricerca, tag
Elementi multimediali Da classificare liberamente nel campo dati Con estensione
Disponibilità in lingue diverse Semplice gestione "out-of-the-box" Con estensione/traduzioni integrate per back end e front nd
  URL localizzati  
Documentazione
Tutorial e community ✔✔ ✔✔
Adatto per Siti web complessi con requisiti di design particolari Blog
  Siti web a più lingue Pagine dal contenuto limitato, ma che necessitano di cambiamenti di design frequenti e rapidi
  Cataloghi online Piccole aziende o privati con siti web informativi o rappresentativi
  Siti web piccoli e soggetti a poche modifiche di design Casi in cui non si voglia sostenere un costo eccessivo per la programmazione
  Programmazione: professionisti ed esperti Principianti ed esperti
  Utilizzo: adatto ai principianti, previo corso introduttivi  

Tutorial: primi passi con ProcessWire

Breve guida all'installazione

Esistono diverse modalità di download del software, ma la più comune è attraverso GitHub. Dopo aver scaricato il file, unzippatelo, caricatelo su un server e continuate l'installazione online. Il programma effettua un controllo di compatibilità e riconosce eventualmente la mancanza di requisiti di base. Se non l'avete ancora fatto, abilitate PHP nel file .htaccess e inserite nel database della sezione "Admin" le informazioni richieste, che trovate presso il vostro host. Infine il CMF richiede un indirizzo email per l'invio dei dati di accesso. Una volta ricevuti, potete iniziare immediatamente a utilizzare il programma.

Consiglio

ProcessWire non offre alcun servizio di hosting. Se avete bisogno di un host, potrebbero interessarvi le offerte di 1&1 IONOS.

Primi passi nel back end

Dopo il primo login potete iniziare con un template vuoto, da configurare a vostro piacimento, che trovate nella sezione Modules > Site Profiles > Process Wire Blank Profile. In alternativa potete installare uno dei template già configurati, così da avere un primo approccio con la costruzione e gestione del back end del vostro sito web. Esiste anche la possibilità di creare dei template per l'area "Admin" o da caricare come moduli: ad esempio, potete creare un CMS su misura per le esigenze dei futuri amministratori del sito.

Campi su misura

Le schermate seguenti sono tratte dalla versione demo di ProcessWire. Lo screenshot sopra mostra il back end con la struttura ad albero delle pagine. Una volta configurata la pagina, gli utenti del CMS possono muoversi solo all'interno dell'area. Ma torneremo su questo più avanti: per prima cosa andate nella scheda "Setup", selezionate la categoria "Fields" ecliccate su "Add New", procedendo con la creazione di un nuovo campo come mostrato nell'immagine seguente.

A questo punto determinate tutte le proprietà del campo come nome, tipo e label, oltre a checkbox, data, testo e immagine. Salvate il nuovo campo e aggiungetene di nuovi fino a raggiungere il numero desiderato per il sito; naturalmente potete aggiungere altri campi in seguito. Nella schermata seguente vedete le impostazioni del nuovo campo: il nome è TestTest e il tipo è textarea (campo per inserimento testo); la label va inserita di seguito, e nel caso in cui non venga fatto le sarà assegnato automaticamente il nome del campo.

Struttura stabilita dai template

Andate ora nella categoria "Templates" all'interno della scheda "Setup". I template garantiscono che le pagine con le stesse funzioni abbiano un aspetto uniforme. Per cominciare cliccate su "Add New Template." Potete caricare le specifiche del template da un file PHP presente sul vostro server, scriverle direttamente o duplicare i campi utilizzati da un altro template (come il Basic Template dai download) per un nuovo tema. Selezionate un template dal menu a tendina "Duplicate fields used by another template." Il nuovo template conterrà i campi duplicati dall'originale, mantenendo tutti quelli già presenti.

N.B.

Assicuratevi di assegnare un nome chiaro, in modo che per gli utenti finali sia più semplice gestire il sito.

Ora che avete creato un template, dovete definirlo in modo più dettagliato. La versione demo di ProcessWire mostra le possibili applicazioni dei suoi temi utilizzando come esempio un sito di grattacieli. Il template City, mostrato nella schermata sottostante, utilizza in tutto 70 sottopagine. La prima scheda, "Basics", permette di inserire i campi che avete creato nel template. Il template City ha tre campi: Title (tipo: PageTitle), Abbreviation (tipo: Text) e Map (tipo: MapMaker). Tutte le pagine di questo template dispongono di un titolo per l'header, di un titolo abbreviato opzionale e di una mappa.

I campi vengono disposti tramite drag-and-drop. Per aggiungerne di nuovi, utilizzate il menu a tendina "Add Field" o createli direttamente nel template. La Label definisce in modo più specifico il tema e nella sezione "Usage" potete vedere tutte le pagine che utilizzano il template.

Nella sezione "Access" definite i diritti d'accesso alle pagine del template. Le opzioni disponibili sono molte: potete ad esempio creare pagine di forum visibili solo agli utenti loggati o che siano accessibili a tutti, ma riservare agli amministratori la possibilità di modificarne il contenuto. In "Family", invece, decidete se il template preveda una struttura con sottopagine e se le pagine che utilizzano questo template possano avere pagine child. Nelle impostazioni degli URL potete definire la numerazione delle pagine e ottimizzare il sito con percorsi strutturati in modo chiaro.

Nella "Cache" può essere configurata in modo da ridurre i tempi di caricamento di pagine web con progettazione complessa. Nella sezione "Advanced" trovate invece tag, toggle e icone. Poiché ProcessWire cerca di posizionare i tool dove risultino più comodi, potete anche copiare i campi da altri template utilizzando la funzione "Import". Con "Delete" potete infine cancellare un template.

Tutto è una pagina

Il credo di ProcessWire si può riassumere in questa espressione: tutto è una pagina. Questo significa avere sempre una visione d'insieme su tutti gli elementi dell'architettura di un progetto. Definiti i campi e creati i template, avete ora gli strumenti base necessari per impostare una pagina. Tornate quindi nella scheda "Pages" e cliccate sopra "Add New": il menu a tendina mostra i template già creati. Selezionate il tema desiderato, ad esempio Skyscrapers, come riportato nella schermata sotto.

La nuova pagina sarà costruita secondo il template chiamato Skyscrapers. Nella versione demo le relazioni tra le pagine sono già impostate: per il template Skyscrapers selezionate una pagina parent tra le pagine City presenti, quindi assegnatele un titolo per l'header e un nome per l'URL.

N.B.

I programmatori possono anche rinominare le schede, in modo che gli editor trovino in seguito l'area dei contenuti per le pagine sui grattacieli sotto il titolo Skyscrapers. Ad esempio, se andate sulla pagina Albuquerque nella sezione "Admin", vedrete diverse schede che possono essere personalizzate dagli amministratori. Nella prima tab potete modificare il contenuto della pagina. A fianco invece potete definire le child page della pagina. Gli admin possono rinominare questa scheda, chiamandola ad esempio Skyscrapers. Skyscrapers diventa così il template per tutte le pagine child che sono subordinate a una pagina del template City.

A questo punto salvate la pagina cliccando su Save. Andate ora su Pages > Cities > Albuquerque, selezionate la pagina di esempio (Albuquerque Petroleum Building) e cliccate su Edit. Nella tab "Settings"potete impostare le proprietà della pagina. Nome e template sono già definiti. La pagine parent è Albuquerque. Qui potete decidere lo stato (Hidden, Locked o Unpublished), i diritti di accesso e impostare la cache. Personalizzate i campi individuali nella sezione "Content" (qui: Skyscraper info). Il template Skyscraper dispone di 12 campi:

  • Title (Page Title)
  • Height (Float)
  • Floors (Integer)
  • Year (Integer)
  • Architects (Page)
  • Body (Text Area)
  • Map (Map Marker)
  • Images (Images)
  • Fieldset_Meta (FieldsetOpen)
  • FreebaseGuid (Text)
  • WikipediaID (Integer)
  • FieldsetMeta-END

Riempite i campi vuoti con testo o valori numerici, inserite le coordinate nella mappa e trascinate le immagini nel campo corrispondente, usando l'editorper modificarne formato e dimensione. Una volta riempiti i campi, nella scheda "View" è disponibile l'anteprima. Se tutto è in ordine, salvate la pagina cliccando su Save. Questi sono i passaggi per costruire un sito web semplice e personalizzato. Per una maggiore libertà di design, una user experience migliorata e un'area admin ottimizzata, vi consigliamo di sfogliare i moduli open source.

In sintesi

ProcessWire è un CMF versatile e adatto sia per siti web piccoli sia per grandi progetti multidominio e multilingua, ma richiede una certa esperienza con HTML e PHP. Gli amministratori dei siti e i content editor sono di solito in grado di lavorarci tranquillamente dopo un periodo di training. I moduli admin aumentano la semplicità d'uso. A favore di ProcessWire giocano senz'altro un pacchetto software leggero, un'API stabile, le numerose possibilità di personalizzazione e una community collaborativa.


Un momento! Prima di lasciarci scopri
la nostra offerta per il rientro dalle ferie:
dominio .it a 1 € per il primo anno!

Primo anno a 1 € IVA escl.,
poi 10 €/anno IVA escl.

Inserisci il dominio desiderato nella barra di ricerca per verificarne la disponibilità.