GDRCD 5.5 colore testo chat
GDRCD 5.5 colore testo chat postato il 01/08/2021 14:28:52 nel forum programmazione, open source e hosting
salve; vorrei poter cambiare colore in base al sesso del player nella azioni parlate quanto si utilizzano le parentesi quadre: [testo]attualmente la funzione si rende conto del testo tra parentesi e gli cambia di colore , vorrei integrare la condizione del sesso, il player maschio quando scrive del testo tra parentesi quadre questo vorrei che fosse azzurro e rosa per i player donna.
function gdrcd_chatcolor($str) { $search = [ '#\<(.+?)\>#is', '#\[(.+?)\]#is', ]; $replace = [ '<span class="color2"><$1></span>', '<span class="color2"><$1></span>', ]; return preg_replace($search, $replace, $str);}
questa è la funzione, come faccio a passargli la variabile sesso dell'azione per costruire la condizione?
Pagine → 1
02/08/2021 09:58:09
aik ha scritto: ...
Devi per forza aggiornare questa funzione in includes/functions.inc.php, permettendo la possibilità che vi sia il sesso come parametro. Una cosa del genere:function gdrcd_chatcolor($str, $gender) { $genderClass = $gender == 'm' ? 'color2m' : 'color2f'; $search = [ '#\<(.+?)\>#is', '#\[(.+?)\]#is', ]; $replace = [ '<span class="color2"><$1></span>', '<span class="'.$genderClass.'"><$1></span>', ]; return preg_replace($search, $replace, $str);}
Non è proprio la soluzione più elegante, ma dovrebbe funzionare allo scopo ( o quanto meno, farti capire l'idea) .Quindi, in ref_header.inc.php dove vai ad utilizzare la funzione gdrcd_chatcolor() a quel punto passerai anche il genere del Personaggio.Kasa.
02/08/2021 13:03:16
kasa ha scritto: [quote]aik ha scritto: ...
Devi per forza aggiornare questa funzione in includes/functions.inc.php, permettendo la possibilità che vi sia il sesso come parametro. Una cosa del genere:function gdrcd_chatcolor($str, $gender) { $genderClass = $gender == 'm' ? 'color2m' : 'color2f'; $search = [ '#\<(.+?)\>#is', '#\[(.+?)\]#is', ]; $replace = [ '<span class="color2"><$1></span>', '<span class="'.$genderClass.'"><$1></span>', ]; return preg_replace($search, $replace, $str);}
Non è proprio la soluzione più elegante, ma dovrebbe funzionare allo scopo ( o quanto meno, farti capire l'idea) .Quindi, in ref_header.inc.php dove vai ad utilizzare la funzione gdrcd_chatcolor() a quel punto passerai anche il genere del Personaggio.Kasa.[/quote]prezioso come sempre, grazie mille a breve ti dico se funziona ma dando un occhiata veloce non dovrebbe far capricci... p.s appena ho 10 minuti porto a conoscenza di alcune delle criticità del codice, una è in registrazione, posso, forzando id, effettuare la registrazione di un player con razze non disponibili alla registrazione...
02/08/2021 13:36:15
aik ha scritto: prezioso come sempre, grazie mille a breve ti dico se funziona ma dando un occhiata veloce non dovrebbe far capricci...
Ripeto, non è la soluzione più elegante. Sicuramente può essere migliorata ed anche ampliata in base all'occorrenza. Ma usa come base logica!aik ha scritto: p.s appena ho 10 minuti porto a conoscenza di alcune delle criticità del codice, una è in registrazione, posso, forzando id, effettuare la registrazione di un player con razze non disponibili alla registrazione...
Ogni segnalazione è preziosissima!Usa pure il thread dedicato alla nuova versione di GDRCD (questo, nello specifico: https://www.gdr-online.com/readforum.asp?id=249065 ↗ ) per tutti gli errori che hai riscontrato.Kasa.
02/08/2021 13:40:49
ho appena ampliato la funzione e individuato nel file ref_header.inc.php la linea che richiama la funzione per l'azione parlata "P"
$add_chat .= '<span class="chat_msg_p" >'.gdrcd_chatme($_SESSION['login'], gdrcd_chatcolor(gdrcd_filter('out', $row['testo']))).'</span>';
come dovrei passare la variabile sesso?
02/08/2021 13:49:57
aik ha scritto: ...
In ref_header.inc.php, poco sopra alla riga che tu hai riportato, dovrebbe essere la query che va a raccogliere i dati a DB per ogni singola azione. Questa, nello specifico:$query = gdrcd_query(" SELECT chat.id, chat.imgs, chat.mittente, chat.destinatario, chat.tipo, chat.ora, chat.testo, 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');
A questa, basta che aggiungi ai dati selezionati anche il genere del Personaggio. In questo modo:$query = gdrcd_query(" SELECT chat.id, chat.imgs, chat.mittente, chat.destinatario, chat.tipo, chat.ora, chat.testo, personaggio.url_img_chat, personaggio.sesso, 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');
In grassetto la colonna aggiuntiva.Poi, nella riga che tu hai riportato, non fai altro che aggiungere ai parametri della funzione gdrcd_chatcolor() il sesso del Personaggio, in questo modo:$add_chat .= '<span class="chat_msg">'.gdrcd_chatme($_SESSION['login'], gdrcd_chatcolor(gdrcd_filter('out', $row['testo']), gdrcd_filter('out', $row['sesso']))).'</span>';
E così hai passato la variabile.Kasa.
02/08/2021 14:25:34
perfetto funge, l'unico accorgimento che ho fatto è questo$replace = [ '<span class="color2"><$1></span>', '<span class="'.$genderClass.'"><$1></span>',];
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!