Documentazione flatnuke (Ver. 2.3)

di Simone Vellei <simone_vellei@sourceforge.net>

30 Dicembre 2003
flatnuke è un CMS (Content Management System) che non fa uso di DBMS, appoggiandosi esclusivamente a file di testo (da qui il nome).

1. Prefazione

2. Introduzione

3. Flatnuke

4. Installare flatnuke

5. Gestire gli utenti

6. Gestire le news

7. Gestire i contenuti

8. I blocchi

9. Il forum

10. I temi


1. Prefazione

Questo documento è stato prodotto utilizzando linuxdoc ed è disponibile nei formati html (singolo e pagine multiple), ps, pdf, dvi, TeX. L'impiego di tale strumento ha reso notevolmente più semplice l'operazione di stesura di questa guida fornendo un layout semplice, pulito ed elegante conforme alla documentazione Linux ( http://www.tldp.org). Si incoraggia pertanto il lettore a godere della struttura gerarchica di tale documento e di prendere in considerazione linuxdoc come strumento per la produzione della propria documentazione.

1.1 Note sulla versione

L'autore di flatnuke e di questa guida è Simone Vellei, fate riferimento perciò all'indirizzo simone_vellei@users.sourceforge.net per eventuali contatti, consigli o suggerimenti.
Tale documento è disponibile presso flatnuke.sf.net. La versione del documento segue quella di flatnuke, in tale modo è possibile conoscere più facilmente la guida di riferimento per la propria versione. Ogni guida si riferisce esclusivamente alla rispettiva versione di flatnuke, ogni altra versione può contenere sostanziali cambiamenti tali da rendere la guida incompatibile con una versione differente di flatnuke. Il lettore è invitato a verificare l'esatta corrispondenza tra documentazione e software.

1.2 Suggerimenti

Ogni suggerimento, di qualsiasi natura, sui contenuti di questo documento è ben accetto. Ho scritto questa guida per offrire un maggior supporto agli utenti flatnuke, è stato un lavoro lungo e difficile, perciò ti sarò grato se mi segnalerai errori o eventuali sviste. Leggi l'intero documento prima di inviarmi una mail. Quando mi scrivi indica per favore la versione, la pagina e la sezione del tuo riferimento, questo mi aiuterà a trovare l'errore più velocemente. Per agguingere maggior chiarezza alla mail ti chiedo di inserire ``flatnuke errore documentazione'' come oggetto.

Inoltre considera la possibilità di una donazione o di un contributo allo sviluppo, secondo le proprie possibilità.

1.3 Politica di distribuzione

Copyright (C) 2003 Simone Vellei.

Questo HOWTO è una documentazione gratuita; si può ridistribuirlo e/o modificarlo secondo le specifiche della Licenza per Documentazione Libera GNU pubblicata dalla Free Software Foundation presenti nella versione 1.1 della Licenza, o (a scelta) in qualche versione seguente.

Questa documentazione viene distribuita nella speranza che possa essere utile, ma senza alcuna garanzia; senza anche l'implicita garanzia di commerciabilità o di adeguatezza ad uno scopo particolare. Si veda la GNU Free Documentation License per maggiori particolari.

Si può ottenere una copia della Licenza per Documentazione Libera GNU dal sito internet http://www.gnu.org oppure scrivendo alla Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

2. Introduzione

I siti web stanno crescendo con una rapidità impressionante sia in numero sia in dimensioni; un tipico sito aziendale o personale può raccogliere migliaia di informazioni organizzati in documenti, immagini, testi, ecc.. Inoltre il web publishing si stà muovendo sempre più velocemente verso contenuti dinamici lasciandosi alle spalle quelli statici, il dato di fatto è che le informazioni sono aggiornate repentinamente e la loro vita media è sempre più breve. Gli utenti finali si aspettano di trovare sempre notizie, documenti freschi ed informazioni aggiornate, se questo non si verifica difficilmente il sito continuerà ad essere visitato. I contenuti richiedono quindi di essere continuamente aggiornati, organizzati, manipolati e soprattutto resi disponibili agli utenti in modo semplice ed efficace. Per questa serie di motivi sempre più spesso vengoni impiegati dei sistemi di getione dei contenuti (CMS, Content Management System).

2.1 Cos'è un CMS?

Un sistema di gestione dei contenuti è un'applicazione web, tipicamente basata su database, che permette di gestire dinamicamente il contenuto di un sito web. L'uso di un CMS per la gestione dei contenuti di un sito comporta numerosi vantaggi; primo fra tutti vi è la separazione dei contenuti dalla grafica e dal codice di programmazione. Di conseguenza diverse figure professionali possono lavorare contemporaneamente al sito: mentre i grafici lavorano al restyling del sito, i programmatori possono sviluppare nuove funzioni senza interferire con gli autori dei testi che inseriscono indisturabati nuove pagine o modificano quelle esistenti. Appena il lavoro dei grafici è completato può essere applicato contemporaneamente a tutto il sito grazie al meccanismo dei temi o template ossiam modelli per la formattazione grafica e l'impostazione del layout dei contenuti. L'adozione dei template fa sì che l'aspetto di ogni sezione risulti coerente con le altre. Semplicemente modificando il tema i contenuti possono essere formattati in modo tale da adattarsi a divere tipologie di utenza.

Un CMS semplifica notevolmente il lavoro degli autori, aiutano nell'immissione dei contenuti e nella loro modifica in modo semplice e chiaro. In questo modo gli utenti autorizzati possono contribuire alla definizione, impaginazione e amministrazione dei contenuti del sito indipendentemente dalla locazione geografica e dalle competenze informatiche. L'obiettivo di un CMS è quello di fornire ai creatori di contenuti una struttura sulla quale organizzare in maniera semplice e indipendente il proprio lavoro.

3. Flatnuke

Flatnuke è un progetto che scaturisce da esigenze personali. Chi mi conosce personalmente sa che un mio vizio è quello di riprogettare periodicamente la mia home page. Ultimamente non ho cambiato molto i contenuti, quanto l'infrastruttura, cercando di avvicinarmi sempre più all'estrema semplicità di inserimento dei contenuti.

Flatnuke (o meglio il progetto per la mia nuova home page) nasce in una di quelle mattine dove ti svegli pensando: ``Oggi mi rifaccio il sito!''. La prerogativa fondamentale per la mia nuova home era il supporto per l'inserimento delle news, mi piaceva l'idea di avere un diario personale (quello che oggi viene chiamato weblogger o più brevemente blog).

Dopo un settimana di sviluppo, durante la calda estate 2003, mi accorgo che il mio progetto era parametrizzabile, ovvero invece di utilizzare valori costanti per la mia home, potevo creare, senza molti sforzi, un livello di personalizzazione, in modo che diventasse utilizzabile anche da altri utenti.

3.1 Cos'è flatnuke?

flatnuke è un Content Management System, un pacchetto di programmi scritti in php che permette la pubblicazione di un sito internet in maniera semplice, veloce e senza richiedere le conoscenze tecniche necessarie per gestire prodotti simili.

I più diffusi progetti di CMS come phpnuke, postnuke o envolution utilizzano la combinazione apache+php+mysql per la creazione delle pagine dinamiche richieste dai visitatori. La configurazione di questi sistemi non è alla portata di tutti gli utenti di computer. Oltre a dover personalizzare il ``nuke'', occorre impostare il database server e spesso questa operazione non è attuabile con facilità quando il sito è in hosting presso un internet service provider. Flatnuke è adatto per soluzioni hosting senza DBMS, oppure come scelta mirata per piccole e medie community.

flatnuke é un CMS per siti internet e portali che eredita in parte la grafica dei vari nuke ma contrappone alla profondità dei sistemi con database, i propri file di configurazione ``piatti''. Con il semplice ed usuale gesto della creazione di una directory sarà possibile impostare sezioni e sottosezioni del sito flatnuke. Questi spazi potranno poi essere arricchiti da documenti realizzabili con programmi per ufficio come la suite OpenOffice.org.

La vera forza di questo prodotto è comunque data dalla possibilità di aggiornare il proprio sito da qualsiasi computer del mondo attraverso le news e di poter impostare dei forum di discussione sugli argomenti che interessano i navigatori.

3.2 Caratteristiche

flatnuke attualmente ha le seguenti caratteristiche:

3.3 Conoscenze richieste

Per utilizzare flatnuke sarebbe opportuno approfondire

Tutti i software citati in questo documento sono rilasciati sotto licenze libere, come il sistema operativo utilizzato durante la scrittura di questo manuale. Il pacchetto flatnuke può essere tranquillamente utilizzato su sistemi operativi proprietari ma non si tratterà qui questa situazione. Se non avete le conoscenze richieste non perdetevi d'animo perchè nel corso di questo documento vedremo degli esempi che ci porteranno comunque a pubblicare il nostro sito flatnuke e ad averne il pieno controllo. Potete sempre lasciare a qualche programmatore/grafico l'arricchimento "estetico" del sito commissionandoli un tema che andrà ad arricchire quest'opera collettiva oppure iniziare a frequentare il vostro Linux User Group locale se siete appassionati del fai-da-te.

4. Installare flatnuke

Per installare flatnuke occorrono 5 semplici passi:

4.1 Apertura pacchetto

Una volta scaricato il pacchetto di flatnuke presso http://flatnuke.sourceforge.net si dovrà procedere a decomprimere l'archivio. Occorre avere perciò installati correttamente i programmi tar e gzip. Per decomprimere il pacchetto utilizziamo questo comando nella directory dove lo abbiamo salvato:

# tar xvfz flatnuke-x.y.tar.gz

Dove x e y rappresentano la numerazione della versione del progetto. Si otterrà una directory flatnuke contenente tutti i file dell'archivio.

4.2 Il filesystem di flatnuke

E' importante memorizzare il filesystem di flatnuke perchè sarà utile durante la spiegazione dei vari strumenti di creazione dei contenuti.


flatnuke
   |--blocks
   |    |--dx        (blocchi di destra)
   |    |--sx        (blocchi di sinistra)
   |--forum
   |    |--topics    (discussioni del forum)
   |    |--users     (utenti de sito)
   |--images
   |    |---news     (icone delle news)
   |--languages      (linguaggi supportati)
   |--misc
   |    |--flatpoll  (sondaggio)
   |    |--flatstat  (statistiche
   |--news           (notizie del sito)
   |--sections       (sezioni del sito)
   |--themes         (temi disponibili)

4.3 Impostazioni preferenze

Entriamo all'interno della directory flatnuke e editiamo il file config.php con un qualsiasi editor di testo. Gli utenti di sistemi Unix potrebbero, ad esempio, eseguire:

# vi config.php

Il file ci appare come una successioni di variabili da impostare, eccone un esempio:

# IMPOSTAZIONI PER FLATNUKE

# L'indirizzo assoluto del tuo sito
$siteurl="http://zaccheo/flatnuke_testing";
# Titolo del sito
$sitename="flatnuke Home page";
# Tema preferito
$theme="default";
# News per pagina
$newspp="10";
# Nome Admin
$admin="Me";
# Admin mail
$admin_mail="xxx@xxx.xxx";
# lingua (it, en, es, fr, ..)
$lang="it";
# un utente non registrato può segnalare le news (1=VERO,0=FALSO)
$guestnews=1;
# un utente non registrato può inserire i commenti (1=VERO,0=FALSO)
$guestcomment=1;
# Utile per impostare l'ora italiana su web server USA (1,5 = 1h 30m)
$fuso_orario=0;

# IMPOSTAZIONI PER IL FORUM

# numero di topic per pagina
$topicperpage=10;
# numero di post per pagina
$postperpage=5;
# numero di membri per pagina
$memberperpage=15;

Esaminiamo una per volta tutte le opzioni.

siteurl: Deve essere impostato con l'indirizzo del tuo spazio web. Facciamo un esempio. Il provider pippo.com fornisce account web e noi ne acquistiamo uno con il nome utente simone, ci verrà fornito l'URL di riferimento del nostro spazio che potrà essere http://simone.pippo.com o anche http://pippo.com/simone o http://pippo.com/utenti/simone. L'importante è che la variabile siteurl contenga tra le virgolette questo riferimento al vostro spazio web.

sitename: Deve essere impostato con una breve descrizione (3-4 parole) del sito. Facciamo un esempio. Dopo aver acquistato il mio spazio web decido di dedicarlo alla mia home page personale, quindi imposto sitename con ``Simone Vellei Home Page''.

theme: Deve essere impostato con il nome di uno dei temi contenuti nella directory flatnuke/themes/. FlatNuke è distribuito con un unico tema chiamato default, per scaricare altri temi occorre far riferimento al sito ufficiale dei temi FlatNuke http://pannolinux.altervista.org.

newspp: Deve essere impostato con il numero di news che si desidera avere nella pagina principale. L'impostazione di default è 10 e garantisce una buona visione d'insieme dell'intero sito.

admin: Deve essere impostato con il nome dell'amministratore del sito (webmaster). Nel caso trattato in esempio posso impostare admin con ``Simone Vellei''.

admin_mail: Deve essere impostato con l'email del webmaster, servirà per contattarlo in caso di segnalazioni, informazioni, suggerimenti sul proprio sito.

lang: Deve essere impostato con la lingua che si intende utilizzare nel sito. Attualmente sono disponibili solamente it e en. Ogni frase predefinita nel sito verrà tradotta con la rispettiva scelta.

guestnews: Deve essere impostato a seconda delle libertà che si vogliono concedere ad un ospite, ovvero ad un utente non registrato. Se vogliamo dare la possibilità a utenti non registrati di segnalare le news occorre impostare guestnews con 1 altrimenti con 0.

guestcomment: Deve essere impostato a seconda delle libertà che si vogliono concedere ad un ospite, ovvero ad un utente non registrato. Se vogliamo dare la possibilità a utenti non registrati di aggiungere comenti alle news occorre impostare guestcomment con 1 altrimenti con 0.

fuso_orario: Deve essere impostato con la differenza di fuso orario tra l'orario di riferimento e l'orario della località dove risiede il nostro sito. Facciamo un esempio. Se il nostro dominio acquistato si trova in Italia e noi siamo italiani, fuso_orario sarà impostato a 0 in quanto non esiste alcuna differenza di orario. Se, invece, il nostro dominio risiede negli USA (Chicago) la differenza di orario è 7.

topicperpage: Deve essere impostato con il numero di discussioni per ogni pagina del forum. Il valore di default 10 consente una visione adeguata della pagina.

postperpage: Deve essere impostato con il numero di post per ogni pagina delle discussioni. Il valore di default 5 consente una visione adeguata della discussione.

memberperpage: Deve essere impostato con il numero di utenti visualizzabili per ogni pagina. Il valore di default 15 consente una visione adeguata della pagina utenti registrati.

4.4 Upload dei file

Una volta configurato il nostro sito bisognerà provvere a pubblicarlo su internet. Il provider del nostro account acquistato ci deve fornire un indirizzo di riferimento al quale collegarsi per copiare i file dal nostro computer al server. Ci verranno forniti anche un username e password. Ora occorrerà un client FTP che ci permetta di eseguire questa operazione, inseriamo i tre dati (url, username, password) e copiamo l'intero contenuto della directory flatnuke all'interno del nostro spazio.

4.5 Impostazione permessi

Per poter permettere di creare file di news, utenti o discussioni, bisogna impostare i permessi di alcune directory. Per fare questo possiamo avere a disposizione del client FTP un'interfaccia grafica che ci facilita l'operazione. In tale caso impostare con permessi di lettura, scrittura e esecuzione sia l'user, che group, che others le seguenti directory e file:

news/
misc/
misc/motd.php
forum/users/
forum/topics/
Nel qual caso si avesse un client testuale o si stesse amministrando il server con una shell sarà sufficiente utilizzare il comando:
# chmod 777 <file>
sostituendo a file ogni elemento della lista precedente.

4.6 Visita sito

Ultimo passo, conclusivo e rilassante è l'ammirazione del lavoro fatto fino ad ora. Si apra il browser e si vada all'indirizzo di riferimento del vostro sito, se tutto è andato a buon fine verrà visualizzata la pagina principale priva di news e con un messaggio di benvenuto. Per l'amministrazione del sito leggi la sezione successiva.

5. Gestire gli utenti

flatnuke identifica tre tipologie di utenti: utente admin, utente registrato, utente ospite.

5.1 L'account admin

Per amministrare un sito creato con flatnuke occorre creare un utente con username admin. E' possibile creare un utente o con il blocco login sulla destra o attraverso il forum. L'account per il forum e il sito è il medesimo. E' buona norma scegliere una password almeno di 8 caratteri per l'amministratore ed inoltre dovrebbe essere cambiata una volta al mese. Le password per gli account sono memorizzate in un file non leggibile dall'esterno e crittografate tramite la funzione hash MD5. L'utente admin una volta loggato correttamente avrà accesso alla modifica del benvenuto, all'inserimento delle news o alla pubblicazione delle news segnalate da altri utenti. Inoltre potrà modificare o eliminare i contenuti del sito come sezioni, news o post nel forum.

5.2 L'utente registrato

La procedura per registrare un utente è la stessa dell'amministratore, in questo caso si sceglierà l'username preferito. Un utente registrato può segnalare le news, postare commenti, postare sul forum e gestire il suo profilo all'interno del forum stesso.

5.3 L'utente ospite

Un utente non registrato è definito ospite. Con le impostazioni di default un ospite può postare commenti alle news, ma non segnalarle; in tutti i modi tali operazioni sono personalizzabili attraverso il file config.php come descritto precedentemente.

6. Gestire le news

Ogni CMS che si rispetti permette l'inserimento di contenuti a rapido aggiornamento, di solito inseriti in home page. Flatnuke utilizza un sistema basato sulla pubblicazione di news. Le news possono contenere aggiornamenti sul sito o anche articoli o documenti.

6.1 Inseririmento

Per inserire una news occorre essere autenticati come admin. Nel blocco di destra Login verranno visualizzate le voci:

Nell'home page in alto sopra le news è presente un blocco che serve per fornire un'abstract del sito, una breve descrizione o una presentazione dell'autore. E' il classico motd Unix. Tale messaggio è, appunto modificabile attrverso la primo link. L'inserimento della news, permette di definire un titolo, un argomento, un'intestazione e un corpo.

Il titolo della news la identifica come verrebbe identificata una email dal suo oggetto; l'argomento è rappresentato metaforicamente da un'icona (vedi paragrafo successivo) che ne esprime il suo significato, l'intestazione della news è la parte visibile direttamente in home page, mentre il corpo è visibile esclusivamente leggendo l'intera notizia.

Un utente registrato o, a seconda dei casi, anche un utente ospite può segnalare una news, con gli stessi campi, attraverso il link Segnala news nel blocco servizi sulla sinistra. Tale segnalazione perverrà all'amministratore che deciderà a sua discrezione se pubblicare o meno la news. Per visualizzare, pubblicare o eliminare le news segnalate dagli utenti l'admin dovrà seguire il link News segnalate (x) nel blocco login sulla destra dove la x rappresenta il numero di news in attesa di pubblicazione.

6.2 Classificazione argomenti

Le news sono classificate per argomenti, con il pacchetto standard, flatnuke offre alcuni argomenti e quindi alcune icone rappresentative. Per aggiungere un argomento, e qui iniziamo a vedere la dinamicità di flatnuke, sarà sufficiente aggiungere un'icona (formato png, jpg, gif, ecc.) all'interno della directory images/news con il nome dell'argomento desiderato (Es. gatti.jpg). Flatnuke automaticamente inserirà il nuovo argomento tra quelli disponibili. E' possibile effettuare ricerche per argomenti delle news attraverso il link Archivio news nel blocco servizi di sinistra oppure cliccando direttamente sull'icona della news in home page. In tal modo una prima organizzazione dei contenuti è effettuata in base all'argomentazione delle news stesse.

6.3 Modifica e eliminazione

Per modificare una news occorre essere autenticati correttamente come admin e seguire il link Modifica posto al di sotto della news prescelta, dopodichè verrà aperto un editor di contenuti che visualizzerà il testo modificabile della news. Flatnuke dalla verisione 2.3 offre un formato più leggibile per le proprie news basato su XML. Flatnuke ha infetti un proprio namespace XML che utilizza per definire i propri TAG. Per modificare la news occorre dare uno sguardo al DTD:


<!ELEMENT fn:news (fn:title, fn:avatar, fn:reads, fn:header, fn:body, fn:comments?)>
<!ATTLIST fn:news
xmlns:fn CDATA #FIXED "http://flatnuke.sourceforge.net/news">
<!ELEMENT fn:title #PCDATA>
<!ELEMENT fn:avatar #PCDATA>
<!ELEMENT fn:reads #PCDATA>
<!ELEMENT fn:header #PCDATA>
<!ELEMENT fn:body #PCDATA>
<!ELEMENT fn:comments (fn:comment)+>
<!ELEMENT fn:comment (fn:by,fn:post)>
<!ELEMENT fn:by #PCDATA>
<!ELEMENT fn:post #PCDATA>

L'XML permette così di identificare univocamente i campi della news. Per eliminare la news invece sarà sufficiente seguire il link Elimina, posto come sempre al di sotto della news interessata.

6.4 Aggiunta di commenti

Un CMS deve offrire tra le sue features anche quella di poter far interagire i visitatori con l'autore dei contenuti, in poche parole una news pubblicata può suscitare commenti o giudizi, positivi o negativi che siano, per cui si deve dare possibilità agli utenti di esprimersi. A seconda delle impostazioni, un utente registrato o no, può inserire uno o più commenti ad una news semplicemente seguendo il link Commenti? (x) dove la x rappresenta il numero di commenti già espressi dagli altri utenti.

6.5 Stampa delle news

Sotto ogni notizia è presente la data e l'ora di pubblicazione della notizia e il numero delle volte in cui è stata letta dai visitatori. Se si reputa interessante un articolo pubblicato attraverso il sistema delle news, è possibile stamparlo seguendo il link Stampa, verrà aperta una nuova finestra del browser e verrà lanciata l'applicazione che gestisce la stampa nel proprio sistema. Per offrire una stampa chiara e pulita verrà utilizzato un metodo alternativo di visualizzazione indipendente dal tema e da ogni stile presente nel sito.

6.6 flatpops

flatpops è un mio progetto che si prefigge lo scopo di offrire un metodo alternativo per la lettura delle news in un portale costruito con flatnuke. Come vedremo più avanti, flatnuke genera un indice delle news pubblicate in base allo standard W3C RDF/RSS. Tale indice contiene riferimenti diretti e indiretti alle nostizie presenti sul sito, esistono dei programmi chiamati aggregator che permettono di visualizzare tale indice e visualizzare a comando una notizia. Flatpops invece si serve di questo indice per prelevare le notizie e inserirle all'interno del proprio client email. Flatpops è un server POP3 che viene eseguito in locale ed interfacciandosi con il sito di riferimento preleva le news come fossero tradizionali email. Il server POP di flatpops si basa sul motore di liberoPOPs ( http://liberopops.sourceforge.net), progetto al quale partecipo nello sviluppo. Attualmente flatpops è ancora in fase di testing ma presto sarà disponibile per la prima release ufficiale.

7. Gestire i contenuti

Iniziamo a vedere le modalità di inserimento dei contenuti, le potenzialità di flatnuke e le operazioni necessarie per effettuare il proprio lavoro.

7.1 Le sezioni

Le sezioni rappresentano il vero e proprio cuore per l'organizzazione dei contenuti di flatnuke. Il motore delle sezioni di flatnuke si basa su un concetto fondamentale, se esiste già una struttura ben organizzata è inutile crearne un'altra sopra. Come abbiamo già visto flatnuke si basa sull'impiego di soli file di testo, per questo lo strumento migliore per l'organizzazione dei contenuti è sicuramente fornito dal silesystem stesso. Il filesystem infatti offre di per sè una struttura gerarchica in base a directory, sottodirectory e file; accedere quindi direttamente al filesystem attraverso le syscall (tradotte dal PHP) è notevolmente più performante di un tradizionale accesso a DBMS.

Le sezioni risiedono nella directory sections. Nel pacchetto flatnuke è inclusa una sezione di esempio chiamata Prova, in tutti i modi ora vedremo come realizzarne una partendo da zero.

7.2 Inserire una sezione

Dopo aver accuratamente organizzato mentalmente, o meglio ancora su carta, la nostra struttura del sito, viene il momento di riproporla in flatnuke. Partiamo con il presupposto che ogni sito affronterà una tematica, e prendiamo in particolare l'esempio di un sito di animali. Il primo passo da effetturare è evidenziare quali classi ci sono sotto la radice animali. Supponiamo di voler classificare gli animali in: predatori, pesci, uccelli, dinosauri. Entriamo all'interno della directory sections e creiamo una directory col nome predatori. Entriamo nella directory appena creata e creiamo qui un file con nome section.php, tale file è visto da flatnuke come l'indice della sezione. All'interno di section.php possiamo inserire codice HTML, PHP, immagini e qualsiasi altra cosa visualizzabile dal browser. Se andiamo a visualizzare ora la nostra home page ci accorgiamo che nel menu principale è apparsa la voce che abbiamo appena inserito predatori. Se clicchiamo sopra al link verrà visualizzato il nostro testo inserito all'interno di section.php, semplice no? Facciamo la stessa cosa per pesci, uccelli e dinosauri. Il risultato è quello di avere nel menu principale i link alle nostre sezioni.

7.3 Ordinare le sezioni

Flatnuke offre semplici metodi per la visualizzazione ordinata delle sezioni. Supponiamo di voler avere nel menu dall'alto in basso le voci in questo ordine: (uccelli, pesci, predatori, dinosauri). Se non si adotta nessuna politica di ordinamento flatnuke segue l'ordine alfabetico dei nomi. Per posizionare uccelli all'inizio del menu sarà sufficiente rinominarlo con un prefisso ``NN_'' dove NN è un numero decimale a due cifre. Rinominiamo quindi la sezione uccelli in 01_uccelli, e le altre in base all'ordine voluto. E' disponibile un ulteriore prefisso che permette di nascondere il link nel menu, utilizzando infatti ``none_'' si informa flatnuke di non visualizzare quella sezione all'interno del menu principale. Supponiamo quindi di non voler includere i dinosauri nel menu principale e rinominiamo dinosauri in none_dinosari. Vedremo poi più avanti come utilizzare un blocco alternativo per visualizzare questo link.

7.4 Modellare le sezioni e sottosezioni

La struttura delle sezioni viene, quindi, creata con sottodirectory annidate. Le regole viste nel paragrafo precedente sono valide per tutti i nomi di sezioni o sottosezioni e come vedremo più avanti anche per i blocchi. Creiamo ora una sottosezione per la sezione uccelli, che grazie al prefisso 01_ ora è al primo posto nel nostro menu. Entriamo in sections/01_uccelli e creiamo una directory pappagalli. All'interno della sottodirectory pappagalli non potrà mancare il classico section.php che conterrà il testo relativo alla sezione di riferimento. Si procede in questa maniera di volta in volta sempre più verso lo specifico. Le sottosezioni di una sezione verranno visualizzate nello spazio sottostante al testo relativo alla sezione, inoltre nella tabella centrale è disponibile una barra di navigazione che indica il percorso compiuto.

7.5 Riferimenti a file

All'interno di una sezione potremmo aver bisogno di riferirci a file contenuti all'interno della directory ma differenti da section.php. Esiste un modo per facilitare la costruzione di link a risorse sullo stesso livello. Tale metodo è illustrato nella sezione di esempio Prova contenuta all'interno del pacchetto flatnuke. Supponiamo di essere all'interno di sections/01_uccelli/02_pappagalli/ e di volere creare un file per ogni pappagallo e di visualizzare i link all'interno dell'indice della sezione section.php. Il file section.php allora dovrà contenere nelle prime righe questo pezzo di codice:


<?
$modname = $_GET['mod'];
$myurl="index.php?mod=$modname&file=";
?>

che ci permette di costruire link a file. Useremo poi questo codice per riferirci al nostro pappagallo cocorito.
I pappagalli sono uccelli molto intelligenti.......
......
Eccone alcuni esempi:
<a href="<?=$myurl?>cocorito.php">Cocorito</a>
<a href="<?=$myurl?>pasqualino.php">Pasqualino</a>
<a href="<?=$myurl?>filippo.php">Filippo</a>

Sarà sufficiente ora creare all'interno di sections/01_uccelli/02_pappagalli i file cocorito.php, pasqualino.php, filippo.php e riempirli con il testo di riferimento. Per inserire un'immagine (del pappagallo appunto) creiamo all'interno della directory principale riservata alle immagini (images) la directory pappagalli e all'interno inseriamo cocorito.jpg. La foto sarà visualizzabile con il codice:
<img src="images/pappagalli/cocorito.jpg">

7.6 Modifica delle sezioni

Se un file in una sezione ha i permessi di scrittura e noi siamo autenticati come admin verrà visualizzato in fondo al testo un pulsante Modifica che ci permetterà di modificare il testo contenuto all'interno. Per dare la possibilità di modifica ad una sezione sarà quindi necessario attribuire i permessi di scrittura a directory e file interessati.

8. I blocchi

I blocchi sono dei contenitori posizionati a destra e a sinistra della pagina, o a seconda del tema, in qualsiasi altra posizione. All'interno possono contenere link, testo, immagini, ecc. Flatnuke gestisce i blocchi in modo molto semplice.

8.1 Inserire un blocco

Per creare un nuovo blocco entriamo nella directory blocks/dx o blocks/sx rispettivamente se lo desideriamo a destra o a sinistra. Creiamo un blocco per visualizzare l'immagine del nostro pappagallo. Sarà sufficiente creare il file foto.php all'interno della directory selezionata e inserire all'interno il codice:


<br>
<img src="images/pappagalli/cocorito.jpg">
<br>

Automaticamente sarà inserito nelle pagine di flatnuke. Come per le sezioni, anche per i blocchi esiste un metodo per gestire la visualizzazione. In effetti per ordinare i blocchi in ordine di posizione, flatnuke utilizza, come sempre, l'ordine alfabatico. Per cambiare l'ordine di visualizzazione si utilizza il tradizionale prefisso ``NN_'' dove NN è un numero decimale a due cifre. Quindi possiamo rinominare il nostro foto.php in 03_foto.php e se volessimo disattivarlo basterà utilizzare il prefisso ``none_''.

8.2 Un blocco come menu

Un blocco può essere utilizzato come ulteriore menu, contenitore di link. Nel pacchetto flatnuke esiste l'esempio del blocco servizi (blocks/sx/01_Servizi.php) che utilizza questa tecnica. Tale funzionalità è particolarmente utile per indicizzare sezioni che non vogliamo visualizzare nel blocco menu principale (come abbiamo visto nel paragrafo delle sezioni), quindi una sezione con il prefisso ``none_''. Per tornare al nostro esempio ci riferiamo alla sezione che abbiamo deciso di non includere nel menu none_dinosauri. Supponiamo di creare un blocco blocks/sx/02_preistoria.php, all'interno per indicizzare la sezione dinosauri inseriamo il codice:


<br>
<a href="index.php?mod=none_dinosauri">Dinosauri</a>
<br>

8.3 Il blocco sondaggio

Il blocco sondaggio (FlatPoll) è stato creato da Marco Segato che ne è anche l'attuale mantainer, e che potete contattare all'indirizzo segatom@users.sourceforge.net per eventuali consigli, suggerimenti o correzioni.

Descrizione

Questo blocco è nato per dotare FlatNuke di uno degli strumenti classici dei CMS, il sondaggio, utile mezzo a disposizione del webmaster per conoscere i gusti e le tendenze dei visitatori delle proprie pagine, ma anche importante terreno di confronto interattivo tra gli utenti.
Nell'installazione di default, il blocco si trova sulla destra della pagina principale, e per gli utenti normali si presenta in questo modo: in alto c'è il titolo del sondaggio, in mezzo al blocco ci sono le varie opzioni di voto, e in basso due pulsanti, Vota e Risultati; il primo permette, dopo aver scelto una delle opzioni, di esprimere il proprio voto sull'argomento proposto, mentre il secondo visualizza lo stato corrente dei voti, presentando il numero totale dei voti ed un semplice grafico a barre con il numero di preferenze per risposta. Sempre nella pagina dei risultati, è anche possibile prendere visione dei sondaggi che sono stati chiusi ed archiviati dall'amministratore: è sufficiente premere il link Vecchi sondaggi, e verranno elencati i sondaggi passati con tutte le informazioni sui voti e sulla data di chiusura.
E' importante sottolineare che, per impedire falsamenti sui voti dei sondaggi, è stato inserito un controllo sull'indirizzo IP di chi vota, impostando un intervallo di tempo tra un voto e l'altro proveniente dallo stesso IP; questo naturalmente non previene che lo stesso utente possa votare più e più volte, ma almeno limita questa pratica dannosa.

Amministrazione

L'amministratore del sito deve innanzitutto preoccuparsi di impostare le preferenze generali del blocco sondaggi, operazione che va fatta solamente la prima volta: è sufficiente entrare all'interno della directory /sections/none_Sondaggio ed editare il file config.php con un qualsiasi editor di testo; il file appare come una successione di variabili da impostare, eccone un esempio:


$mod1 = "none_Sondaggio";                          // mod per index.php
$mod2 = "none_Sondaggio/Vecchi_sondaggi";          // mod per index.php

$mod3 = "misc/flatpoll";                           // directory con gli archivi

$sondaggio_file_dati = "$mod3/sondaggio.php";      // file in cui e` salvato il
                                                      sondaggio corrente
$sondaggio_ip_file = "$mod3/ip.php";               // file in cui sono salvati
                                                      gli IP dei votanti
$percorso_vecchi = $mod3;                          // directory che contiene i 
                                                      sondaggi archiviati

$sondaggio_immagine = "sections/$mod1/xcento.png"; // immagine della percentuale
                                                      dei voti

$sondaggio_ip_scadenza = 2;                        // intervallo di ore tra un 
                                                      voto e l'altro dello
                                                      stesso IP

Esaminiamo una per volta tutte le opzioni.

mod1: Deve essere impostato con il nome della directory che contiene il file che si occupa di gestire il sondaggio corrente; è sconsigliabile modificarlo.

mod2: Deve essere impostato con il nome della directory che contiene il file che si occupa di gestire i sondaggi archiviati; è sconsigliabile modificarlo.

mod3: Deve essere impostato con il nome della directory che contiene i file di memorizzazione del sondaggio; è sconsigliabile modificarlo, dato che la directory /misc impostata di default è quella che possiede già i corretti permessi di scrittura, mentre altre potrebbero non averli.

sondaggio_file_dati: Deve essere impostato con il nome del file in cui sono salvati i dati del sondaggio corrente.

sondaggio_ip_file: Deve essere impostato con il nome del file in cui sono salvati gli indirizzi IP dei votanti.

percorso_vecchi: Deve essere impostato con il nome della directory che contiene i sondaggi archiviati; è sconsigliabile modificarlo, dato che la directory /misc impostata di default è quella che possiede già i corretti permessi di scrittura, mentre altre potrebbero non averli.

sondaggio_immagine: Deve essere impostato con il nome del file immagine che serve per disegnare il grafico della percentuale dei voti; come nell'immagine utilizzata di default, è consigliabile sceglierne una che abbia come larghezza 1 pixel.

sondaggio_ip_scadenza: Deve essere impostato con il numero che indica l'intervallo di ore tra un voto e l'altro dello stesso indirizzo IP.

Una volta entrato nel sito e fatto il login, l'amministratore (e solo lui) ha la possibilità di andare a modificare il sondaggio, chiuderlo e archiviarlo, oppure crearne uno nuovo: il tutto avviene premendo il pulsante Admin presente direttamente nel blocco. Premendo questo pulsante si presenta una maschera di amministrazione del sondaggio:

A seconda dell'attività del proprio sito, è anche possibile che il numero di sondaggi archiviati sia molto elevato, oppure può sopravvenire la necessità di sfoltirli: è possibile fare tutto ciò premendo Vecchi sondaggi per visualizzarne l'intero elenco, poi selezionare la casellina che compare sotto il sondaggio, e premere il pulsante Elimina.

8.4 Il blocco statistiche

9. Il forum

9.1 Profilo utente

9.2 Discussioni

9.3 Post

10. I temi