Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 27.55 KB | None | 0 0
  1. <?php session_start();
  2.  
  3. header('Content-Type:text/html; charset=UTF-8');
  4. $last_message = $_SESSION['last_message'];
  5.  
  6.  
  7. //Includio i parametri, la configurazione, la lingua e le funzioni
  8. require 'includes/constant_values.inc.php';
  9. require 'config.inc.php';
  10. require 'vocabulary/'.$PARAMETERS['languages']['set'].'.vocabulary.php';
  11. require 'includes/functions.inc.php';
  12.  
  13. //Eseguo la connessione al database
  14. $handleDBConnection = gdrcd_connect();
  15. //Ricevo il tempo di reload
  16. $i_ref_time = gdrcd_filter_get($_GET['ref']);
  17.  
  18. /**********************************************************************************/
  19. if((gdrcd_filter_get($_REQUEST['chat'])=='yes')&&(empty($_SESSION['login'])===FALSE))
  20. {
  21.  
  22. ## ##############################
  23. ##
  24. ## LOGICHE INVIO SELECT Abilità e dado (LOGICHE SEPARATE)
  25. ##
  26. ## ##############################
  27.  
  28. /*Se ho inviato un messaggio o usato un'abilità */
  29. if (gdrcd_filter('get',$_POST['op'])=='take_action')
  30. {
  31.  
  32. //select di invio abilità
  33. if(gdrcd_filter('get', $_POST['id_ab']) != 'no_skill'){
  34.  
  35. ## ##############################
  36. #
  37. # LOGICHE USO ABILITA'
  38. #
  39. # Funzionamento.
  40. #
  41. # come già anticipato nel file frame_chat ho rimosso tutte le logiche che riguardano l'uso di oggetti e del resto
  42. # che è di base su gdrcd. Così da ripulire un po' il codice.
  43. #
  44. # Per quanto riguarda il sistema abilità funziona come segue, l'utente seleziona dalla select che ha nella chat
  45. # l'abilità e il sistema controlla:
  46. #
  47. # #1 => Se il pg ha effettivamene acquistato l'abilità (il grado deve essere almeno >= 1)
  48. # # TRUE -> calcola il dado su base di quello max ($mdado) quindi usa l'abilità in chat
  49. # # FALSE -> stampa sussurro impossibile usare l'abilità.
  50. #
  51. #
  52. #
  53. ## ##############################
  54.  
  55.  
  56. if (gdrcd_filter('get',$_POST['id_ab'])!='no_skill'){
  57.  
  58. #dado configurabile
  59. $mdado = 10;
  60.  
  61. $id_abilita = gdrcd_filter('num',$_POST['id_ab']);
  62. $nome_pg = gdrcd_filter('in', $_SESSION['login']);
  63.  
  64.  
  65. #prelevo il nome dell'abilità
  66.  
  67. $query = "SELECT nome FROM abilita WHERE id_abilita = ". $id_abilita ." LIMIT 1 ";
  68.  
  69. $result = gdrcd_query($query, 'result');
  70. $fetch = gdrcd_query($result, 'fetch');
  71.  
  72. $nome_abilita = $fetch['nome'];
  73.  
  74. #prelevo informazioni associate
  75. $query = "SELECT clgpersonaggioabilita.grado, abilita.car, abilita.nome";
  76. $query .= " FROM abilita ";
  77. $query .= " LEFT JOIN clgpersonaggioabilita ON clgpersonaggioabilita.id_abilita = abilita.id_abilita";
  78. $query .= " WHERE abilita.id_abilita = ". $id_abilita ." AND clgpersonaggioabilita.nome = '". $nome_pg ."' LIMIT 1";
  79.  
  80. $result = gdrcd_query($query, 'result');
  81. $row = gdrcd_query($result, 'fetch');
  82.  
  83. if (($row['grado']) < 1){
  84.  
  85. #stampo il sussurro in chat - l'utente non ha questa abilità quindi non può usarla
  86.  
  87. $stanza = gdrcd_filter('in', $_SESSION['luogo']);
  88. $img = gdrcd_filter('in', $_SESSION['sesso']) . ";" . gdrcd_filter('in', $_SESSION['img_razza']);
  89. $mittente = gdrcd_filter('in', $_SESSION['login']);
  90. $destinatario = gdrcd_capital_letter(gdrcd_filter('in', $_SESSION['login']));
  91. $testo = "Impossibile usare l\'abilità " . addslashes($nome_abilita) . " perché non l\'hai ancora acquistata";
  92.  
  93. $query = "INSERT INTO chat ( stanza, imgs, mittente, destinatario, ora, tipo, testo )";
  94. $query .= " VALUES ($stanza, '". $img ."', '". $mittente ."', '". $destinatario ."', NOW(), 'S', '". $testo ."')";
  95.  
  96. gdrcd_query($query);
  97.  
  98. }else{
  99.  
  100. #tutto ok - stampo l'uso dell'abilità
  101.  
  102. mt_srand((double)microtime()*1000000);
  103.  
  104. $dado = mt_rand(1, $mdado);
  105.  
  106. $stanza = gdrcd_filter('in', $_SESSION['luogo']);
  107. $img = gdrcd_filter('in', $_SESSION['sesso']) . ";" . gdrcd_filter('in', $_SESSION['img_razza']);
  108. $mittente = gdrcd_filter('in', $_SESSION['login']);
  109. $destinatario = gdrcd_capital_letter(gdrcd_filter('in', $_SESSION['login']));
  110.  
  111. #Nome utente usa
  112. $testo = $mittente . " " . gdrcd_filter('in',$MESSAGE['chat']['commands']['use_skills']['uses']) . " ";
  113.  
  114. # nome abilita (livello skill del pg)
  115. $testo .= addslashes($nome_abilita) . " al livello " . $row['grado'];
  116.  
  117. # tira il dado da (valore dado) e totalizza (valore dado calcolato)
  118. $testo .= " e tira il dado da " . $mdado . " totalizzando " . $dado;
  119.  
  120. # totale (valore dado + livello skill) = somma
  121. $testo .= " - Totale: (". $dado ." + ". $row['grado'] .") = " . ($dado + $row['grado']);
  122.  
  123. $query = "INSERT INTO chat ( stanza, imgs, mittente, destinatario, ora, tipo, testo )";
  124. $query .= " VALUES ($stanza, '". $img ."', '". $mittente ."', '". $destinatario ."', NOW(), 'C', '". $testo ."')";
  125.  
  126. gdrcd_query($query);
  127. }
  128.  
  129. }
  130.  
  131. }else if(gdrcd_filter('get', $_POST['dice']) != 'no_dice'){
  132.  
  133.  
  134. mt_srand((double)microtime()*1000000);
  135. $die = mt_rand(1,(int)$_POST['dice']);
  136.  
  137. $stanza = gdrcd_filter('in', $_SESSION['luogo']);
  138. $img = gdrcd_filter('in', $_SESSION['sesso']) . ";" . gdrcd_filter('in', $_SESSION['img_razza']);
  139. $mittente = gdrcd_filter('in', $_SESSION['login']);
  140. $destinatario = gdrcd_capital_letter(gdrcd_filter('in', $_SESSION['login']));
  141.  
  142. #Nome utente usa
  143. $testo = $mittente . " tira il dado da " . $_POST['dice'] . " totalizzando " . $die;
  144.  
  145. $query = "INSERT INTO chat ( stanza, imgs, mittente, destinatario, ora, tipo, testo )";
  146. $query .= " VALUES ($stanza, '". $img ."', '". $mittente ."', '". $destinatario ."', NOW(), 'C', '". $testo ."')";
  147.  
  148. gdrcd_query($query);
  149. }
  150.  
  151.  
  152. }else if (gdrcd_filter('get',$_POST['op'])=='new_chat_message'){
  153.  
  154. $actual_healt = gdrcd_query("SELECT salute FROM personaggio WHERE nome = '".gdrcd_filter('in', $_SESSION['login'])."'");
  155.  
  156. ## ##############################
  157. ##
  158. ## LOGICHE MESSAGGI NORMALI (master,azioni,sussuri, ecc)
  159. ##
  160. ## ##############################
  161.  
  162. $chat_message=gdrcd_filter('in', gdrcd_angs($_POST['message']));
  163. $tag_n_beyond=gdrcd_filter('in',$_POST['tag']);
  164. $type=gdrcd_filter('in',$_POST['type']);
  165. $first_char=substr($chat_message,0,1);
  166.  
  167.  
  168. if($PARAMETERS['mode']['exp_by_chat']=='ON')
  169. {
  170. $msg_length = strlen($chat_message);
  171. $char_needed = gdrcd_filter('num', $PARAMETERS['settings']['exp_by_chat']['number']);
  172. //$exp_bonus = $msg_length/$char_needed;
  173. if($msg_length >= $char_needed) {
  174. $exp_bonus = 1; } else { $exp_bonus = 0; }
  175. }
  176.  
  177. if($type < "5")
  178. {
  179. if(!empty($_POST['message'])){
  180. //E' un messaggio.
  181. /*Verifico il tipo di messaggio*/
  182. if (($type=="4")||($first_char=="@"))
  183. { /*Sussurro*/
  184. $m_type='S';
  185. if($type!='4')
  186. {
  187. $dest_end = strpos(substr($chat_message, 1), "@");
  188. if ($dest_end === FALSE)
  189. {
  190. /*Se il destinatario e' mal formattato lo prendo come parlato*/
  191. $m_type='P';
  192. }
  193. else
  194. {
  195. $tag_n_beyond=gdrcd_capital_letter(substr($chat_message, 1, $dest_end));
  196. $chat_message=substr($chat_message, $dest_end+2);
  197. }
  198. }//if
  199. if ($m_type=='S')
  200. {/*Se il sussurro e' inviato correttamente*/
  201.  
  202. $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');
  203.  
  204. if (gdrcd_query($r_check_dest, 'num_rows') < 1)
  205. {
  206. $chat_message=$tag_n_beyond.' '.gdrcd_filter('in',$MESSAGE['chat']['whisper']['no']);
  207. $tag_n_beyond=gdrcd_filter('in', $_SESSION['login']);
  208. }
  209. }
  210. else
  211. {
  212. $tag_n_beyond=$_SESSION['tag'];
  213. }
  214. }
  215. else if($first_char == "#")
  216. { //Dado
  217. $m_type ='C';
  218.  
  219. if (preg_match("/^#d+([1-9][0-9]*)$/si", $chat_message,$matches))
  220. {
  221. $nstring = $matches[1];
  222. $die = mt_rand(1,(int)$nstring);
  223. $chat_message = "A ".gdrcd_filter('in', $_SESSION['login'])." esce ".$die." su ".$nstring;
  224. }
  225. else if (preg_match("/^#([1-9][0-9]*)d+([1-9][0-9]*)$/si", $chat_message,$matches))
  226. {
  227. $numero = (int)$matches[1];
  228. $dado = (int)$matches[2];
  229. $tipodidado = $numero."d".$dado;
  230. $x = 0;
  231. $totale = 0;
  232. $chat_message = " ".gdrcd_filter('in', $_SESSION['login'])." tira ";
  233. for($x = 0; $x < $numero; $x++)
  234. {
  235. $die = mt_rand(1,$dado);
  236. $totale = $totale + $die;
  237. }
  238. $chat_message = substr($chat_message, 0, -2);
  239. $chat_message .= $tipodidado." totalizzando: ".$totale;
  240. }
  241. }
  242. elseif (($type=="1")||($first_char=="+"))
  243. { /*Azione*/
  244. if ($actual_healt['salute']>0)
  245. {
  246. if ($first_char=="+")
  247. {
  248. $chat_message=substr($chat_message, 1);
  249. }
  250. $m_type='A';
  251. $_SESSION['tag']=$tag_n_beyond;
  252. }
  253. else
  254. {
  255. $m_type='S';
  256. $tag_n_beyond=gdrcd_filter('in', $_SESSION['login']);
  257. $chat_message=gdrcd_filter('in',$MESSAGE['status_pg']['exausted']);
  258. }
  259. }
  260. elseif ((($type=="2")||($first_char=="§")||($first_char=="-")||($first_char=="*"))&&($_SESSION['permessi']>=GAMEMASTER))
  261. { /*Master*/
  262. $m_type='M';
  263. if(($first_char=="§")||($first_char=="-"))
  264. {
  265. $chat_message=substr($chat_message, 1);
  266. }
  267. if($first_char=="*")
  268. {
  269. $chat_message=substr($chat_message, 1);
  270. $m_type='I';
  271. }
  272. }
  273. elseif (($type=="3")&&($_SESSION['permessi']>=GAMEMASTER))
  274. { /*PNG*/
  275. $m_type='N';
  276. $_SESSION['tag']=$tag_n_beyond;
  277. }
  278. else if (($type=="0") || (empty($type)===TRUE))
  279. { /*Parlato*/
  280. if ($actual_healt['salute']>0)
  281. {
  282. $m_type='P';
  283. $_SESSION['tag']=$tag_n_beyond;
  284. }
  285. else
  286. {
  287. $m_type='S';
  288. $tag_n_beyond=gdrcd_filter('in', $_SESSION['login']);
  289. $chat_message=gdrcd_filter('in',$MESSAGE['status_pg']['exausted']);
  290. }
  291. } //elseif
  292. /*Inserisco il messaggio*/
  293. 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."')");
  294.  
  295. if($PARAMETERS['mode']['exp_by_chat']=='ON')
  296. {
  297.  
  298. /*
  299. FUNZIONAMENTO
  300.  
  301. Prima di tutto ho specificato nel codice che upgrade dell'exp deve essere eseguito
  302. se il numero dei caratteri del messaggio che ho già inviato è pari o maggiore a un certo X.
  303.  
  304. Se è pari o maggiore allora eseguo le logiche per verificare se posso aumentare l'exp
  305. altrimenti non faccio nulla.
  306.  
  307. Diciamo che il "core" fondamentale dell'algoritmo è in questa parte della query.
  308.  
  309. SELECT SUM(CASE WHEN CHAR_LENGTH(testo) >= " . $numero_minimo_char . " THEN " . $px_assegnati . " ELSE 0 END) AS flag
  310.  
  311. Attraverso SUM specifico che mi deve fare la somma di tutti i valori che verificano la
  312. condizione (CASE) - Ergo.
  313.  
  314. Per ogni record che trovo se il numero dei caratteri (CHAR_LENGTH) del campo testo
  315. è >= al numero minimo dei caratteri allora vuol dire che quel messaggio corrente che
  316. sto analizzando è un messaggio che ha generato exp perché la condizione BASE per accedere
  317. alle logiche di upgrade dell'exp è stata verificata.
  318.  
  319. Quindi, se il numero dei caratteri (CHAR_LENGTH) del campo testo è
  320. >= al numero minimo di caratteri necessari allora (THEN) attribuisci
  321. un attributo che si chiamerà flag il valore dei px assegnati.
  322.  
  323. La query fa quanto descritto sopra per TUTTI i record che verificano la condizione
  324. ed è ovvio quindi che come risultato avrai il totale dei px già assegnati per l'utente in questione.
  325.  
  326. Adesso abbiamo tutto - ci sono due casi.
  327.  
  328. 1 CASO:
  329. -Invio il messaggio in chat ma il numero di caratteri di questo
  330. è minore del numero minimo quindi non faccio nulla.
  331.  
  332. 2 CASO:
  333. -Invio il messaggio in chat e il numero di caratteri è
  334. maggiore del numero nimo quindi entro nella condizione
  335. per verificare le logiche di incremento EXP. [1]*
  336.  
  337. da qui in poi ho altri due strade
  338.  
  339. 2.1 CASO
  340.  
  341. Eseguo la query per tutti i messaggi che mi soddisfano
  342. la condizione where della query ed ho che somma dell'exp
  343. assegnata è minore del valore massimo assegnabile di exp per day.
  344. Quindi vuol dire che posso incrementale l'exp, quindi la condizione [2]*
  345. è vera ed eseguo la query di aggiornamento dell'exp.
  346.  
  347. 2.2 CASO
  348.  
  349. Eseguo la query per tutti i messaggi che mi soddisfano
  350. la condizione where della query ed ho che somma dell'exp
  351. assegnata è maggiore del valore massimo assegnabile di exp per day.
  352. Beh allora, non devo assegnare altra exp e quindi la condizione [2]*
  353. è falsa e non viene eseguita la query di upgrade.
  354. */
  355.  
  356. #px assegnati ad ogni azione
  357. $px_assegnati = $PARAMETERS['settings']['exp_by_chat']['azione'];
  358.  
  359. #caratteri minimi per attivare l'upgrade dell'exp
  360. $numero_minimo_char = $PARAMETERS['settings']['exp_by_chat']['number'];
  361.  
  362. #px massimi per giorno
  363. $max_exp_per_day = $PARAMETERS['settings']['exp_by_chat']['max_exp'];
  364.  
  365. #leggo i caratteri dell'azione
  366. $char_azione = strlen($chat_message);
  367.  
  368. if ($char_azione >= $numero_minimo_char) {
  369. #[1]*
  370. $query = "SELECT SUM(CASE WHEN CHAR_LENGTH(testo) >= " . $numero_minimo_char . " THEN " . $px_assegnati . " ELSE 0 END) AS flag";
  371. $query .= " FROM chat";
  372. $query .= " WHERE mittente = '" . gdrcd_filter('in', $_SESSION['login']) . "'";
  373. $query .= " AND (tipo = 'P' OR tipo = 'A' OR tipo = 'M')";
  374. $query .= " AND DATE_ADD( ora, INTERVAL 1 DAY ) >= NOW()";
  375. $query .= " AND CHAR_LENGTH(testo) >= " . $numero_minimo_char . " ";
  376.  
  377. $result = gdrcd_query($query, 'result');
  378. $fetch = gdrcd_query($result, 'fetch');
  379.  
  380. #[2]*
  381. if ($max_exp_per_day >= $fetch['flag']) {
  382. #update exp
  383. gdrcd_query("UPDATE personaggio SET esperienza = esperienza + " . $px_assegnati . " WHERE nome = '" . gdrcd_filter('in', $_SESSION['login']) . "' LIMIT 1");
  384. }
  385.  
  386. }
  387.  
  388.  
  389. }
  390. }//Not empty message
  391. }
  392. else
  393. { //Altrimenti e' un comando di stanza privata.
  394. $info = gdrcd_query("SELECT invitati, nome, proprietario FROM mappa WHERE id=".$_SESSION['luogo']."");
  395.  
  396. $ok_command=FALSE;
  397. if($info['proprietario']==gdrcd_filter('in', $_SESSION['login']))
  398. {
  399. $ok_command=TRUE;
  400. }
  401. if(strpos($_SESSION['gilda'],$info['proprietario'])!=FALSE)
  402. {
  403. $ok_command=TRUE;
  404. }
  405. if (($type=="5")&&($ok_command===TRUE))
  406. { //invita
  407. gdrcd_query("UPDATE mappa SET invitati = '".$info['invitati'].','.gdrcd_capital_letter(strtolower(gdrcd_filter('in', $tag_n_beyond)))."' WHERE id=".$_SESSION['luogo']." LIMIT 1");
  408.  
  409. 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']."')");
  410.  
  411. if(empty($_POST['tag'])===FALSE)
  412. {
  413. 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']."')");
  414. }
  415. }
  416. else if (($type=="6")&&($ok_command===TRUE))
  417. { //caccia
  418. $scaccia=str_replace(','.gdrcd_capital_letter(gdrcd_filter('in', $tag_n_beyond)), '',$info['invitati']);
  419. gdrcd_query("UPDATE mappa SET invitati = '".$scaccia."' WHERE id=".$_SESSION['luogo']." LIMIT 1");
  420.  
  421. 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']."')");
  422.  
  423. }
  424. else if ($ok_command===TRUE)
  425. { //elenco
  426. $ospiti=str_replace(',', '', $info['invitati']);
  427. 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."')");
  428. }//else
  429. }//else
  430. }
  431. else//if(op)
  432. {
  433. $_SESSION['tag'] = gdrcd_filter('in',$_POST['tag']);
  434. }
  435.  
  436. /*Carico i nuovi messaggi*/
  437. if(empty($last_message)) $last_message = 0;
  438.  
  439. /** * Scorrimento dei messaggi in chat, verifico se non è stato invertito il flusso, in caso modifico l'ordinamento della query
  440. * @author Blancks
  441. */
  442. $typeOrder = 'ASC';
  443.  
  444. if ($PARAMETERS['mode']['chat_from_bottom']=='ON')
  445. {
  446. $typeOrder = 'DESC';
  447. }
  448.  
  449. /** * Controllo per impedire il print in chat delle azioni dei precedenti proprietari di una stanza privata
  450. * Per stanze non private ora_prenotazione equivarrà ad un tempo sempre inferiore all'orario dell'azione inviata
  451. * facendo risultare quindi sempre veritiero il controllo in questo caso.
  452.  
  453. * @author Blancks
  454. */
  455. $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
  456. FROM chat
  457. INNER JOIN mappa ON mappa.id = chat.stanza
  458. LEFT JOIN personaggio ON personaggio.nome = chat.mittente
  459. 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');
  460.  
  461. while ($row = gdrcd_query($query, 'fetch'))
  462. {
  463. if($row['mittente'] != stripslashes(gdrcd_filter('in', $_SESSION['login'])))
  464. $alert_new_msg = 1;
  465. //Impedisci XSS nelle immagini
  466. $row['url_img_chat']=gdrcd_filter('fullurl', $row['url_img_chat']);
  467. if (empty($row['url_img_chat'])===FALSE) { $miniavatar=$row['url_img_chat']; }
  468. else { $miniavatar='imgs/avatars/empty.png'; }
  469. if ($PARAMETERS['mode']['chaticons']=='ON')
  470. {
  471. $icone_chat=explode(";",gdrcd_filter('out', $row['imgs']));
  472. $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>';
  473. }
  474.  
  475. switch ($row['tipo'])
  476. {
  477. case 'P':
  478.  
  479. /** * Fix problema visualizzazione spazi vuoti con i sussurri
  480. * @author eLDiabolo
  481. */
  482. $add_chat.= '<div class="chat_row_'.$row['tipo'].'">';
  483.  
  484. /** * Avatar di chat
  485. *@author Blancks
  486. */
  487. if ($PARAMETERS['mode']['chat_avatar']=='ON' && !empty($miniavatar))
  488. {
  489. $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>';
  490. }
  491.  
  492.  
  493. $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>';
  494. $add_chat.= '<span class="chat_time">'.gdrcd_format_time($row['ora']).'</span>';
  495. if ($PARAMETERS['mode']['chaticons']=='ON')
  496. {
  497. $add_chat.= $add_icon;
  498. }
  499.  
  500. $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>';
  501.  
  502. if(empty ($row['destinatario']) === FALSE )
  503. {
  504. $add_chat.= '<span class="chat_tag"> ['.gdrcd_filter('out',$row['destinatario']).']</span>';
  505. }
  506.  
  507. $add_chat.=': </span> ';
  508. $add_chat.= '<span class="chat_msg">'.gdrcd_chatme(gdrcd_filter('out',$_SESSION['login']), gdrcd_chatcolor(gdrcd_filter('out',$row['testo']))).'</span>';
  509.  
  510. /** * Fix problema visualizzazione spazi vuoti con i sussurri
  511. * @author eLDiabolo
  512. */
  513. if ($PARAMETERS['mode']['chat_avatar']=='ON')
  514. $add_chat .= '<br style="clear:both;" />';
  515.  
  516. $add_chat.= '</div>';
  517.  
  518. break;
  519.  
  520.  
  521. case 'A':
  522. /** * Fix problema visualizzazione spazi vuoti con i sussurri
  523. * @author eLDiabolo
  524. */
  525. $add_chat.= '<div class="chat_row_'.$row['tipo'].'">';
  526.  
  527. /** * Avatar di chat
  528. *@author Blancks
  529. */
  530. if ($PARAMETERS['mode']['chat_avatar']=='ON' && !empty($miniavatar))
  531. {
  532. $add_chat .='<img src="'.$miniavatar.'" class="chat_avatar" style="width:'.$PARAMETERS['settings']['chat_avatar']['width'].'px; height:'.$PARAMETERS['settings']['chat_avatar']['height'].'px;" />';
  533. }
  534.  
  535.  
  536. $add_chat.= '<span class="chat_time">'.gdrcd_format_time($row['ora']).'</span>';
  537. $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>';
  538.  
  539. if ($PARAMETERS['mode']['chaticons']=='ON')
  540. {
  541. $add_chat.= $add_icon;
  542. }
  543.  
  544. $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>';
  545.  
  546. if(empty ($row['destinatario']) === FALSE )
  547. {
  548. $add_chat.= '<span class="chat_tag"> ['.gdrcd_filter('out',$row['destinatario']).']</span>';
  549. }
  550. $add_chat.='</span> ';
  551. $add_chat.= '<span class="chat_msg_a">'.gdrcd_chatme($_SESSION['login'], gdrcd_chatcolor(gdrcd_filter('out',$row['testo']))).'</span>';
  552.  
  553. /** * Fix problema visualizzazione spazi vuoti con i sussurri
  554. * @author eLDiabolo
  555. */
  556. if ($PARAMETERS['mode']['chat_avatar']=='ON')
  557. $add_chat .= '<br style="clear:both;" />';
  558.  
  559. $add_chat.= '</div>';
  560.  
  561. break;
  562.  
  563.  
  564. case 'S':
  565. if ($_SESSION['login']==$row['destinatario'])
  566. {
  567. /** * Fix problema visualizzazione spazi vuoti con i sussurri
  568. * @author eLDiabolo
  569. */
  570. $add_chat.= '<div class="chat_row_'.$row['tipo'].'">';
  571.  
  572. $add_chat.= '<span class="chat_name">'.$row['mittente'].' '.$MESSAGE['chat']['whisper']['by'].': </span> ';
  573. $add_chat.= '<span class="chat_msg">'.gdrcd_filter('out',$row['testo']).'</span>';
  574.  
  575. /** * Fix problema visualizzazione spazi vuoti con i sussurri
  576. * @author eLDiabolo
  577. */
  578. $add_chat.= '</div>';
  579.  
  580. } else if ($_SESSION['login']==$row['mittente'])
  581. {
  582. /** * Fix problema visualizzazione spazi vuoti con i sussurri
  583. * @author eLDiabolo
  584. */
  585. $add_chat.= '<div class="chat_row_'.$row['tipo'].'">';
  586.  
  587. $add_chat.= '<span class="chat_msg">'.$MESSAGE['chat']['whisper']['to'].' '.gdrcd_filter('out',$row['destinatario']).': </span>';
  588. $add_chat.= '<span class="chat_msg">'.gdrcd_filter('out',$row['testo']).'</span>';
  589.  
  590. /** * Fix problema visualizzazione spazi vuoti con i sussurri
  591. * @author eLDiabolo
  592. */
  593. $add_chat.= '</div>';
  594.  
  595. } else if (($_SESSION['permessi']>=MODERATOR)&&($PARAMETERS['mode']['spyprivaterooms']=='ON'))
  596. {
  597. /** * Fix problema visualizzazione spazi vuoti con i sussurri
  598. * @author eLDiabolo
  599. */
  600. $add_chat.= '<div class="chat_row_'.$row['tipo'].'">';
  601.  
  602. $add_chat.= '<span class="chat_msg">'.$row['mittente'].' '.$MESSAGE['chat']['whisper']['from_to'].' '.gdrcd_filter('out',$row['destinatario']).' </span>';
  603. $add_chat.= '<span class="chat_msg">'.gdrcd_filter('out',$row['testo']).'</span>';
  604.  
  605. /** * Fix problema visualizzazione spazi vuoti con i sussurri
  606. * @author eLDiabolo
  607. */
  608. $add_chat.= '</div>';
  609.  
  610. }
  611. break;
  612.  
  613.  
  614. case 'N':
  615. /** * Fix problema visualizzazione spazi vuoti con i sussurri
  616. * @author eLDiabolo
  617. */
  618. $add_chat.= '<div class="chat_row_'.$row['tipo'].'">';
  619.  
  620. $add_chat.= '<span class="chat_time">'.gdrcd_format_time($row['ora']).'</span>';
  621. $add_chat.= '<span class="chat_name">'.$row['destinatario'].'</span> ';
  622. $add_chat.= '<span class="chat_msg">'.gdrcd_chatcolor(gdrcd_filter('out',$row['testo'])).'</span>';
  623.  
  624. /** * Fix problema visualizzazione spazi vuoti con i sussurri
  625. * @author eLDiabolo
  626. */
  627. $add_chat.= '</div>';
  628. break;
  629.  
  630.  
  631. case 'M':
  632. /** * Fix problema visualizzazione spazi vuoti con i sussurri
  633. * @author eLDiabolo
  634. */
  635. $add_chat.= '<div class="chat_row_'.$row['tipo'].'">';
  636. $add_chat.= '<span class="chat_time">'.gdrcd_format_time($row['ora']).'</span>';
  637. $add_chat.= '<span class="chat_master">'.gdrcd_chatme_master($_SESSION['login'], gdrcd_filter('out',$row['testo'])).'</span>';
  638.  
  639. /** * Fix problema visualizzazione spazi vuoti con i sussurri
  640. * @author eLDiabolo
  641. */
  642. $add_chat.= '</div>';
  643. break;
  644.  
  645.  
  646. case 'I':
  647. /** * Fix problema visualizzazione spazi vuoti con i sussurri
  648. * @author eLDiabolo
  649. */
  650. $add_chat.= '<div class="chat_row_'.$row['tipo'].'">';
  651.  
  652. $add_chat.= '<img class="chat_img" src="'.gdrcd_filter('fullurl',$row['testo']).'" />';
  653.  
  654. /** * Fix problema visualizzazione spazi vuoti con i sussurri
  655. * @author eLDiabolo
  656. */
  657. $add_chat.= '</div>';
  658. break;
  659.  
  660.  
  661. case 'C':
  662. /** * Fix problema visualizzazione spazi vuoti con i sussurri
  663. * @author eLDiabolo
  664. */
  665. $add_chat.= '<div class="chat_row_'.$row['tipo'].'">';
  666.  
  667. $add_chat.= '<span class="chat_time">'.gdrcd_format_time($row['ora']).'</span>';
  668. $add_chat.= '<span class="chat_msg">'.gdrcd_filter('out',$row['testo']).'</span>';
  669.  
  670. /** * Fix problema visualizzazione spazi vuoti con i sussurri
  671. * @author eLDiabolo
  672. */
  673. $add_chat.= '</div>';
  674. break;
  675.  
  676.  
  677. case 'D':
  678. /** * Fix problema visualizzazione spazi vuoti con i sussurri
  679. * @author eLDiabolo
  680. */
  681. $add_chat.= '<div class="chat_row_'.$row['tipo'].'">';
  682.  
  683. $add_chat.= '<span class="chat_time">'.gdrcd_format_time($row['ora']).'</span>';
  684. $add_chat.= '<span class="chat_msg">'.gdrcd_filter('out',$row['testo']).'</span>';
  685.  
  686. /** * Fix problema visualizzazione spazi vuoti con i sussurri
  687. * @author eLDiabolo
  688. */
  689. $add_chat.= '</div>';
  690. break;
  691.  
  692.  
  693. case 'O':
  694. /** * Fix problema visualizzazione spazi vuoti con i sussurri
  695. * @author eLDiabolo
  696. */
  697. $add_chat.= '<div class="chat_row_'.$row['tipo'].'">';
  698.  
  699. $add_chat.= '<span class="chat_time">'.gdrcd_format_time($row['ora']).'</span>';
  700. $add_chat.= '<span class="chat_msg">'.gdrcd_filter('out',$row['testo']).'</span>';
  701.  
  702. /** * Fix problema visualizzazione spazi vuoti con i sussurri
  703. * @author eLDiabolo
  704. */
  705. $add_chat.= '</div>';
  706. break;
  707. }
  708.  
  709. if ($row['id'] > (int)$last_message)
  710. $last_message=$row['id'];
  711.  
  712. }
  713. gdrcd_query($query, 'free');
  714. $_SESSION['last_message']=$last_message;
  715. }//if
  716. /******************************************************************************************/
  717. ?>
  718. <html>
  719. <head>
  720.  
  721. <?php
  722. if(gdrcd_filter('get',$_REQUEST['chat'])=='yes')
  723. {
  724. echo '<script type="text/javascript"> function echoChat(){';
  725.  
  726. /** * Gestione dell'ordinamento
  727. * @author Blancks
  728. */
  729. if ($PARAMETERS['mode']['chat_from_bottom']=='OFF')
  730. {
  731. echo 'parent.document.getElementById(\'pagina_chat\').innerHTML+= '.json_encode((string)$add_chat).';';
  732. echo 'scrolling = parent.document.getElementById(\'pagina_chat\').scrollHeight;';
  733.  
  734. }
  735. elseif ($PARAMETERS['mode']['chat_from_bottom']=='ON')
  736. {
  737. echo 'parent.document.getElementById(\'pagina_chat\').innerHTML= '.json_encode((string)$add_chat).'+parent.document.getElementById(\'pagina_chat\').innerHTML;';
  738. echo 'scrolling = 0;';
  739. }
  740.  
  741.  
  742. /** * Gestione intelligente della scrollbar
  743. * Forza lo scroll solo quando ci sono nuovi messaggi
  744. * @author Blancks
  745. */
  746. if (!empty($add_chat))
  747. echo 'parent.document.getElementById(\'pagina_chat\').scrollTop = scrolling;';
  748.  
  749.  
  750. if ((gdrcd_filter('get',$_POST['op'])=='take_action')||(gdrcd_filter('get',$_POST['op'])=='new_chat_message'))
  751. {
  752. if($PARAMETERS['mode']['skillsystem']=='ON')
  753. {
  754. echo 'parent.document.getElementById(\'chat_form_actions\').reset();';
  755. }
  756. echo 'parent.document.getElementById(\'chat_form_messages\').reset();
  757. parent.document.getElementById(\'chat_form_messages\').elements["tag"].value=\''.$_SESSION["tag"].'\';';
  758. }//if
  759. echo '}</script>';
  760. }
  761. ?>
  762. <!--meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"-->
  763. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  764. <meta http-equiv="refresh" content="<?php echo $i_ref_time; ?>">
  765.  
  766. <link rel="stylesheet" href="../themes/<?php echo $PARAMETERS['themes']['current_theme'];?>/presenti.css" TYPE="text/css">
  767. <link rel="stylesheet" href="../themes/<?php echo $PARAMETERS['themes']['current_theme'];?>/main.css" TYPE="text/css">
  768. <link rel="stylesheet" href="../themes/<?php echo $PARAMETERS['themes']['current_theme'];?>/chat.css" TYPE="text/css">
  769. <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Lobster">
  770. </head>
  771. <body class="transparent_body" <?php if(gdrcd_filter('get',$_REQUEST['chat'])=='yes'){ echo 'onLoad="echoChat();"';} ?> >
  772. <?php
  773. //controlla sessione
  774. //controlla esilio
  775. ?>
  776. <?php
  777. if ($PARAMETERS['mode']['allow_audio'] == 'ON' && $_SESSION['blocca_media'] != 1 && $add_chat != '' && isset($alert_new_msg) && $alert_new_msg == 1)
  778. {
  779. ?>
  780. <script type="text/javascript">
  781. var mediaElementChat = parent.document.getElementById("sound_player_chat");
  782. mediaElementChat.play();
  783. </script>
  784. <?php
  785. } ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement