Salve a tutti.
Da un po' di tempo sto lavorando su una chat scaricata da freephp: LSPhpChat1.1
Sono riuscito a modificarla in varie parti, inserendo messaggi speciali, modificandola nella configurazione generale e quant'altro finora mi sia stato possibile fare.
Una cosa che non sono riuscito a fare è però quella di insrire una stringa che mi permetta di inviare messaggi privati agli utenti presenti nella chat. Messaggi privati che però siano visualizzabili all'interno della pagina stessa e non in una form a parte.
Qualcosa che compaia solo all'utente destinatario del messaggio e che si presenti più o meno in questo modo:
-Messaggio privato da Tizio-
Ehi ciao come stai?
Quindi sostanzialmente qualcosa che si sviluppi su due righe: quella superiore che contanga la specifica "-Messaggio privato da $nick-"; quello inferiore in cui compare il contenuto del messaggio, privo di nick, di orario e quant'altro. Solo il testo.
Se fosse possibile non mi dispiacerebbe che anche il mittente del messaggio possa visualizzare quanto ha scritto. In questo modo può seguire meglio la conversazione e rendersi conto di quel che ha scritto. Una cosa tipo:
-Hai scritto a Tizio-
Ehi ciao come stai?
Il destinatario visualizzerà il primo messaggio, il mittente il secondo. Ed entrambi potranno continuare a seguire la chat senza bisogno di ricorrere ad altre finestre aggiuntive.
Poi un'ultima cosa.
LsphpChat ha una modalità di scrolling e aggiornamento del testo in senso ascensionale. Quindi i nuovi messaggi tendono a salire anzicché scendere e l'aggiornamento automatico mi riporta sempre alla parte superiore della pagina.
Io invece vorrei invertire il flusso e far sì che il testo scorra verso il basso e che l'aggiornamento avvenga a fondo pagina e non a inizio pagina.
Tempo fa boomboom69 mi consigliò di sostituire questa stringa:
con questa:codice:$contenuto = $testa.$nuovo_mex.$vecchi_mexx.$coda;
ed effettivamente in questo modo il testo si succede a scendere e non a salire. L'unico problema è che l'aggiornamento riporta la pagina, creando problemi con l'uso della chat.codice:$contenuto = $testa.$vecchi_mexx.$nuovo_mex.$coda;
Ho provato a modificare le stringhe che mi sembravano più pertinenti, ma non ho mai ottenuto risultati. Sapreste darmi qualche consiglio?
Per comodità riporto tutto il codice della chat, magari voi riuscite a vedere meglio di me dove mettere mano.
Grazie a tutti![]()
codice:<?php //--Srtart code --// ////////////questa varibile si può modificare////////////////////////// require("config.inc.php"); ////////////////////////////////// /*Non è necessario modificare nient'altro*/ /////////////////////////////////// $ora = date("H:i:s"); $ip = getenv(REMOTE_ADDR); $now = time(); $testa = "<html><head><meta http-equiv=\"refresh\" content=\"$time_refresh\"></head><body bgcolor=\"$bgcolor\">\n"; $coda = "<!--LsPhpChat http://www.latoserver.com--></body></html>\n"; $err_mess = "Impossbile scrivere o trovare il file $pat. Assicuarsi che la cartella abbia i permessi di scrittura attivi (CHMOD 777) o verificare la variabile ".'$path'; if ($messaggio == $special_word){ clear(); } if (!empty($nick) && !empty($messaggio)){ $vecchi_mex = @file($path) or die ($err_mess); $nline = count($vecchi_mex); for ($i = 1; $i < $max_mex; $i++){ if ($i < $nline-1){ eregi("(.*)",$vecchi_mex[$i],$nick_old); eregi("",$vecchi_mex[$i],$ip_old); eregi("",$vecchi_mex[$i],$time_out); if ($nick == $nick_old[1] && $ip != $ip_old[1]){ $nick = $nick."_".mt_rand(0,10); } //echo $time_out[1]; if ($time_out[1]+($time_limit * 60) > $now ){ $vecchi_mexx .= $vecchi_mex[$i]; } } } if (!isset($lschat) || $lschat != $nick){ setcookie("lschat",$nick,time()+360000); } $messaggio = htmlspecialchars($messaggio); while (list($char,$rep) = each($emotion) ){ $messaggio = str_replace($char, "<img src=\"".$rep."\">", $messaggio ); } if ($moderate == "y"){ for ($i = 0; $i < count($badwords);$i++){ $messaggio = ereg_replace (strtoupper($badwords[$i]), str_repeat("x",strlen($badwords[$i])), strtoupper($messaggio)); } $messaggio = strtolower($messaggio); } //Per il corretto funzionamento del programma lasciare inalterate le sringe di commento//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// $nuovo_mex = "<font face=\"$font_face\" size=\"$font_size\" color=\"$fontcolor\">[$ora] - $nick:</font> <font face=\"$font_face\" size=\"$font_size\" color=\"$font_color\">".$messaggio."</font> \n"; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// $contenuto = $testa.$nuovo_mex.$vecchi_mexx.$coda; $contenuto=stripslashes($contenuto); $fp = @fopen($path,"w") or die ($err_mess); $len = strlen($contenuto); fwrite($fp,$contenuto,$len); fclose($fp); header("Location: $form_file"); }else{ header("Location: $form_file"); } function clear(){ global $testa; global $path; global $coda; global $form_file; $contenuto = $testa.$coda; $contenuto = stripslashes($contenuto); $fp = @fopen($path,"w"); $len = strlen($contenuto); fwrite($fp,$contenuto,$len); fclose($fp); header("Location: $form_file"); exit(); } /*--End code--*/ ?>
PS. Per ragioni di spazio qui non ho riportato le stringhe di commento relative alla licenza d'uso della chat, ma nel file originale le ho lasciate intatte.

Rispondi quotando

