Capitolo introduttivo dedicato a chi si avvicina per la prima volta a Zikula e vuole farsi un'idea generale sulla storia e le caratteristiche di questo CMS.
Breve storia di Zikula
Zikula nasce nel luglio del 2001 con il nome di PostNuke, quando John Cox, Sean Finkle, Harry Zink e Greg Allan creano un fork del progetto PHP-Nuke a causa, principalmente, della chiusura verso collaborazioni esterne al progetto. Ancora oggi tramite una ricerca su google è possibile trovare articoli, dichiarazioni e discussioni riguardo le cause e le conseguenze di questa scissione.
Inizialmente i due progetti sono rimasti abbastanza uniti a livello di comunità, in quanto i moduli di uno nella maggior parte dei casi funzionavano anche sull'altro, ma con il tempo le differenze sono lentamente aumentare fino ad arrivare ad una separazione totale con la versione 1.0 di Zikula, nota anche come PostNuke .8, che non ha più codice in comune con il proprio "padre" PHP-Nuke.
La forte e dinamica comunità, garantendo supporto tecnico, costanti aggiornamenti e moduli sempre nuovi, rappresenta uno dei punti di forza di Zikula. E' però importante ricordare che le basi dell'attuale successo di Zikula poggiano sulle spalle di tutti coloro che con passione e spirito di condivisione hanno contribuito in passato alla crescita del progetto.
Curiosità: il dominio PostNuke.com è stato attivato il 1 luglio 2001, quindi in un certo senso la si può considerare la data di nascita del progetto.
Zikula 1.0 - PostNuke .8 - Adam_Baum
Dopo anni di sviluppo la versione .8 di PostNuke è stata terminata e pochi giorni prima del suo rilascio sono stati resi noti il nuovo logo e il nuovo nome del progetto: Zikula. Alcuni dei motivi che han portato a cambiare nome al progetto sono la voglia di lasciarsi alle spalle una volta per tutte la fama del *nuke e dare risalto all'enorme cambiamento che contraddistingue il passaggio dal ramo .7x al .8x .
La versione 1.0 di Zikula porta il nome Adam_Baum in memoria di Adam_Baum, al secolo Greg Allan, storico programmatore e co-fondatore di PostNuke tragicamente deceduto in un'incidente motociclistico il 16 giugno 2002.
La Zikula Software Foundation
La Zikula Software Foundation è stata fondata nel giugno 2004. I membri fondatori sono: Harry Zink della Fizbin LLC, Mark West Lead Developer, la German PostNuke Foundation, rappresentata Andreas Krapohl, Drak di HostNuke, e Vanessa Haakenson.
Prima della creazione della ZSF (PNSF), il progetto esisteva semplicemente come collaborazione di individui, ma al fine di proteggere gli interessi a lungo termine si sentì la necessità di un riconoscimento legale. Creando una struttura ed un'identità legale nella forma di una fondazione non-profit si garantì che il progetto vivesse oltre ai contributi personali garantendo stabilità, credibilità ed un'immagine professionale.
La funzione dei membri fondatori è di tipo strategico, con l'obiettivo di mantenere la filosofia open source, la qualità del codice, la collaborazione e gli standard aperti. E' importante specificare che non è necessario essere membri della fondazione per contribuire al progetto, infatti al momento non c'è alcuna possibilità di iscriversi in quanto non è questa la funzione per cui è stata creata.
The Steering Committee
La Steering Committee (commissione di guida) amministra gli affari giornalieri del progetto e assicura che ogni gruppo di lavoro sia organizzato, abbia ciò di cui necessita e risponda dei compiti a lui affidati. I sei membri che ne fanno parte vengono eletti annualmente.
Alcuni di voi potrebbero pensare che sia superfluo parlarne ma vorrei ugualmente spendere due parole su quella che, a mio avviso, è una decisione critica quando si sceglie di sviluppare un sito: la scelta del CMS.
Questa pagina non parla di Zikula
No, non sto per dirvi che Zikula sia il migliore CMS che esista e che sia perfetto per voi e, se volete accettare un mio consiglio, diffidate sempre da chi vi voglia far credere questo di un qualsiasi prodotto. Nessun CMS è perfetto, nessun CMS è il migliore, semplicemente esistono numerose soluzioni che risolvono, più o meno bene, obiettivi diversi. Ad esempio un CMS può gestire in modo stupendo le fotografie, ma se voi state cercando qualcosa per organizzare le vostre creazioni musicali allora quel CMS non fa per voi.
Il vostro obiettivo dev'essere quindi quello di trovare il CMS che meglio si adatti alle vostre esigenze.
Con questa pagina vorrei solo condividere la mia esperienza con chi conosce poco questo settore in modo da evitargli seccature e perdita di tempo in seguito.
Perchè la scelta del CMS è così critica
Sottovalutare questa fase potrebbe essere un grosso errore in quanto ogni CMS ha dei limiti e scegliendo quello sbagliato potreste ritrovarvi un domani con le mani legate. Partiamo da un presupposto fondamentale: una volta costruito un sito usando un particolare CMS, passare ad un altro CMS è forse la scelta peggiore. Il problema principale di un cambiamento di questo tipo è che richiede molto tempo e competenze. Infatti, soprattutto quando il sito è grande, può essere molto complicato e lungo spostare tutti i dati.
Inoltre l'utente ormai è abituato ad avere delle determinate funzionalità organizzate in un certo modo, cambiare le carte in tavola potrebbe disorientarlo e creare malumore. In questi casi si cerca di rendere il più trasparente possibile il passaggio, ma raramente è possibile farlo e si finisce per perdere altro tempo, quando invece sarebbe stato possibile evitarlo con una maggior attenzione in fase di scelta del CMS.
Quale CMS fa per me
Come potete vedere dal sito http://www.cmsmatrix.org/ esistono veramente tantissimi CMS e di conseguenza sceglierne uno diventa tutt'altro che banale. Provarli tutti in maniera approfondita, o anche solo superciale, è un'impresa titanica e superflua. D'altra parte affidarsi solo al consiglio di un amico, o peggio ad un sito di un CMS in particolare, è rischioso. Il mio consiglio è di individuare, tramite forum e siti del settore, un piccolo gruppo di CMS e poi valutarli e provarli personalmente. In particolare è utile fare un'analisi delle vostre necessità ed escludere i CMS che non le soddisfino prima di provarli... non fate l'errore di provare un CMS e farvi invogliare dall'aspetto accattivante perchè la grafica la potete cambiare facilmente, mentre aggiungere una funzione mancante potrebbe essere estremamente complicato, se non impossibile.
Pensate anche al futuro
Le vostre necessità oggi potrebbero essere minime perchè state iniziando e non sapete se il vostro progetto avrà un futuro, ma un domani? In questo caso il mio consiglio è di scegliere un CMS che "non vi stia troppo stretto" e che vi dia la garanzia di poter ampliare facilmente in vostro progetto in futuro. L'utilizzo di un CMS dovrebbe velocizzarvi il lavoro, non limitare la vostra creatività e i vostri obiettivi.
Perchè Zikula
Come ho scritto poche righe sopra questa pagina non parla di nessun CMS in particolare, vi rimando quindi alla prossima pagina per una semplice analisi delle caratteristiche per cui, a mio avviso, valga la pena di considerare e provare Zikula.
In questa pagina raccoglierò le caratteristiche a mio avviso più interessanti di Zikula, cioè quelle che tempo fa mi hanno portato a scegliere di realizzare i miei lavori utilizzando questo di CMS e che, magari, convinceranno anche voi a farlo.
Per un elenco esteso delle caratteristiche di Zikula fate riferimento alla pagina Features.
Flessibile, completo e ottimizzato per i motori di ricerca
Zikula è un CMS estremamente flessibile, che può essere utilizzato così come viene distribuito o può essere decisamente personalizzato per meglio adattarsi alle proprie esigenze. Viene infatti distribuito con una serie di moduli base che gestiscono vari tipi di contenuti e può essere facilmente esteso grazie ai tanti moduli aggiuntivi disponibili.
Inoltre Zikula rispetta gli standard del W3C ed è ottimizzato per i motori di ricerca; ad esempio l'amministratore può scegliere tra 3 diversi tipi di indirizzi (.html, directory o standard) con pochi click.
Templates, plugins, sovrascrittura e caching
Zikula separa completamente la struttura dalla grafica utilizzando un potente sistema di templates. Inoltre il motore grafico di Zikula implementa una gerarchia per la sovrascrittura dei template sia a livello globale che di singolo tema. Questo significa che quando vorrete modificare la grafica di una qualsiasi parte del sito dovrete solo copiare il template in questione in una particolare cartella e modificarlo. Grazie poi a plugins, hooks e al potente sistema di scripting integrato potrete modellare e disporre a vostro piacimento i dati della pagina senza modificare alcun file di sistema, con enormi vantaggi per il processo di aggiornamento.
E proprio grazie al sistema di template, basato su Smarty, Zikula implementa diversi livelli di caching che possono essere attivati in caso di necessità.
Sistema di permessi granulare
Come ogni buon programmatore sa una delle regole base della sicurezza degli apparati informatici è che ogni utente abbia i permessi minimi necessari per fare il proprio lavoro; purtroppo alcuni CMS molto famosi sottovalutano questo fattore. Zikula non è tra questi in quanto implementa un sistema di permessi granulare basato sui gruppi, permettendo di impostare per ogni "entità" fino a 9 livelli di accesso. I livelli sono: nessuno, anteprima, leggi, commenta, modera, modifica, aggiungi, elimina e admin.
Non sottovalutate questo fattore, se il vostro progetto avrà successo e crescerà un domani potreste avere la necessità di affidare determinate sezioni a collaboratori, e allora un sistema di permessi potente e flessibile sarà fondamentale.
Sia framework che CMS
Con la versione 1.0 Zikula diventa un framework oltre che un CMS, cioè implementa una serie di strumenti per facilitare il lavoro degli sviluppatori. Utilizzando questi strumenti, citiamo DBUtil e pnForms, è ora possibile scrivere moduli, blocchi e plugins minimizzando la ridondanza del codice. Tradotto in parole semplici significa che ora sviluppare componenti per Zikula è molto più veloce e facile, con ovvi vantaggi sia per chi ha necessità di scrivere dei moduli particolari sia per il semplice webmaster, che avrà quindi a disposizione più materiale e di maggiore qualità.
Core e API flessibili e stabili
La riscrittura del core e la sua standardizzazione attraverso le API (Application Program Interface) sono stati uno degli obiettivi principali del team di Zikula. Gran parte del lavoro è stato infatti fatto per migliorare la modularità, separando nettamente il core dai moduli e scrivendo una serie di metodi, le API per l'appunto, per farli comunicare. I vantaggi di un approccio di questo tipo sono molteplici, su tutti:
- grazie alla modularità il webmaster può installare solo i moduli necessari, mantenendo il sistema snello e pulito;
- tramite la completezza delle API i moduli di terze parti possono interagire maggiormente con il sistema senza presentare problemi in fase di aggiornamento;
Zikula non è più un *nuke
Premesso che con *nuke si intendeno normalmente i CMS derivati da PHP-Nuke, PostNuke non è più un *nuke potrebbe sembrare un gioco di parole ma il senso della frase è che Zikula dalla versione 1.0 in poi non ha più codice in comune con PHP-Nuke in quanto è stato completamente riscritto, di conseguenza non ha più senso abbinarli.
Specifico questo particolare perchè alcune persone utilizzano il termine *nuke per esprimere una valutazione generale su questa famiglia di CMS che ora, almeno per quanto riguarda Zikula, non ha più senso paragonare in quanto non condividono più nulla, salvo il passato in comune.
Che tipologia di sito si può costruire con Zikula?
Le parole chiave di Zikula sono flessibilità, potenza e sicurezza, non è quindi
un CMS specifico per una particolare situazione ma
pensato per adattarsi alle necessità dell'utente. Con i moduli esistenti si può fare un sito semi statico, così come costruire una community, un blog o un sito di e-commerce e grazie agli strumenti del framework è possibile sviluppare velocemente qualsiasi altro modulo si necessiti. Alcuni esempi di ciò che si può fare:
- Community basata su forum, profili e messaggi privati
- Singolo blog o insieme di blog
- E-commerce e cataloghi
- Internet-based services
- Siti o portali per compagnie ed aziende
- Siti statici di qualsiasi dimensione
- Giornali e articoli online
- Raccolta e catalogazione di documenti, media e immagini
E via dicendo... la lista potrebbe essere
infinita.
Core Features
Vediamo ora quali sono le principali features che il core di Zikula implementa.
- Installazione facile: il processo avviene tramite una semplice interfaccia grafica;
- Pannello di amministrazione web: è possibile amministrare tutti i moduli dal web, senza la necessità di accedere all'ftp per modificarne il contenuto;
- Completa modularità: il sistema è formato da core e moduli, ogni amministratore può installare solo le componenti necessarie mantenendo il sistema pulito e snello, senza però limitarne la potenza;
- Sistema di templates: tutto il core ed i moduli ufficiali utilizzano i template e di conseguenza aderiscono ai sistemi di sovrascrittura globale e a livello di tema, possono utilizzare il sistema di caching e possono essere facilmente modificati;
- Permessi granulari: sistema di permessi basato su gruppi e fino a 9 livelli di privilegi;
- Motore di ricerca interno: Zikula implementa un motore di ricerca che può essere facilmente esteso anche ai moduli scritti dall'utente
- Short-URL: è possibile rendere gli indirizzi di Zikula corti e più leggibili in 2 modi diversi;
- Modulo di configurazione mail: potete utilizzare un server SMTP esterno per inviare le mail;
- Supporto multilingua: è possibile installare quante lingue si desideri, potendo diversificare i contenuti in base alla lingua;
- Registrazione utenti: la registrazione può essere personalizzata e disabilitata a piacere dall'amministratore; tra le modalità predefinite registrazione libera, con controllo dell'e-mail o con approvazione dell'amministratore;
- Dati utente dinamici: è possibile definire nuovi campi o rimuoverne di esistenti dal profilo degli utenti completamente dinamicamente, senza modificare alcun file;
- Autentificazione: Zikula può essere integrato con un server LDAP;
Inoltre Zikula come framework implementa molti strumenti utili agli sviluppatori:
- Application Program Interface: tramite l'API ogni modulo può dialogare in modo semplice e veloce con le componenti del sistema, estendendo incredibilmente le possibilità di ogni componenti;
- DBUtil: utilizzando queste librerie è possibile lavorare con il database senza scrivere codice SQL e in modo trasparente alla piattaforma, scrivendo quindi codice compatibile con MySQL, PostgreSQL e Oracle;
- pnForm: grazie a questa fantastica libreria è possibile automatizzare il processo di lettura, validazione, inserimento o rigetto dei dati in input dei form. A mio avviso veramente uno strumento eccezionale;
- WorkFlow: utilizzando questo modulo è possibile implementare dei workflow per alcune operazioni;
- PageLock: questo modulo fornisce uno strumento per bloccare una pagina mentre la si modifica ed evitare che due persone, modificando contemporaneamente lo stesso oggetto, si sovrascrivano a vicenda il lavoro;
Modules Features
In questo caso fare un elenco è impossibile e poco utile, in quanto sarà una scelta dell'amministratore quali moduli installare e di conseguenza quali features aggiungere.
Per maggiori informazioni consigliamo di consultare la sezione Moduli nel menu in alto.