Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php session_start();
- header('Content-Type:text/html; charset=UTF-8');
- $last_message = $_SESSION['last_message'];
- //Includio i parametri, la configurazione, la lingua e le funzioni
- require 'includes/constant_values.inc.php';
- require 'config.inc.php';
- require 'vocabulary/'.$PARAMETERS['languages']['set'].'.vocabulary.php';
- require 'includes/functions.inc.php';
- //Eseguo la connessione al database
- $handleDBConnection = gdrcd_connect();
- //Ricevo il tempo di reload
- $i_ref_time = gdrcd_filter_get($_GET['ref']);
- /**********************************************************************************/
- if((gdrcd_filter_get($_REQUEST['chat'])=='yes')&&(empty($_SESSION['login'])===FALSE))
- {
- ## ##############################
- ##
- ## LOGICHE INVIO SELECT Abilità e dado (LOGICHE SEPARATE)
- ##
- ## ##############################
- /*Se ho inviato un messaggio o usato un'abilità */
- if (gdrcd_filter('get',$_POST['op'])=='take_action')
- {
- //select di invio abilità
- if(gdrcd_filter('get', $_POST['id_ab']) != 'no_skill'){
- ## ##############################
- #
- # LOGICHE USO ABILITA'
- #
- # Funzionamento.
- #
- # come già anticipato nel file frame_chat ho rimosso tutte le logiche che riguardano l'uso di oggetti e del resto
- # che è di base su gdrcd. Così da ripulire un po' il codice.
- #
- # Per quanto riguarda il sistema abilità funziona come segue, l'utente seleziona dalla select che ha nella chat
- # l'abilità e il sistema controlla:
- #
- # #1 => Se il pg ha effettivamene acquistato l'abilità (il grado deve essere almeno >= 1)
- # # TRUE -> calcola il dado su base di quello max ($mdado) quindi usa l'abilità in chat
- # # FALSE -> stampa sussurro impossibile usare l'abilità.
- #
- #
- #
- ## ##############################
- if (gdrcd_filter('get',$_POST['id_ab'])!='no_skill'){
- #dado configurabile
- $mdado = 10;
- $id_abilita = gdrcd_filter('num',$_POST['id_ab']);
- $nome_pg = gdrcd_filter('in', $_SESSION['login']);
- #prelevo il nome dell'abilità
- $query = "SELECT nome FROM abilita WHERE id_abilita = ". $id_abilita ." LIMIT 1 ";
- $result = gdrcd_query($query, 'result');
- $fetch = gdrcd_query($result, 'fetch');
- $nome_abilita = $fetch['nome'];
- #prelevo informazioni associate
- $query = "SELECT clgpersonaggioabilita.grado, abilita.car, abilita.nome";
- $query .= " FROM abilita ";
- $query .= " LEFT JOIN clgpersonaggioabilita ON clgpersonaggioabilita.id_abilita = abilita.id_abilita";
- $query .= " WHERE abilita.id_abilita = ". $id_abilita ." AND clgpersonaggioabilita.nome = '". $nome_pg ."' LIMIT 1";
- $result = gdrcd_query($query, 'result');
- $row = gdrcd_query($result, 'fetch');
- if (($row['grado']) < 1){
- #stampo il sussurro in chat - l'utente non ha questa abilità quindi non può usarla
- $stanza = gdrcd_filter('in', $_SESSION['luogo']);
- $img = gdrcd_filter('in', $_SESSION['sesso']) . ";" . gdrcd_filter('in', $_SESSION['img_razza']);
- $mittente = gdrcd_filter('in', $_SESSION['login']);
- $destinatario = gdrcd_capital_letter(gdrcd_filter('in', $_SESSION['login']));
- $testo = "Impossibile usare l\'abilità " . addslashes($nome_abilita) . " perché non l\'hai ancora acquistata";
- $query = "INSERT INTO chat ( stanza, imgs, mittente, destinatario, ora, tipo, testo )";
- $query .= " VALUES ($stanza, '". $img ."', '". $mittente ."', '". $destinatario ."', NOW(), 'S', '". $testo ."')";
- gdrcd_query($query);
- }else{
- #tutto ok - stampo l'uso dell'abilità
- mt_srand((double)microtime()*1000000);
- $dado = mt_rand(1, $mdado);
- $stanza = gdrcd_filter('in', $_SESSION['luogo']);
- $img = gdrcd_filter('in', $_SESSION['sesso']) . ";" . gdrcd_filter('in', $_SESSION['img_razza']);
- $mittente = gdrcd_filter('in', $_SESSION['login']);
- $destinatario = gdrcd_capital_letter(gdrcd_filter('in', $_SESSION['login']));
- #Nome utente usa
- $testo = $mittente . " " . gdrcd_filter('in',$MESSAGE['chat']['commands']['use_skills']['uses']) . " ";
- # nome abilita (livello skill del pg)
- $testo .= addslashes($nome_abilita) . " al livello " . $row['grado'];
- # tira il dado da (valore dado) e totalizza (valore dado calcolato)
- $testo .= " e tira il dado da " . $mdado . " totalizzando " . $dado;
- # totale (valore dado + livello skill) = somma
- $testo .= " - Totale: (". $dado ." + ". $row['grado'] .") = " . ($dado + $row['grado']);
- $query = "INSERT INTO chat ( stanza, imgs, mittente, destinatario, ora, tipo, testo )";
- $query .= " VALUES ($stanza, '". $img ."', '". $mittente ."', '". $destinatario ."', NOW(), 'C', '". $testo ."')";
- gdrcd_query($query);
- }
- }
- }else if(gdrcd_filter('get', $_POST['dice']) != 'no_dice'){
- mt_srand((double)microtime()*1000000);
- $die = mt_rand(1,(int)$_POST['dice']);
- $stanza = gdrcd_filter('in', $_SESSION['luogo']);
- $img = gdrcd_filter('in', $_SESSION['sesso']) . ";" . gdrcd_filter('in', $_SESSION['img_razza']);
- $mittente = gdrcd_filter('in', $_SESSION['login']);
- $destinatario = gdrcd_capital_letter(gdrcd_filter('in', $_SESSION['login']));
- #Nome utente usa
- $testo = $mittente . " tira il dado da " . $_POST['dice'] . " totalizzando " . $die;
- $query = "INSERT INTO chat ( stanza, imgs, mittente, destinatario, ora, tipo, testo )";
- $query .= " VALUES ($stanza, '". $img ."', '". $mittente ."', '". $destinatario ."', NOW(), 'C', '". $testo ."')";
- gdrcd_query($query);
- }
- }else if (gdrcd_filter('get',$_POST['op'])=='new_chat_message'){
- $actual_healt = gdrcd_query("SELECT salute FROM personaggio WHERE nome = '".gdrcd_filter('in', $_SESSION['login'])."'");
- ## ##############################
- ##
- ## LOGICHE MESSAGGI NORMALI (master,azioni,sussuri, ecc)
- ##
- ## ##############################
- $chat_message=gdrcd_filter('in', gdrcd_angs($_POST['message']));
- $tag_n_beyond=gdrcd_filter('in',$_POST['tag']);
- $type=gdrcd_filter('in',$_POST['type']);
- $first_char=substr($chat_message,0,1);
- if($PARAMETERS['mode']['exp_by_chat']=='ON')
- {
- $msg_length = strlen($chat_message);
- $char_needed = gdrcd_filter('num', $PARAMETERS['settings']['exp_by_chat']['number']);
- //$exp_bonus = $msg_length/$char_needed;
- if($msg_length >= $char_needed) {
- $exp_bonus = 1; } else { $exp_bonus = 0; }
- }
- if($type < "5")
- {
- if(!empty($_POST['message'])){
- //E' un messaggio.
- /*Verifico il tipo di messaggio*/
- if (($type=="4")||($first_char=="@"))
- { /*Sussurro*/
- $m_type='S';
- if($type!='4')
- {
- $dest_end = strpos(substr($chat_message, 1), "@");
- if ($dest_end === FALSE)
- {
- /*Se il destinatario e' mal formattato lo prendo come parlato*/
- $m_type='P';
- }
- else
- {
- $tag_n_beyond=gdrcd_capital_letter(substr($chat_message, 1, $dest_end));
- $chat_message=substr($chat_message, $dest_end+2);
- }
- }//if
- if ($m_type=='S')
- {/*Se il sussurro e' inviato correttamente*/
- $r_check_dest = gdrcd_query("SELECT nome FROM personaggio WHERE DATE_ADD(ultimo_refresh, INTERVAL 2 MINUTE) > NOW() AND ultimo_luogo = ".$_SESSION['luogo']." AND nome = '".$tag_n_beyond."' LIMIT 1", 'result');
- if (gdrcd_query($r_check_dest, 'num_rows') < 1)
- {
- $chat_message=$tag_n_beyond.' '.gdrcd_filter('in',$MESSAGE['chat']['whisper']['no']);
- $tag_n_beyond=gdrcd_filter('in', $_SESSION['login']);
- }
- }
- else
- {
- $tag_n_beyond=$_SESSION['tag'];
- }
- }
- else if($first_char == "#")
- { //Dado
- $m_type ='C';
- if (preg_match("/^#d+([1-9][0-9]*)$/si", $chat_message,$matches))
- {
- $nstring = $matches[1];
- $die = mt_rand(1,(int)$nstring);
- $chat_message = "A ".gdrcd_filter('in', $_SESSION['login'])." esce ".$die." su ".$nstring;
- }
- else if (preg_match("/^#([1-9][0-9]*)d+([1-9][0-9]*)$/si", $chat_message,$matches))
- {
- $numero = (int)$matches[1];
- $dado = (int)$matches[2];
- $tipodidado = $numero."d".$dado;
- $x = 0;
- $totale = 0;
- $chat_message = " ".gdrcd_filter('in', $_SESSION['login'])." tira ";
- for($x = 0; $x < $numero; $x++)
- {
- $die = mt_rand(1,$dado);
- $totale = $totale + $die;
- }
- $chat_message = substr($chat_message, 0, -2);
- $chat_message .= $tipodidado." totalizzando: ".$totale;
- }
- }
- elseif (($type=="1")||($first_char=="+"))
- { /*Azione*/
- if ($actual_healt['salute']>0)
- {
- if ($first_char=="+")
- {
- $chat_message=substr($chat_message, 1);
- }
- $m_type='A';
- $_SESSION['tag']=$tag_n_beyond;
- }
- else
- {
- $m_type='S';
- $tag_n_beyond=gdrcd_filter('in', $_SESSION['login']);
- $chat_message=gdrcd_filter('in',$MESSAGE['status_pg']['exausted']);
- }
- }
- elseif ((($type=="2")||($first_char=="§")||($first_char=="-")||($first_char=="*"))&&($_SESSION['permessi']>=GAMEMASTER))
- { /*Master*/
- $m_type='M';
- if(($first_char=="§")||($first_char=="-"))
- {
- $chat_message=substr($chat_message, 1);
- }
- if($first_char=="*")
- {
- $chat_message=substr($chat_message, 1);
- $m_type='I';
- }
- }
- elseif (($type=="3")&&($_SESSION['permessi']>=GAMEMASTER))
- { /*PNG*/
- $m_type='N';
- $_SESSION['tag']=$tag_n_beyond;
- }
- else if (($type=="0") || (empty($type)===TRUE))
- { /*Parlato*/
- if ($actual_healt['salute']>0)
- {
- $m_type='P';
- $_SESSION['tag']=$tag_n_beyond;
- }
- else
- {
- $m_type='S';
- $tag_n_beyond=gdrcd_filter('in', $_SESSION['login']);
- $chat_message=gdrcd_filter('in',$MESSAGE['status_pg']['exausted']);
- }
- } //elseif
- /*Inserisco il messaggio*/
- gdrcd_query("INSERT INTO chat ( stanza, imgs, mittente, destinatario, ora, tipo, testo ) VALUES (".$_SESSION['luogo'].", '".$_SESSION['sesso'].";".$_SESSION['img_razza']."', '".gdrcd_filter('in', $_SESSION['login'])."', '".gdrcd_capital_letter(gdrcd_filter('in', $tag_n_beyond))."', NOW(), '".$m_type."', '".$chat_message."')");
- if($PARAMETERS['mode']['exp_by_chat']=='ON')
- {
- /*
- FUNZIONAMENTO
- Prima di tutto ho specificato nel codice che upgrade dell'exp deve essere eseguito
- se il numero dei caratteri del messaggio che ho già inviato è pari o maggiore a un certo X.
- Se è pari o maggiore allora eseguo le logiche per verificare se posso aumentare l'exp
- altrimenti non faccio nulla.
- Diciamo che il "core" fondamentale dell'algoritmo è in questa parte della query.
- SELECT SUM(CASE WHEN CHAR_LENGTH(testo) >= " . $numero_minimo_char . " THEN " . $px_assegnati . " ELSE 0 END) AS flag
- Attraverso SUM specifico che mi deve fare la somma di tutti i valori che verificano la
- condizione (CASE) - Ergo.
- Per ogni record che trovo se il numero dei caratteri (CHAR_LENGTH) del campo testo
- è >= al numero minimo dei caratteri allora vuol dire che quel messaggio corrente che
- sto analizzando è un messaggio che ha generato exp perché la condizione BASE per accedere
- alle logiche di upgrade dell'exp è stata verificata.
- Quindi, se il numero dei caratteri (CHAR_LENGTH) del campo testo è
- >= al numero minimo di caratteri necessari allora (THEN) attribuisci
- un attributo che si chiamerà flag il valore dei px assegnati.
- La query fa quanto descritto sopra per TUTTI i record che verificano la condizione
- ed è ovvio quindi che come risultato avrai il totale dei px già assegnati per l'utente in questione.
- Adesso abbiamo tutto - ci sono due casi.
- 1 CASO:
- -Invio il messaggio in chat ma il numero di caratteri di questo
- è minore del numero minimo quindi non faccio nulla.
- 2 CASO:
- -Invio il messaggio in chat e il numero di caratteri è
- maggiore del numero nimo quindi entro nella condizione
- per verificare le logiche di incremento EXP. [1]*
- da qui in poi ho altri due strade
- 2.1 CASO
- Eseguo la query per tutti i messaggi che mi soddisfano
- la condizione where della query ed ho che somma dell'exp
- assegnata è minore del valore massimo assegnabile di exp per day.
- Quindi vuol dire che posso incrementale l'exp, quindi la condizione [2]*
- è vera ed eseguo la query di aggiornamento dell'exp.
- 2.2 CASO
- Eseguo la query per tutti i messaggi che mi soddisfano
- la condizione where della query ed ho che somma dell'exp
- assegnata è maggiore del valore massimo assegnabile di exp per day.
- Beh allora, non devo assegnare altra exp e quindi la condizione [2]*
- è falsa e non viene eseguita la query di upgrade.
- */
- #px assegnati ad ogni azione
- $px_assegnati = $PARAMETERS['settings']['exp_by_chat']['azione'];
- #caratteri minimi per attivare l'upgrade dell'exp
- $numero_minimo_char = $PARAMETERS['settings']['exp_by_chat']['number'];
- #px massimi per giorno
- $max_exp_per_day = $PARAMETERS['settings']['exp_by_chat']['max_exp'];
- #leggo i caratteri dell'azione
- $char_azione = strlen($chat_message);
- if ($char_azione >= $numero_minimo_char) {
- #[1]*
- $query = "SELECT SUM(CASE WHEN CHAR_LENGTH(testo) >= " . $numero_minimo_char . " THEN " . $px_assegnati . " ELSE 0 END) AS flag";
- $query .= " FROM chat";
- $query .= " WHERE mittente = '" . gdrcd_filter('in', $_SESSION['login']) . "'";
- $query .= " AND (tipo = 'P' OR tipo = 'A' OR tipo = 'M')";
- $query .= " AND DATE_ADD( ora, INTERVAL 1 DAY ) >= NOW()";
- $query .= " AND CHAR_LENGTH(testo) >= " . $numero_minimo_char . " ";
- $result = gdrcd_query($query, 'result');
- $fetch = gdrcd_query($result, 'fetch');
- #[2]*
- if ($max_exp_per_day >= $fetch['flag']) {
- #update exp
- gdrcd_query("UPDATE personaggio SET esperienza = esperienza + " . $px_assegnati . " WHERE nome = '" . gdrcd_filter('in', $_SESSION['login']) . "' LIMIT 1");
- }
- }
- }
- }//Not empty message
- }
- else
- { //Altrimenti e' un comando di stanza privata.
- $info = gdrcd_query("SELECT invitati, nome, proprietario FROM mappa WHERE id=".$_SESSION['luogo']."");
- $ok_command=FALSE;
- if($info['proprietario']==gdrcd_filter('in', $_SESSION['login']))
- {
- $ok_command=TRUE;
- }
- if(strpos($_SESSION['gilda'],$info['proprietario'])!=FALSE)
- {
- $ok_command=TRUE;
- }
- if (($type=="5")&&($ok_command===TRUE))
- { //invita
- gdrcd_query("UPDATE mappa SET invitati = '".$info['invitati'].','.gdrcd_capital_letter(strtolower(gdrcd_filter('in', $tag_n_beyond)))."' WHERE id=".$_SESSION['luogo']." LIMIT 1");
- gdrcd_query("INSERT INTO chat ( stanza, mittente, destinatario, ora, tipo, testo ) VALUES (".$_SESSION['luogo'].", 'System message', '".gdrcd_filter('in', $_SESSION['login'])."', NOW(), 'S', '".gdrcd_capital_letter(gdrcd_filter('in', $tag_n_beyond)).' '.$MESSAGE['chat']['warning']['invited']."')");
- if(empty($_POST['tag'])===FALSE)
- {
- gdrcd_query("INSERT INTO messaggi ( mittente, destinatario, spedito, letto, oggetto, testo ) VALUES ('', '".gdrcd_capital_letter(gdrcd_filter('in',$_POST['tag']))."', NOW(), 0,'Avviso di Sistema', '".gdrcd_filter('in', $_SESSION['login']).' '.$MESSAGE['chat']['warning']['invited_message'].' '.$info['nome']."')");
- }
- }
- else if (($type=="6")&&($ok_command===TRUE))
- { //caccia
- $scaccia=str_replace(','.gdrcd_capital_letter(gdrcd_filter('in', $tag_n_beyond)), '',$info['invitati']);
- gdrcd_query("UPDATE mappa SET invitati = '".$scaccia."' WHERE id=".$_SESSION['luogo']." LIMIT 1");
- gdrcd_query("INSERT INTO chat ( stanza, mittente, destinatario, ora, tipo, testo ) VALUES (".$_SESSION['luogo'].", 'System message', '".gdrcd_filter('in', $_SESSION['login'])."', NOW(), 'S', '".gdrcd_capital_letter(gdrcd_filter('in', $tag_n_beyond)).' '.$MESSAGE['chat']['warning']['expelled']."')");
- }
- else if ($ok_command===TRUE)
- { //elenco
- $ospiti=str_replace(',', '', $info['invitati']);
- gdrcd_query("INSERT INTO chat ( stanza, mittente, destinatario, ora, tipo, testo ) VALUES (".$_SESSION['luogo'].", 'System message', '".gdrcd_filter('in', $_SESSION['login'])."', NOW(), 'S', '".$MESSAGE['chat']['warning']['list'].': '.$ospiti."')");
- }//else
- }//else
- }
- else//if(op)
- {
- $_SESSION['tag'] = gdrcd_filter('in',$_POST['tag']);
- }
- /*Carico i nuovi messaggi*/
- if(empty($last_message)) $last_message = 0;
- /** * Scorrimento dei messaggi in chat, verifico se non è stato invertito il flusso, in caso modifico l'ordinamento della query
- * @author Blancks
- */
- $typeOrder = 'ASC';
- if ($PARAMETERS['mode']['chat_from_bottom']=='ON')
- {
- $typeOrder = 'DESC';
- }
- /** * Controllo per impedire il print in chat delle azioni dei precedenti proprietari di una stanza privata
- * Per stanze non private ora_prenotazione equivarrà ad un tempo sempre inferiore all'orario dell'azione inviata
- * facendo risultare quindi sempre veritiero il controllo in questo caso.
- * @author Blancks
- */
- $query= gdrcd_query(" SELECT chat.id, chat.imgs, chat.mittente, chat.destinatario, chat.tipo, chat.ora, chat.testo, personaggio.off, personaggio.url_img_chat, mappa.ora_prenotazione
- FROM chat
- INNER JOIN mappa ON mappa.id = chat.stanza
- LEFT JOIN personaggio ON personaggio.nome = chat.mittente
- WHERE chat.id > ".$last_message." AND stanza = ".$_SESSION['luogo']." AND chat.ora > IFNULL(mappa.ora_prenotazione, '0000-00-00 00:00:00') AND DATE_SUB(NOW(), INTERVAL 30 MINUTE) < ora ORDER BY id ". $typeOrder, 'result');
- while ($row = gdrcd_query($query, 'fetch'))
- {
- if($row['mittente'] != stripslashes(gdrcd_filter('in', $_SESSION['login'])))
- $alert_new_msg = 1;
- //Impedisci XSS nelle immagini
- $row['url_img_chat']=gdrcd_filter('fullurl', $row['url_img_chat']);
- if (empty($row['url_img_chat'])===FALSE) { $miniavatar=$row['url_img_chat']; }
- else { $miniavatar='imgs/avatars/empty.png'; }
- if ($PARAMETERS['mode']['chaticons']=='ON')
- {
- $icone_chat=explode(";",gdrcd_filter('out', $row['imgs']));
- $add_icon = '<span class="chat_icons"> <img class="presenti_ico" src="themes/'.$PARAMETERS['themes']['current_theme'].'/imgs/races/'.$icone_chat[1].'"><img class="presenti_ico" src="imgs/icons/testamini'.$icone_chat[0].'.png"> </span>';
- }
- switch ($row['tipo'])
- {
- case 'P':
- /** * Fix problema visualizzazione spazi vuoti con i sussurri
- * @author eLDiabolo
- */
- $add_chat.= '<div class="chat_row_'.$row['tipo'].'">';
- /** * Avatar di chat
- *@author Blancks
- */
- if ($PARAMETERS['mode']['chat_avatar']=='ON' && !empty($miniavatar))
- {
- $add_chat .='<a href="javascript:parent.modalWindow(\''.$numero = rand(0,1000).'\', \'Scheda di '.addslashes($row['mittente']).'\', \'popup.php?page=scheda&pg='.addslashes($row['mittente']).'\', \'720\', \'540\');"><img src="'.$miniavatar.'" class="chat_avatar" style="width:'.$PARAMETERS['settings']['chat_avatar']['width'].'px; height:'.$PARAMETERS['settings']['chat_avatar']['height'].'px;" /></a>';
- }
- $add_chat .='<a href="javascript:parent.modalWindow(\''.$numero = rand(0,1000).'\', \'Look di '.addslashes($row['mittente']).'\', \'popup.php?page=look&pg='.addslashes($row['mittente']).'\', \'550\', \'455\');"> <img src="/themes/basic/imgs/scheda/look.png" align="left" style="margin:3px 3px 0 0;"></a>';
- $add_chat.= '<span class="chat_time">'.gdrcd_format_time($row['ora']).'</span>';
- if ($PARAMETERS['mode']['chaticons']=='ON')
- {
- $add_chat.= $add_icon;
- }
- $add_chat.= '<span class="chat_name"><a href="#" onclick="Javascript: document.getElementById(\'tag\').value=\''.$row['mittente'].'\'; document.getElementById(\'type\')[2].selected = \'1\'; document.getElementById(\'message\').focus();">'.$row['mittente'].'</a>';
- if(empty ($row['destinatario']) === FALSE )
- {
- $add_chat.= '<span class="chat_tag"> ['.gdrcd_filter('out',$row['destinatario']).']</span>';
- }
- $add_chat.=': </span> ';
- $add_chat.= '<span class="chat_msg">'.gdrcd_chatme(gdrcd_filter('out',$_SESSION['login']), gdrcd_chatcolor(gdrcd_filter('out',$row['testo']))).'</span>';
- /** * Fix problema visualizzazione spazi vuoti con i sussurri
- * @author eLDiabolo
- */
- if ($PARAMETERS['mode']['chat_avatar']=='ON')
- $add_chat .= '<br style="clear:both;" />';
- $add_chat.= '</div>';
- break;
- case 'A':
- /** * Fix problema visualizzazione spazi vuoti con i sussurri
- * @author eLDiabolo
- */
- $add_chat.= '<div class="chat_row_'.$row['tipo'].'">';
- /** * Avatar di chat
- *@author Blancks
- */
- if ($PARAMETERS['mode']['chat_avatar']=='ON' && !empty($miniavatar))
- {
- $add_chat .='<img src="'.$miniavatar.'" class="chat_avatar" style="width:'.$PARAMETERS['settings']['chat_avatar']['width'].'px; height:'.$PARAMETERS['settings']['chat_avatar']['height'].'px;" />';
- }
- $add_chat.= '<span class="chat_time">'.gdrcd_format_time($row['ora']).'</span>';
- $add_chat .='<a href="javascript:parent.modalWindow(\''.$row['mittente'].'\', \'Look di '.$row['mittente'].'\', \'popup.php?page=look&pg='.$row['mittente'].'\', \'550\', \'455\');"> <img src="/themes/basic/imgs/scheda/look.png" align="left" style="margin:3px 3px 0 0;"></a>';
- if ($PARAMETERS['mode']['chaticons']=='ON')
- {
- $add_chat.= $add_icon;
- }
- $add_chat.= '<span class="chat_name"><a href="#" onclick="Javascript: document.getElementById(\'tag\').value=\''.$row['mittente'].'\'; document.getElementById(\'type\')[2].selected = \'1\'; document.getElementById(\'message\').focus();">'.$row['mittente'].'</a>';
- if(empty ($row['destinatario']) === FALSE )
- {
- $add_chat.= '<span class="chat_tag"> ['.gdrcd_filter('out',$row['destinatario']).']</span>';
- }
- $add_chat.='</span> ';
- $add_chat.= '<span class="chat_msg_a">'.gdrcd_chatme($_SESSION['login'], gdrcd_chatcolor(gdrcd_filter('out',$row['testo']))).'</span>';
- /** * Fix problema visualizzazione spazi vuoti con i sussurri
- * @author eLDiabolo
- */
- if ($PARAMETERS['mode']['chat_avatar']=='ON')
- $add_chat .= '<br style="clear:both;" />';
- $add_chat.= '</div>';
- break;
- case 'S':
- if ($_SESSION['login']==$row['destinatario'])
- {
- /** * Fix problema visualizzazione spazi vuoti con i sussurri
- * @author eLDiabolo
- */
- $add_chat.= '<div class="chat_row_'.$row['tipo'].'">';
- $add_chat.= '<span class="chat_name">'.$row['mittente'].' '.$MESSAGE['chat']['whisper']['by'].': </span> ';
- $add_chat.= '<span class="chat_msg">'.gdrcd_filter('out',$row['testo']).'</span>';
- /** * Fix problema visualizzazione spazi vuoti con i sussurri
- * @author eLDiabolo
- */
- $add_chat.= '</div>';
- } else if ($_SESSION['login']==$row['mittente'])
- {
- /** * Fix problema visualizzazione spazi vuoti con i sussurri
- * @author eLDiabolo
- */
- $add_chat.= '<div class="chat_row_'.$row['tipo'].'">';
- $add_chat.= '<span class="chat_msg">'.$MESSAGE['chat']['whisper']['to'].' '.gdrcd_filter('out',$row['destinatario']).': </span>';
- $add_chat.= '<span class="chat_msg">'.gdrcd_filter('out',$row['testo']).'</span>';
- /** * Fix problema visualizzazione spazi vuoti con i sussurri
- * @author eLDiabolo
- */
- $add_chat.= '</div>';
- } else if (($_SESSION['permessi']>=MODERATOR)&&($PARAMETERS['mode']['spyprivaterooms']=='ON'))
- {
- /** * Fix problema visualizzazione spazi vuoti con i sussurri
- * @author eLDiabolo
- */
- $add_chat.= '<div class="chat_row_'.$row['tipo'].'">';
- $add_chat.= '<span class="chat_msg">'.$row['mittente'].' '.$MESSAGE['chat']['whisper']['from_to'].' '.gdrcd_filter('out',$row['destinatario']).' </span>';
- $add_chat.= '<span class="chat_msg">'.gdrcd_filter('out',$row['testo']).'</span>';
- /** * Fix problema visualizzazione spazi vuoti con i sussurri
- * @author eLDiabolo
- */
- $add_chat.= '</div>';
- }
- break;
- case 'N':
- /** * Fix problema visualizzazione spazi vuoti con i sussurri
- * @author eLDiabolo
- */
- $add_chat.= '<div class="chat_row_'.$row['tipo'].'">';
- $add_chat.= '<span class="chat_time">'.gdrcd_format_time($row['ora']).'</span>';
- $add_chat.= '<span class="chat_name">'.$row['destinatario'].'</span> ';
- $add_chat.= '<span class="chat_msg">'.gdrcd_chatcolor(gdrcd_filter('out',$row['testo'])).'</span>';
- /** * Fix problema visualizzazione spazi vuoti con i sussurri
- * @author eLDiabolo
- */
- $add_chat.= '</div>';
- break;
- case 'M':
- /** * Fix problema visualizzazione spazi vuoti con i sussurri
- * @author eLDiabolo
- */
- $add_chat.= '<div class="chat_row_'.$row['tipo'].'">';
- $add_chat.= '<span class="chat_time">'.gdrcd_format_time($row['ora']).'</span>';
- $add_chat.= '<span class="chat_master">'.gdrcd_chatme_master($_SESSION['login'], gdrcd_filter('out',$row['testo'])).'</span>';
- /** * Fix problema visualizzazione spazi vuoti con i sussurri
- * @author eLDiabolo
- */
- $add_chat.= '</div>';
- break;
- case 'I':
- /** * Fix problema visualizzazione spazi vuoti con i sussurri
- * @author eLDiabolo
- */
- $add_chat.= '<div class="chat_row_'.$row['tipo'].'">';
- $add_chat.= '<img class="chat_img" src="'.gdrcd_filter('fullurl',$row['testo']).'" />';
- /** * Fix problema visualizzazione spazi vuoti con i sussurri
- * @author eLDiabolo
- */
- $add_chat.= '</div>';
- break;
- case 'C':
- /** * Fix problema visualizzazione spazi vuoti con i sussurri
- * @author eLDiabolo
- */
- $add_chat.= '<div class="chat_row_'.$row['tipo'].'">';
- $add_chat.= '<span class="chat_time">'.gdrcd_format_time($row['ora']).'</span>';
- $add_chat.= '<span class="chat_msg">'.gdrcd_filter('out',$row['testo']).'</span>';
- /** * Fix problema visualizzazione spazi vuoti con i sussurri
- * @author eLDiabolo
- */
- $add_chat.= '</div>';
- break;
- case 'D':
- /** * Fix problema visualizzazione spazi vuoti con i sussurri
- * @author eLDiabolo
- */
- $add_chat.= '<div class="chat_row_'.$row['tipo'].'">';
- $add_chat.= '<span class="chat_time">'.gdrcd_format_time($row['ora']).'</span>';
- $add_chat.= '<span class="chat_msg">'.gdrcd_filter('out',$row['testo']).'</span>';
- /** * Fix problema visualizzazione spazi vuoti con i sussurri
- * @author eLDiabolo
- */
- $add_chat.= '</div>';
- break;
- case 'O':
- /** * Fix problema visualizzazione spazi vuoti con i sussurri
- * @author eLDiabolo
- */
- $add_chat.= '<div class="chat_row_'.$row['tipo'].'">';
- $add_chat.= '<span class="chat_time">'.gdrcd_format_time($row['ora']).'</span>';
- $add_chat.= '<span class="chat_msg">'.gdrcd_filter('out',$row['testo']).'</span>';
- /** * Fix problema visualizzazione spazi vuoti con i sussurri
- * @author eLDiabolo
- */
- $add_chat.= '</div>';
- break;
- }
- if ($row['id'] > (int)$last_message)
- $last_message=$row['id'];
- }
- gdrcd_query($query, 'free');
- $_SESSION['last_message']=$last_message;
- }//if
- /******************************************************************************************/
- ?>
- <html>
- <head>
- <?php
- if(gdrcd_filter('get',$_REQUEST['chat'])=='yes')
- {
- echo '<script type="text/javascript"> function echoChat(){';
- /** * Gestione dell'ordinamento
- * @author Blancks
- */
- if ($PARAMETERS['mode']['chat_from_bottom']=='OFF')
- {
- echo 'parent.document.getElementById(\'pagina_chat\').innerHTML+= '.json_encode((string)$add_chat).';';
- echo 'scrolling = parent.document.getElementById(\'pagina_chat\').scrollHeight;';
- }
- elseif ($PARAMETERS['mode']['chat_from_bottom']=='ON')
- {
- echo 'parent.document.getElementById(\'pagina_chat\').innerHTML= '.json_encode((string)$add_chat).'+parent.document.getElementById(\'pagina_chat\').innerHTML;';
- echo 'scrolling = 0;';
- }
- /** * Gestione intelligente della scrollbar
- * Forza lo scroll solo quando ci sono nuovi messaggi
- * @author Blancks
- */
- if (!empty($add_chat))
- echo 'parent.document.getElementById(\'pagina_chat\').scrollTop = scrolling;';
- if ((gdrcd_filter('get',$_POST['op'])=='take_action')||(gdrcd_filter('get',$_POST['op'])=='new_chat_message'))
- {
- if($PARAMETERS['mode']['skillsystem']=='ON')
- {
- echo 'parent.document.getElementById(\'chat_form_actions\').reset();';
- }
- echo 'parent.document.getElementById(\'chat_form_messages\').reset();
- parent.document.getElementById(\'chat_form_messages\').elements["tag"].value=\''.$_SESSION["tag"].'\';';
- }//if
- echo '}</script>';
- }
- ?>
- <!--meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"-->
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <meta http-equiv="refresh" content="<?php echo $i_ref_time; ?>">
- <link rel="stylesheet" href="../themes/<?php echo $PARAMETERS['themes']['current_theme'];?>/presenti.css" TYPE="text/css">
- <link rel="stylesheet" href="../themes/<?php echo $PARAMETERS['themes']['current_theme'];?>/main.css" TYPE="text/css">
- <link rel="stylesheet" href="../themes/<?php echo $PARAMETERS['themes']['current_theme'];?>/chat.css" TYPE="text/css">
- <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Lobster">
- </head>
- <body class="transparent_body" <?php if(gdrcd_filter('get',$_REQUEST['chat'])=='yes'){ echo 'onLoad="echoChat();"';} ?> >
- <?php
- //controlla sessione
- //controlla esilio
- ?>
- <?php
- if ($PARAMETERS['mode']['allow_audio'] == 'ON' && $_SESSION['blocca_media'] != 1 && $add_chat != '' && isset($alert_new_msg) && $alert_new_msg == 1)
- {
- ?>
- <script type="text/javascript">
- var mediaElementChat = parent.document.getElementById("sound_player_chat");
- mediaElementChat.play();
- </script>
- <?php
- } ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement