Il guestbook generato da Evo9 non prevede un'impaginazione dei messaggi, che si visualizzano uno sotto l'altro; il form per l'inserimento dei messaggi si posiziona in fondo ai messaggi stessi .... e la barra di scroll verticale risulta obbligatoria affinchè si possa visualizzare tutto il contenuto presente.
In queste prove ho cercato di superare questo limite, modificando la funzione showGuestBook nel file x5engine.php ed utilizzando per l'impaginazione dei commenti il plugin jquery.paginate.js.
Le modifiche al file x5engine.php sono modifiche delicate. Basta sbagliare a sostituire una riga o omettere un punto e virgola e ... non funziona più nulla. Inoltre ad ogni aggiornamento del programma occorre ripristinare il file originale e quindi riapportare le modifiche. Invito pertanto chi volesse provare ad applicare quanto scrivo, ad agire con estrema prudenza.
Sono state predisposte due varianti, una con un unico messaggio visibile alla volta
http://stesil.unofficialwsx5.com/evo9/gbuno/ , una con un numero di messaggi più elevato, numero definibile in fase di progettazione del guestbook (in questa prova 4 messaggi):
http://stesil.unofficialwsx5.com/evo9/gbdue/ Istruzioni:
1. Widgets guestbook
Inserire un oggetto html, impostare l'allineamento a sinistra, indicare il valore in pixel dell'altezza dell'oggetto (es 500), non selezionare "visualizza barre di scorrimento" e dall'elenco widgets scegliere GuestBook.
Nella finestra che compare indicare:
- Public folder path: il percorso della cartella in cui verrà salvato il file contenente i messaggi; se la cartella è all'interno della root principale del sito, basta inserire il nome della cartella (assicurarsi che la stessa abbia i permessi di scrittura); se la cartella non esiste verrà generata automaticamente dal programma.
- Show Captcha: selezionare la casella se al form di inserimento dei messaggi si vuole aggiungere il codice captcha.
- Notification email address: inserire l'indirizzo email a cui inviare le notifiche di inserimento dei messaggi.
- Show inserted Comments immediately: se la casella è spuntata, i messaggi verranno inseriti non appena un utente clicca sul tasto invio, in caso contrario sarà l'amministratore del sito che approverà i commenti dall'apposita pagina presente all'indirizzo miosito/admin. I parametri per accedere al pannello di amministrazione sono impostabili in "Impostazioni Avanzate" --> "Gestione Accessi" --> admin.
Effettuate tutte le scelte, viene visualizzata una finestra di dialogo che richiede se impostare la pagina con estensione php. Cliccare su sì.
In questo modo viene generato il codice per il guestbook, che appare all'interno dell'oggetto html
Only registered users can see contents. Please click here to Register or Login.
2. Il plugin jquery.paginate.js
Scaricare dal sito
http://tympanus.net/codrops/2009/11/17/jpaginate-a-fancy-jquery-pagination-plugin/ il plugin per l'impaginazione. Nel file zippato sono presenti il file js, una cartella css contenente il file style.css e una cartella contenente alcune immagini.
Aprire il file jquery.paginate.js con il blocco note per sostituire le parole "last" = ultimo messaggio inserito con "first" = primo messaggio inserito (ovviamente si possono inserire anche termini alternativi) :
riga 50
Only registered users can see contents. Please click here to Register or Login.
e riga 82
Only registered users can see contents. Please click here to Register or Login.
Aprire il file sytle.css sempre con il Notepad e modificare i percorsi delle immagini: css e immagini verranno salvati nella stessa cartella files.
Only registered users can see contents. Please click here to Register or Login.
Nella scheda esperto dell'oggetto html, allegare i file per l'impaginazione dei commenti, e precisamente:
- i file modificati jquery.paginate.js e style.css, allegare nella cartella files e selezionare "Collega i file alla pagina";
- i file immagine che si trovano nella cartella images del plugin scaricato, se si desidera utilizzare l'opzione images="true", sempre nella cartella files.
3. L'impaginazione dei commenti
Aprire l'oggetto html con il codice per il guestbook generato dal programma, e, sotto il commento
<!-- GuestBook.GuestBook: END -->, inserire il seguente codice js se si vuole visualizzare un unico commento per pagina:
Only registered users can see contents. Please click here to Register or Login.
oppure questo codice, se si desidera visualizzare più di un commento per pagina:
Only registered users can see contents. Please click here to Register or Login.
Il codice js si occupa di mostrare/nascondere i div che contengono i commenti in funzione del numero di pagina visualizzato. Le parti personalizzabili sono le proprietà grafiche dei numeri di paginazione e precisamente:
- var displ = (pagina < 7)? pagina : 7; il numero indica quanti numeri di pagina devono essere sempre visibili. Se il numero di pagine presenti è inferiore al numero impostato, vengono visualizzate tutte le pagine.
- border_color: '#fff', il colore del bordo
- text_color: '#fff', il colore del testo
- background_color: '#808080', il colore di sfondo
- border_hover_color: '#000', il colore del bordo quando c'è il focus sull'elemento,
- text_hover_color : '#000', il colore del testo quando c'è il focus sull'elemento,
- background_hover_color: '#fff', il colore di sfondo quando c'è il focus sull'elemento,
- images: false; se impostato a true visualizza come immagine i pulsanti di avanzamento delle pagine
Nella scheda esperto, codice css, inserire:
Only registered users can see contents. Please click here to Register or Login.
in questo modo i commenti risultano invisibili finchè l'utente clicca sul numero di pagina corrispondente. Se la pagina viene visualizzata con js disattivato, nessun commento risulterà visibile. E' possibile aggiungere altre regole css per variare il colore dello sfondo o il colore del testo dei messaggi, assegnare un padding ... e personalizzare ulteriormente l'aspetto dei messaggi.
4. Le modifiche al file x5engine.php
Attenzione! Non apportare modifiche al file del programma, ma solo a quello del progetto che contiene il guestbook!Sono state effettuate modifiche alla funzione showGuestBook allo scopo di:
* separare il codice del form da quello dei messaggi, in modo da poterne variare la posizione nella pagina;
* identificare i messaggi con una classe e un id univoco;
* invertire l'ordine dei messaggi in modo tale che l'ultimo messaggio postato appaia per primo;
* inserire un div per visualizzare i numeri di pagina.
Ripeto, le modifiche devono essere effettuate solo al file del progetto su cui si sta lavorando. Procedere in questo modo: esportare il progetto su disco, fare per sicurezza una copia del file x5engine.php presente nella cartella res, aprire con il Notepad o il Blocco note il file e sostituire le righe di codice (versione 1748)
dalla riga 2389
[ Guests cannot view attachments ]
alla riga 2449
[ Guests cannot view attachments ]
con quelle presenti nell'allegato guestbookuno.php, per il guestbook con un unico messaggio visibile
[ Guests cannot view attachments ]
oppure con quelle presenti nell'allegato guestbookdue.php per il guestbook con più messaggi visibili.
[ Guests cannot view attachments ]
In quest'ultimo caso è possibile impostare il numero di messaggi che devono essere visualizzati in ogni pagina, cambiando il valore alla variabile
$com_page, impostata a 4 nel codice allegato.
A questo punto consiglio di provare il progetto online. Se tutto funziona come dovrebbe, è possibile allegare il file x5engine.php modificato nella scheda esperto dell'oggetto html e inserirlo nella cartella res. In questo modo esso sostituirà l'originale, evitando una sovrascrittura delle modifiche ad ogni esportazione.