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.