Un sito web2.0 è, prima di tutto, un sito e, come tale, ha bisogno di un sistema di gestione dei contenuti che faciliti la redazione delle pagine agli autori e permetta agevolmente di apportare variazioni grafiche globali.
Questo, però, non è il solo motivo per cui oggi parlerò di un CMS. Il motivo reale è legato al fatto che tale sistema rappresenta il mio primo progetto open source rilasciato sotto una licenza libera.
Descrizione
XWCM nasce nel 2006 come progetto interno della mia azienda, Logic, per realizzare un motore di CMS che consentisse la massima libertà di personalizzazione delle pagine.
Questo sistema doveva rispettare le seguenti caratteristiche:
- permettere una separazione netta tra grafica e contenuti
- gestire la struttura del sito in modo da mantenere un sistema di menu coerente e uniforme
- permettere la gestione di siti in più lingue senza richiedere necessariamente una struttura identica tra le varie lingue
- richiedere la quantità minima di pre-requisiti tecnici e, in particolare, evitare di appoggiarsi ad un database relazionale
- i contenuti sono redatti da sviluppatori web dotati di accesso diretto ai file del sito (tramite FTP o altro) e, pertanto, un’interfaccia grafica di gestione non è tra le priorità
Al fine di semplificare la parte di gestione dei template, che si sarebbe potuta rivelare ardua partendo da zero, si è scelto di utilizzare XSLT e basare tutti i contenuti su XML.
Per ulteriore semplicità di gestione dei contenuti e per poter facilmente utilizzare editor esistenti per la redazione degli stessi, si è scelto di basare i contenuti stessi su file XML redatti rispettando la sintassi del XHTML.
Il sistema ha rapidamente raggiunto una versione stabile e completa di tutte le caratteristiche necessarie e in questi giorni Logic ha deciso di concedermi il permesso di rilasciarne il codice sotto una licenza libera.
Questa scelta è stata dettata dal desiderio di migliorare il sistema e completarlo con un’interfaccia grafica per la gestione del sito in modo da trasformarlo da un sistema pensato per sviluppatori ad un sistema utilizzabile da tutti.
Realizzazione di un sito
Realizzare un sito con XWCM risulta estremamente semplice, a condizione di avere alcune conoscenze di XSLT per personalizzare il template e di XML per redarre i contenuti.
Il prerequisito fondamentale è quello di avere a disposizione un server web con supporto per PHP (almeno nella versione 4.3) e supporto per domxml e xslt attivati.
Una volta configurato il tutto è sufficiente copiare sul server la libreria XWCM presente nel pacchetto di distribuzione e la cartella con il sito demo. Se tutto funziona correttamente il sito dimostrativo è visualizzato all’indirizzo http://<servername>/demo_site.
Personalizzazione del sito
La libreria utilizza 2 file principali per la personalizzazione del sito: un file che descrive la struttura del sito stesso e un template.
Il file della struttura (menu.en.xml) è, in linea di principio, un insieme di tag “file” con struttura ad albero che descrivono esattamente le pagine del sito e le loro relazioni gerarchiche. All’interno di questo file è presente l’indicazione del path del template da utilizzare.
Il template è un file XSLT che trasforma l’XML generato dalla libreria nella pagina vera e propria. Per la personalizzazione di questo file è necessario consultare la documentazione per capire come viene generato l’XML da elaborare.
Una volta sistemati questi file è sufficiente creare i file di contenuto con i corrispondenti file php in modo che la loro posizione rifletta la struttura del sito definita nel file del menu.
Caratteristiche avanzate
Tra le principali caratteristiche supportate da XWCM, oltre a quelle già sopra indicate, si possono evidenziare:
- Supporto per la generazione dinamica delle pagine (esempio elencare dati presi da un db)
- Supporto per template dinamici
- Supporto per template multipli. Sezioni del sito o anche singole pagine possono essere dotate di template differenti
- Generazione automatica del filo d’arianna
Esempi
Oltre al sito demo presente nel pacchetto lo stesso sito di XWCM è realizzato con XWCM stesso. Puntando al file del menu dovrebbe essere possibile ricavare tutte le informazioni necessarie per accedere ai sorgenti del template e degli altri file che compongono il sito.
Conclusioni
Spero che il progetto possa entusiasmare altre persone e la comunità di utenti e sviluppatori si ampli fino a dare la possibilità di creare un sistema di CMS completo e affidabile.
Se avete provato la libreria vi prego di darmi un riscontro.