Capitolo 1
Introduzione
I Content Management System (CMS), sistemi per la gestione di contenuti, sono
stati per molti anni una prerogativa delle grandi organizzazioni. Nascono infatti
come strumento per la conservazione e pubblicazione di documenti e si evolvono
come piattaforme collaborative in grado di rendere disponibili agli utenti,
prevalentemente interni all'azienda, strumenti evoluti come il controllo delle
versioni, la gestione degli allegati, il controllo degli accessi e altre funzionalità.
Con la diffusione di Internet e del Web, l'esigenza di pubblicare e gestire i
contenuti si è affermata al di fuori degli ambiti tradizionali, raggiungendo un
pubblico molto vasto, generalmente con poche conoscenze informatiche ma con la
necessità di poter condividere link, scritti, immagini, video ed altro con modalità
molto simili a quelle dei tradizionali CMS, ma anche con alcune caratteristiche
molto diverse. Commenti, possibilità di riferire esternamente i contenuti
pubblicati, semplicità dell'interfaccia, leggerezza della piattaforma,
personalizzazione della grafica, sono caratteristiche che nascono dal Web e che,
insieme alle funzionalità tradizionali dei CMS, portano alla nascita di diversi
ibridi, dai weblog ai portali, dalle piattaforme di pubblicazione dei grandi
quotidiani fino a strumenti di social networking capaci di gestire la pubblicazione
e la condivisione dei contenuti.
In questo scenario, può essere interessante lo studio e la comprensione di una
delle piattaforme di pubblicazione dei contenuti che ha avuto maggior diffusione
sulla Rete, ovvero WordPress. Nato nel 2003 da un progetto open source, ha
saputo affermarsi come piattaforma per la creazione di weblog e in seguito, grazie
al lavoro della comunità, ha ampliato le proprie funzionalità fino a diventare una
vera e propria piattaforma per la pubblicazione e gestione dei contenuti più
disparati. La sua flessibilità, dovuta sopratutto alla possibilità di poter estendere le
funzionalità (tramite template e plugin) e poter intervenire in maniera capillare nel
4
flusso di creazione della pagina, lo ha portato ad essere scelto sia da utenti con
poche conoscenze informatiche sia da grandi organizzazioni. Il linguaggio con cui
è realizzato (PHP) e i requisiti dell'applicazione (essenzialmente, un qualunque
web server e il diffuso database open source MySql), lo rendono inoltre una valida
scelta come piattaforma di sviluppo sia per programmatori esperti che per
programmatori con poca esperienza.
Il presente lavoro prende spunto dalle considerazioni fatte finora e si pone come
obiettivo l'apprendimento della piattaforma WordPress (database e applicazione),
per essere in grado di comprendere l'architettura e le soluzioni adottate da un
moderno CMS orientato al Web. In seguito, per validare le conoscenze acquisite,
si propone di estendere le funzionalità e realizzare un componente in grado di
gestire la traduzione dei contenuti in più lingue. Il secondo obiettivo è ambizioso,
dato che i contenuti gestiti da WordPress sono numerosi (post, pagine, interfaccia,
categorie etc.): per questo motivo, considerando che lo sviluppo ha lo scopo di
validare i risultati teorici raggiunti nella prima fase del lavoro, verrà realizzato
solo in parte e avrà come scopo principale l'applicazione pratica dei concetti
appresi durante la prima parte.
5
Capitolo 2
Piattaforme CMS
I Content Management System sono piattaforme software nate negli Stati Uniti e
inizialmente sviluppate da grandi organizzazioni che producevano notevoli
quantità di pubblicazioni per il loro uso interno. Nonostante i CMS non siano stati
concepiti per il Web, oggi il loro utilizzo più diffuso è rivolto alla gestione dei
contenuti di siti web, soprattutto se di grandi dimensioni e se caratterizzati da
aggiornamenti frequenti.
Una delle applicazioni più utili dei sistemi di CMS, infatti, è nella gestione dei
portali (intranet, extranet, community, siti di e-commerce), dove vengono
impiegati come strumento di pubblicazione flessibile e multiutente, ad esempio
per la gestione di contenuti testuali (notizie, articoli), link, immagini, liste di
discussione, forum, materiale scaricabile.
Un CMS permette non solo di inserire i contenuti, ma anche di organizzare la
struttura delle pagine che li contengono; a volte danno anche la possibilità
all'utente di gestire in maniera trasparente più versioni dello stesso sito per diverse
tipologie di browser (client desktop, WAP, dispositivi mobili etc.)
I CMS consentono di definire utenti, gruppi e diritti in modo da poter permettere
una distribuzione del lavoro tra più persone. Per esempio, è possibile definire una
classe di utenti abilitati esclusivamente all'inserimento delle notizie, mentre si può
riservare la scrittura di articoli ad un altro gruppo, e limitare tutti gli altri alla sola
consultazione.
Il vantaggio principale dell'utilizzo di un CMS è rappresentato dalla possibilità di
costruire e aggiornare un sito dinamico, anche molto grande, senza necessità di
scrivere una riga di HTML e senza conoscere linguaggi di programmazione lato
server (come PHP) o progettare un apposito database. L'aspetto esteriore delle
pagine può essere personalizzato scegliendo un foglio di stile CSS appositamente
progettato per un determinato CMS. Naturalmente risulterà tanto più efficiente
quanto sarà più specializzato.
6
Alcuni problemi di gestione possono derivare dal fatto che chi pubblica o gestisce
il sito può usare il CMS per intervenire sui contenuti e sull'aspetto, ma
generalmente non è in grado di intervenire direttamente sulla struttura del CMS
stesso; questo è un limite strettamente collegato al vantaggio primario dei CMS:
ossia pubblicare un portale senza doverne progettare la struttura o senza possedere
le conoscenze tecniche (o le risorse finanziarie) per uno sviluppo personalizzato.
Questi problemi sono risolvibili utilizzando software open source, il quale offre la
possibilità di accedere al codice sorgente del prodotto, permettendo così di
personalizzare il software sulla base delle proprie esigenze.
I fattori da considerare per decidere se usare un CMS oppure no, o per individuare
la piattaforma più conforme alle proprie esigenze, sono:
• la frequenza con la quale vengono aggiornati i contenuti, magari con
cadenze temporali fisse (giornalmente, settimanalmente, mensilmente);
• il numero delle pagine che saranno influenzate da un singolo
cambiamento, e anche la difficoltà nell'identificare e aggiornare tutte
queste pagine;
• il numero di autori che contribuiscono ai contenuti del sito.
Sarebbe inoltre importante sapere:
• se sono richieste una o più approvazioni prima che il contenuto sia
pubblicato;
• se sarà richiesta l'archiviazione;
• se la presentazione deve essere costantemente conforme a determinati
standard;
• se si prevede che il sito debba cambiare veste grafica;
• se si pensa di utilizzare i contenuti per altri scopi, e quindi si rende
necessaria la memorizzazione all'interno di un database.
7
Alcuni esempi di CMS open source molto potenti e che possono prestarsi alle
diverse esigenze sono:
• WordPress (http://wordpress.org/ oppure http://www.wordpress-it.it/),
adatto soprattutto per i blog gestiti da più utenti ma utilizzabile anche per
la costruzione di piccoli portali. Il suo punto di forza è la community di
utenti che contribuisce da anni alla creazione di una vasta quantità di
plugin e temi.
• Drupal (http://drupal.org/ oppure http://www.drupal.it/), strumento
molto avanzato e completo per la creazione di portali multi-utente. Ha una
struttura modulare che permette agli amministratori più esperti di
personalizzare il portale con nuove funzionalità, grazie a diversi “moduli”
da aggiungere al core.
• Joomla! (http://www.joomla.org/ oppure http://www.joomla.it/), il suo
punto di forza sono la stabilità e l’affidabilità di cui gode grazie alla solida
base da cui nascono le sue radici. Joomla infatti è figlia di Mambo dal
quale ha tratto il core per poi evolversi modularmente.
• Xoops (http://www.xoops.org/ oppure http://www.xoopsitalia.org/),
ottimo strumento per la creazione e la gestione delle comunità virtuali, può
anche essere utilizzato come potente base per blog o addirittura come
framework per altre applicazioni grazie alla modularità della struttura che
permette, a discrezione dell’utente, di personalizzare l’installazione per
renderla ad-hoc in base alle proprie esigenze.
• Mediawiki (http://www.mediawiki.org/), mamma di Wikipedia, è la
struttura base più completa per creare wiki. Tecnicamente non è un CMS
ma solo uno strumento che semplifica la gestione dei wiki.
• Frog (http://www.madebyfrog.com/), poco conosciuto ma valido e
semplice, sia per blog che piccole community. Possiede un pacchetto
d’installazione veramente leggero ma ha molte possibilità di
personalizzazione, anche grazie ai plugin.
• Globber (http://www.globber.org/), quasi sconosciuto in Italia, ha
8
un'interessante pagina di scrittura dei post, piuttosto originale e organizzata
al meglio per permettere un approccio molto pratico alla scrittura dei post.
• Dotclear (http://dotclear.org/), adattissimo per i blog personali, è dotato
di funzionalità che agevolano la lettura attraverso cellulari e PDA.
• DocuWiki (http://www.dokuwiki.org/), altro valido strumento per la
creazione di ottimi wiki dall’aspetto particolarmente professionale. La
struttura è quella classica ma il layout è interessante.
• Jaws (http://www.jaws-project.com/), nato come framework, si comporta
benissimo come CMS. Il progetto è in piena espansione e mira a
migliorare l’usabilità per gli utenti. È un valido strumento per piccoli
portali ed è completo di vari moduli per la personalizzazione.
9
Capitolo 3
WordPress
3.1 Introduzione
Citando la pagina originale.
“WordPress is a state-of-the-art publishing platform with a focus on aesthetics,
web standards, and usability. WordPress is both free and priceless at the same
time.”
“WordPress was born out of a desire for an elegant, well-architectured personal
publishing system built on PHP and MySQL and licensed under the GPL. It is the
official successor of b2/cafelog. WordPress is fresh software, but its roots and
development go back to 2001. It is a mature and stable product. We hope by
focusing on user experience and web standards we can create a tool different
from anything else out there.”
“WordPress is limited only by your imagination.“
I motivi per utilizzare WordPress per il proprio blog sono tantissimi:
• è open source ed il suo codice è modificabile sulla base delle proprie
esigenze;
• è completamente gratuito;
• è semplicissimo da usare e da configurare;
• permette di gestire i contenuti con un'interfaccia molto facile da utilizzare;
• consente di integrare l'applicazione originale con plugin;
• consente di modificare facilmente il tema del blog e mette a disposizione
migliaia di template open source modificabili, creati dai tantissimi
designer della comunità di supporto.
10
WordPress non significa necessariamente blog: è sicuramente il sistema più
indicato per la gestione dei contenuti, qualsiasi essi siano, proprio grazie alla sua
versatilità, alla sua semplicità nell’adattarsi a qualsiasi situazione e necessità, e
alla facilità a fargli “digerire” qualsiasi struttura grafica (layout). È, inoltre, SEO
oriented e quindi generare contenuti ottimizzati per i motori di ricerca diventa
molto più semplice per chiunque.
È possibile utilizzare WordPress in svariati modi: per un sito portfolio, associando
ciascun progetto realizzato ad ogni articolo, per un sito di e-commerce, per una
galleria, per un photoblog, per un social network, per un sito di notizie, per archivi
di articoli. Si potrebbe persino pensare di sviluppare una sorta di portale “privato”
per permettere ad un gruppo di collaboratori/consulenti di coordinare il lavoro che
ognuno porta avanti in modo indipendente.
Alcuni esempi di questi utilizzi sono:
• The Times (http://blogs.timeslive.co.za/),
• Inside BlackBerry (http://blogs.blackberry.com/),
• The Ford Story (http://www.thefordstory.com/),
• SAP.info (http://en.sap.info/),
• Mozilla Labs (http://mozillalabs.com/),
• eBay (http://ebayinkblog.com/),
• Stackoverflow (http://blog.stackoverflow.com/),
• AMD blogs (http://blogs.amd.com/),
• Nikon Festival (http://www.nikonfestival.com/),
• Harvard Gazzette Online (http://news.harvard.edu/gazette/),
• Boston University International Programs (http://www.bu.edu/abroad/).
11
3.2 Cenno sui contenuti
Una volta completata la “famosa” installazione in cinque minuti di WordPress,
effettuando il login, sarà possibile configurare l'applicazione in base alle proprie
esigenze.
La pagina di amministrazione principale, indicata come Dashboard (Bacheca),
consente, tra gli altri, come si può notare nella Figura 3.2.1, l'accesso a:
• pannello Users, per modificare le informazioni sull'autore e
sull'amministratore del sito, e per impostare più autori;
• pannello di “presentazione” Appearance, per modificare la struttura del
weblog dal punto di vista estetico. Di default, il tema che verrà assegnato
al weblog è quello mostrato nella Figura 3.2.2;
• pannello di “scrittura” Posts, per visualizzare l'elenco dei post e delle
pagine già pubblicati, per scriverne dei nuovi, e per gestire tag e categorie;
• pannello Plugins, per permettere all'utente una veloce
attivazione/disattivazione dei plugin disponibili.
Per una facile gestione dei contenuti del portale, WordPress mette a disposizione
diversi “strumenti”.
I post (ossia gli articoli) rappresentano le “voci” pubblicate in ordine cronologico
sulla home page. A differenza delle pagine, hanno commenti e sono inclusi nel
feed RSS del sito.
Scrivere un post è semplicissimo. TinyMce è l'editor standard WYSIWYG di
WordPress: permette di scrivere testi e di aggiungere ad essi markup HTML,
senza dover conoscere approfonditamente i tag del linguaggio; di default, il post
viene proposto sotto forma di output visuale, ma i più esperti hanno comunque a
disposizione una “vista codice” che permette di mettere mano direttamente ai
meta-tag.
12