# Flatnuke

Flatnuke è un Content Management System (CMS) per la gestione di siti web, scritto nel linguaggio PHP. La sua caratteristica fondamentale è l'utilizzo di file di testo per la memorizzazione delle informazioni al posto di database quali mysql o altri; lo stesso nome deriva dall'utilizzo dei file di testo, ovvero "flat file" (da cui Flatnuke). L'utilizzo dei file di testo lo rende particolarmente semplice da installare e configurare e dunque particolarmente indicato per siti web personali o di piccole comunità.

## La storia

Flatnuke nasce nel 2003, ad opera di Simone Vellei, come template per la gestione del proprio sito web personale. Questo nucleo di base si è poi evoluto fino ad diventare un CMS completo. Successivamente si è unito all'autore originale un gruppo di volontari per contribuire nello sviluppo del progetto, ciascuno secondo le proprie competenze (sviluppo codice, grafica, traduzioni).

## Caratteristiche

Flatnuke è un progetto fortemente modulare. Gli utenti possono aggiungere o togliere funzionalità aggiungendo, togliendo o modificando i file di cui è composto. Queste sono le sue principali caratteristiche:
* Utenti: sono supportati gli utenti per l'utilizzo delle funzioni di community. Gli utenti di livello 10 sono gli amministratori del portale. Gli amministratori possono attribuire agli utenti vari tipi di permessi per l'accesso alle varie parti del sito o per la modifica dei contenuti.
* News: una delle prime funzionalità sviluppate. Gli amministratori possono pubblicare delle news mediante un'interfaccia web. Gli utenti o i visitatori possono proporre delle news che devono però essere validate da un amministratore prima di essere visualizzate nel sito.
* Sezioni: sono le "pagine" del sito, organizzabili in una gerarchia nella quale vengono creati automaticamente i link per la navigazione interna.
* Blocchi: sono file di testo visualizzabili nelle colonne laterali
* Forum: può essere organizzato in diversi argomenti raggruppati tra loro. È piuttosto completo e dotato di numerose funzionalità solitamente appannaggio di forum più blasonati.
* Gallery: consente di creare gallerie di immagini interamente amministrabili dall'interfaccia web.
* Gestore di file: consente di caricare file da rendere disponibili per il download.
* Centro di controllo: integrato a partire dalla versione 2.7, consente di amministrare il portale da un'interfaccia web.
* Temi: sono disponibili numerosi temi per personalizzare il portale secondo le proprie esigenze.
Oltre a queste sono presenti altre caratteristiche quali un motore di ricerca interno in grado di effettuare ricerche tra le news, il forum, i file in download, gli utenti, le immagini e le sezioni.

## Sicurezza

Con l'aumento della diffusione del portale si è posto il problema della sicurezza. Dal 2005, anno in cui sono stati segnalati i primi problemi, il team di sviluppo si è concentrato in modo particolare sul tema della sicurezza. Ora tutte le variabili gestite da Flatnuke vengono accuratamente controllate prima di essere utilizzate. Dall'introduzione di questo meccanismo i problemi di sicurezza delle versioni stabili sono praticamente scomparsi e oggi Flatnuke si può ritenere un prodotto sufficientemente sicuro per la gestione di piccoli siti. Tutti i problemi segnalati vengono inoltre tempestivamente corretti. Flatnuke supporta più blacklist in grado di filtrare i messaggi degli utenti per prevenire lo spam sul portale. Dalla versione 2.7 è stata introdotta la registrazione tramite e-mail per prevenire le registrazioni dolose di malintenzionati.

## Accessibilità e conformità agli standard

Particolare attenzione è posta al tema dell'aderenza agli standard e dell'accessibilità. Il codice del progetto è quanto più possibile conforme ai dettami del W3C e viene costantemente controllato con il suo validatore di codice. Perché il sito sia "W3C compliant" è necessario che anche il tema utilizzato sia conforme agli standard.
Pur coscienti che una accessibilità completa non è mai raggiungibile, Flatnuke cerca di implementare al suo interno tutti quegli accorgimenti indispensabili per rendere fruibile il sito anche da parte di categorie di utenti che necessitano di particolari accorgimenti.
L'unione di rispetto degli standard web e attenzione ai criteri di accessibilità rende Flatnuke particolarmente adatto ai siti istituzionali, in particolare pubblici, che dovrebbero per legge essere conformi agli standard e rispettosi di precisi criteri di accessibilità.

## Progetti derivati

Il progetto più importante derivato da Flatnuke è Flatnux, già conosciuto come Flatnuke3 (poi rinominato per non creare confusione con il progetto originale). Flatnux è sviluppato da Alessandro Vernassa, il quale collabora anche allo sviluppo di Flatnuke.
Dal 2007 esiste un sito di supporto per la distribuzione di Temi, How to e Plug-in per Flatnuke: Themes and Tools for Flatnuke.