Vai alla pagina precedente Vai alla pagina successiva Stampa questa pagina Torna alla Home Supporto italiano Supporto internazionale    

AJAX CHAT

AJAX (Asynchronous Javascript And XML) è una tecnica di sviluppo che permette di realizzare delle applicazioni web interattive in grado di estendere moltissimo il potenziale del classico linguaggio HTML; una delle caratteristiche più note di AJAX è la possibilità di far scambiare dei dati tra il browser e il server senza la necessità di ricaricare l'intera pagina.

Per il completo utilizzo delle funzionalità AJAX su Icy Phoenix è necessario settare su "SI" l'opzione ACP >> Configurazione >> Icy Phoenix >> Abilita AJAX (senza questo settaggio la chat non funzionerà).

AJAX è utilizzato per la Chat ed anche per la Shoutbox; le due cose non vanno confuse tra loro... la chat permette uno scambio in tempo reale tra gli utenti (ed è possibile vedere chi è connesso in quel momento), mentre la shoutbox è più una lavagna su cui lasciare dei brevi messaggi che ogni utente potrà poi leggere con calma.

La pagina della Ajax Chat è tuo_forum/ajax_chat.php, il link si trova già nel menù principale in home page. E' possibile inserire un blocco con la chat dove voglia nel nostro sito, selezionando la voce "ajax shotbox [Chat AJAX]" nell'elenco dei blocchi predefiniti

Ecco come ci appare la chat nella sua visualizzazione predefinita (per un problema di non corretta gestione dei CSS da parte del browser di casa Microsoft è possibile che su Internet Explorer la visualizzazione sia differente, con uno spazio maggiore tra un intervento e l'altro della chat).

L'amministratore del forum può moderare i messaggi cancellandoli uno per uno dalla pagina principale di chat (nota: il link [ Cancella ] non è visualizzato dagli utenti, ma è solo per gli admin), oppure può andare alla pagina tuo_forum/ajax_chat.php?mode=archive o, infine, può anche svuotare la tabella della chat via PhpMyAdmin se gli interventi sono molti. Le tabelle da svuotare sono ip_ajax_shoutbox ed ip_ajax_shoutbox_sessions, che sebbene riportino il nome "shoutbox" sono invece connessa alla chat (la tabella della shoutbox è ip_shout).
Ecco la schermata di ajax_chat.php?mode=archive:

La configurazione in merito al tempo di refresh, a quanti messaggi memorizzare e quanti farne apparire e se consentirne o meno l'uso agli ospiti si trova in ACP >> Configurazione >> Sito >> AJAX Shoutbox. L'impostazione è intuitiva e non richiede spiegazioni.

 

 


 

COME RENDERE SCROLLABILE LA CHAT?

Per impostazione standard la chat si allunga fino al limite settato di messaggi impostato in ACP >> Configurazione >> Sito >> AJAX Shoutbox. Se volete che questo non accada (e non volete impostare un numero troppo basso di messaggi visibili) dovete fare così:

APRI
templates\default\blocks\ajax_shoutbox_block.tpl

CANCELLA

{SHOUTBOX_BODY}

SOSTITUISCI CON

<div style="width:100%; height:450px; overflow: auto; position:static">{SHOUTBOX_BODY}
</div>

Il valore dell'altezza può essere cambiato a piacimento.


 

COME FAR APPARIRE LA FINESTRA "ONLINE IN CHAT"?


Per vedere chi è online nella chat apri il file templates/default/ajax_chat_body.tpl e togli i codici <!-- e --> dal testo, salva e carica via FTP il file.

{SHOUTBOX_BODY}

<!--
<br /><br />
<table class="forumline" width="40%" cellspacing="0" cellpadding="0">
<tr><th>{L_WIO}</th></tr>
<tr><td class="row1"><span class="post-text" id="online_list"></span></td></tr>
<tr>
<td class="row2">
<span class="gensmall">
{L_TOTAL}:<b><span id="total_c">0</span></b><br />
{L_USERS}:<b><span id="user_c">0</span></b><br />
{L_GUESTS}:<b><span id="guests_c">0</span></b><br />
{L_SHOUTBOX_ONLINE_EXPLAIN}
</span>
</td>
</tr>
</table>
-->

 


 

COME FAR MODERARE LA CHAT AI MODERATORI DEL FORUM?

Per far sì che non solo l'admin ma anche i moderatori possano cancellare gli interventi nella chat è necessario fare una piccola modifica al codice:

APRI
includes/ajax_shoutbox_inc.php

CERCA

if(($userdata['user_level'] == ADMIN) && ($userdata['session_logged_in']))

SOSTITUISCI CON

if(($userdata['user_level'] == ADMIN) || ($userdata['user_level'] == MOD) && ($userdata['session_logged_in']))

CERCA

if($userdata['user_level'] == ADMIN)

SOSTITUISCI CON

if($userdata['user_level'] == MOD || ($userdata['user_level'] == ADMIN ))

E il gioco è fatto!

Nota: per eventuali problemi connessi all'ora all'interno della chat guarda questa discussione.