NOTE ---------------------------------------------------------

Questo script  stato scritto interamente da Shawn. 
Tutti i file di questo script sono COMPLETAMENTE OPEN SOURCE per questo sei 
libero di distribuirli, copiarli, modificarli, manipolarli o qualsiasi cosa 
ti venga in mente (eccetto venderli) senza dover richiedere alcun permesso 
all'autore. Nonostante questo commenti, consigli o segnalazioni di bug sono 
molto graditi :-)

Se usi questo script  inoltre gradito, ma NON necessario, che venga specificato un 
credit all'autore.

Per contattarmi scrivi a enrico@kristinkreuk.it

Dunque questa  la prima volta che pubblico uno script sul web per questo siate clementi :-)



CREDITS --------------------------------------------------------

So che graficamente questo guestbook assomiglia molto all'Achims guestbook (di Saibal mi pare) e ammetto che ho preso spunto a livello grafico su come impostare la struttura della mia applicazione. Ad ogni modo OGNI PARTE DI QUESTO CODICE, COMPRESI I FOGLI DI STILE,  INTERAMENTE SCRITTA DA ME E PER QUESTO NON HO NEANCHE GUARDATO UNA PARTE DEL CODICE DI ALTRI GUESTBOOK, MA HO PRESO SPUNTO SOLO DALL'INTERFACCIA FINALE PER VEDERE COME SAREBBE DOVUTO VENIRE IL TUTTO. Questo  facilmente riconoscibile dal codice visto che non  particolarmente complesso e utilizza metodi IMHO non molto utilizzati, come quello delle hotwords (termine coniato da me per l'occasione, non credo sia quello giusto :-) Per informazioni tecniche su cosa siano vedere le note tecniche qui sotto).

Il vero ringraziamento lo do all'articolo "Utilizziamo i template integrati con Php", letto su freephp.html.it, che mi ha dato spunto a creare questa applicazione (qualche stringa di codice  simile). L'indirizzo diretto  http://freephp.html.it/articoli/view_articolo.asp?id=67

Qui sotto scrivo delle note tecniche riguardo al funzionamento che potrete tranquillamente saltare se volete passare direttamente all'installazione dello script.





NOTE TECNICHE ---------------------------------------------------------

Innanzitutto, per separare TOTALMENTE la parte grafica da quella tecnica in questo guestbook ho utilizzato un metodo che non avevo mai sperimentato.
In pratica ho creato un template normalissimo (in php, ma comunque contiene solo HTML e un po' di javascript) in cui nelle zone "dinamiche", ovvero quelle in cui andava il contenuto variabile, ho messo delle "hotword" di riconoscimento, es: "<-- TITOLO PAGINA -->" 

Poi, creo una pagina in PHP che non fa altro che richiamare il template in una variabile e sostituire il codice dinamico alle hotword. Per questo, ad esempio, nella hotword <-- FIRME --> sarebbe andato tutto il contenuto della query di interrogazione al database, quindi i post del guestbook. 

Il tutto con la funzione genera(), nella pagina genera_pagina.php, che richiede 4 parametri obbligatori e 2 facoltativi.

1 Il primo parametro "$nome_file",  la variabile in cui sar contenuto il template in PHP, HTML o addirittura .TXT (lo sconsiglio per ovvie ragioni di portabilit); 

2 il secondo parametro, "$nome_pagina"  il titolo della pagina (che andr a finire nel TAG <title> </title>); 

3 il terzo parametro, "$nome_guestbook",  il titolo che sar visualizzato in alto vicino al logo (al posto di "Shawn's guestbook"). Qualora tu non voglia alcun titolo (nel caso in cui ad esempio basta il logo oppure c' una topimage) cancella il div "titolo" con tutta la hotword "<-- NOME GUESTBOOK -->" nel file main_template.inc.php e in reind_template.inc.php; 

4 il quarto parametro, "$contenuto_pagina",  la variabile in cui si deve inserire l'elaborazione finale del contenuto principale della pagina; 

5-6 gli ultimi due parametri sono facoltativi. "$numero_posts"  la variabile in cui c' il numero totale dei post, impostata per default a zero nel caso in cui venga cancellata la hotword "<-- NUMERO POSTS -->". Allo stesso modo, $navigazione  la variabile in cui ci sta tutto il controllo per la suddivisione delle firme in pagine, che si omette nelle pagine in cui non vengono visualizzati i post (es. il form per inserire una firma al guestbook). 

Con questo  tutto, so di non essere stato chiarissimo ma vi invito a capire il codice direttamente che non penso sia poi cos complesso (disordine permettendo :-)





INSTALLAZIONE --------------------------------------------

1 - Copia l'intero script in una cartella all'interno di htdocs (o qualunque cartella tu abbia impostato per visualizzare le pagine php) di Apache, oppure sul server remoto di hosting.

2 - Apri il file config.inc.php con un editor e modifica i parametri di connessione al database.

3 - Apri installa.php da browser e segui le indicazioni

4 - Se l'installazione  riuscita cancella il file _install.php e installa.php e utilizza il guestbook!





MODIFICHE AL LAYOUT ---------------------------------------------------

In questa applicazione le modifiche al layout sono molto semplici: basta che cambi il layout come se fosse una pagina HTML normale facendo attenzione a dove metti le hotword (es. <-- NOME GUESTBOOK -->) perch quelle determinano dove va il contenuto dello script. FAI ATTENZIONE A NON MODIFICARE LE HOTWORD O LO SCRIPT NON LE RICONOSCER PI E POTREBBERO ESSERCI DEGLI EFFETTI INDESIDERATI.

Per cambiare i CSS c' il file main.css, al quale fanno riferimento praticamente tutti gli stili utilizzati nel guestbook, basta trovare quello giusto :-)

Ogni hotword pu essere inserita pi volte per ottenere l'output multiplo di uno stesso script (ad esempio la barra di navigazione sta sia sopra che sotto proprio perch la sua relativa hotword <-- NAVIGAZIONE -->  inserita due volte). 

E' anche possibile eliminare una hotword purch questa non sia necessaria al funzionamento dell'applicazione. Le hotword da NON CANCELLARE sono

<-- CONTENUTO PAGINA -->
<-- NAVIGAZIONE --> (solo in main_template.inc.php)
<-- DATA --> (solo in modulo.inc.php)

Le altre si possono cancellare senza compromettere il funzionamento del programma per  palese che se ad esempio cancelliamo la hotword <-- CONTENUTO INFO --> non sar pi visualizzato il nome della persona che ha firmato, quindi  sconsigliabile.

Qui si seguito riporto tutte le hotword utilizzare e il loro relativo significato

<-- NOME PAGINA --> : E' la hotword che definisce il contenuto del tag <title> </title> della pagina

<-- NOME GUESTBOOK --> : E' la hotword che contiene il nome del guestbook che andr in alto vicino al logo

<-- NUMERO POSTS --> : Questo sar il numero di post totali.

<-- NAVIGAZIONE --> : La barra di navigazione che si occupa di suddividere i post in pagine. Per modificare il numero di post per pagina cambiare il parametro $per_pagina in navigazione.inc.php.

<-- CONTENUTO PAGINA --> : Dove andr tutto il contenuto della pagina corrente. Senza questa hotword rimane un layout con la struttura ma vuoto di contenuti.

<-- DATA --> : La data e l'ora corrente, si pu inserire ovunque. Nello script  utilizzata per indicare la data e l'ora in cui l'utente firma il guestbook. Per cambiare il formato della data e dell'ora modificare il parametro $time in genera_pagina.php

<-- COLORE BACKGROUND --> : Controlla il cambiamento di colore nei post (es. grigio scuro, grigio chiaro, grigio scuro, grigio chiaro, per intenderci...:-). Consiglio di lasciare questa hotword l dov', se si vogliono cambiare i colori fare riferimento ai parametri $colore1 e $colore2 nella pagina main.php

<-- CONTENUTO INFO --> : Qui andr il nome dell'utente che posta il messaggio. Consiglio di lasciarlo l dov' a meno che non si abbia capito lo script a fondo.

<-- CONTENUTO TESTO --> : Invece qui ci sar il testo dell'utente che firma il guestbook. Come sopra lasciatelo dov'.

<-- CONTENUTO DATI --> : Far apparire le icone in base ai dati che avr immesso l'utente. Ad esempio se  l'utente immete il sito web e l'email ma non l'ICQ e l'AIM appariranno solo le icone email.gif e home.gif con i relativi link. Stessa nota di sopra.

<-- CONTENUTO DATA --> : Data in cui l'utente ha firmato il guestbook. Stessa nota di sopra.

<-- SMILIES --> : Visualizza tutti gli smilies numerati nella cartella graphic/smilies. Se non inserita nella pagina modulo.inc.php l'utente non potr inserire smilies nei messaggi.

NOTA SMILIES ----------------------------------------

Per esigenze di script, gli smilies dovranno chiamarsi da 1.gif, 2.gif, 3.gif, n.gif etc e non dovranno avere interruzioni nel conteggio (es. 1.gif 3.gif 4.gif) o l'applicazione non li riconoscer tutti.
