<simone_vellei@sourceforge.net
>
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.
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.
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à.
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.
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).
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.
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.
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.
flatnuke attualmente ha le seguenti caratteristiche:
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.
Per installare flatnuke occorrono 5 semplici passi:
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.
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)
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.
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.
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.
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.
flatnuke identifica tre tipologie di utenti: utente admin, utente registrato, utente ospite.
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.
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.
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.
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.
Per inserire una news occorre essere autenticati come admin. Nel blocco di destra Login verranno visualizzate le voci:
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.
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.
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>
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.
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.
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.
Iniziamo a vedere le modalità di inserimento dei contenuti, le potenzialità di flatnuke e le operazioni necessarie per effettuare il proprio lavoro.
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.
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.
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.
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.
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="; ?>
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>
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">
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.
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.
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>
foto.php
in 03_foto.php
e se
volessimo disattivarlo basterà utilizzare il prefisso ``none_''.
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>
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.
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.
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: