Condivido il bug e la soluzione "carlona" che ho trovato.Ci siamo accorti che utilizzando la funzione che sostituisce le virgolette < > con « » se in chat si invia una frase che inizia per < e non la si chiude, la stringa arriva tronca in chat.Questa è la soluzione che ho adottato io. Non so ancora se con questo fix faccio danni altrove (le beta servono a questo) controllerò. La chat viene sistemata e il problema non si presenta più, però, ripeto, è un fix abbastanza alla carlona. Se qualcuno ha una soluzione più elegante, o può confermare che questa tutto sommato va bene, meglio. Allora, il file interessato è functions.inc.phpQuesta parte di codice:
function gdrcd_angs($str) { $search = [ '#\<(.+?)\>#is', '#\<(.+?)>#is', ]; $replace = [ '«$1»', '«$1»', ]; return preg_replace($search, $replace, $str);}
function gdrcd_angs($str) { $search = [ '#\<#is', '#\>#is', ]; $replace = [ '«', '»', ]; return preg_replace($search, $replace, $str);}
Leggendra.it - il primo e unico gdr pbc fantasy rinascimentalehttps://www.leggendra.it
Pagine → 1
27/09/2020 14:31:14
Ciao! non so se lo ha auto corretto il forum di GDR online, ma invece di usare
«
{$search = array( '#\((.+?)\)#is', '#\[(.+?)\]#is',); $replace = array( '<span class="color1">( $1 )</span>', '<span class="color2">« $1 »</span>', ); return preg_replace($search, $replace, $str);}
28/09/2020 11:30:16
Uhm... potrebbe risolvere, vediamo. Faccio qualche prova nel pomeriggio e ti so dire :)Grazie!
28/09/2020 18:15:25
vivi1400 ha scritto: Ciao! non so se lo ha auto corretto il forum di GDR online, ma invece di usare« io ho utilizzato il codice HTML per il simbolo « della land programmata su GDRCD 5.4Non mi ha mai dato problemi. L'unica cosa che cambia se non si chiude il <> è che non camia colore la scritta ma non taglia nullaDovrebbe forse dare meno problemi del simbolo «{$search = array( '#\((.+?)\)#is', '#\[(.+?)\]#is',); $replace = array( '<span class="color1">( $1 )</span>', '<span class="color2">« $1 »</span>', ); return preg_replace($search, $replace, $str);}(ignora i colori che li avevo messi per il doppio colore)
function gdrcd_angs($str) {$search = array( '#\&l t;(.+?)\&g t;#is', ); $replace = array( '<span class="color1">( $1 )</span>', ); return preg_replace($search, $replace, $str);}
28/10/2020 12:40:30
Grazie per la soluzione Haruka! :)
28/10/2020 16:18:42
Ad haruka dovrò fare un monumento. Non avevo nemmeno notato il bug.
https://mathram.org/
28/10/2020 17:58:08
Siamo tutti nella stessa barca ragazzi. Se ci si aiuta a vicenda, ne gioviamo tutti ;)
28/10/2020 18:11:09
EDIT: No, non risolve niente mettere l'escape \> qui :(function gdrcd_angs($str) {$search = ['#\<(.+?)\>#is','#\<(.+?)>#is', <---- Qui sta il problema del sorgente, manca l'escape per il tag di chiusura!];$replace = ['«$1»','«$1»',];return preg_replace($search, $replace, $str);}
28/10/2020 18:26:16
Ah!Stavo già ringraziandoti e per ripristinare il codice originale... e va beh, magari salta fuori il bug.
16/02/2021 10:46:30
Forse ho risolto XDAttorno alla riga 677 del file functions.incDopo la sezione modificata come indicato da Haruka.All'altezza della scritta " * Colora in HTML le parti di testo comprese tra parentesi angolari o parentesi quadre"Ho sotituito il codice presente con questo:
function gdrcd_chatcolor($str){$search = array('#\<(.+?)\>#is','#\{(.+?)\}#is','#\[(.+?)\]#is','#\«(.+?)\»#is','#\((.+?)\)#is',);$replace = array('<span class="color2">[$1]</span>','<span class="color2">[$1]</span>','<span class="color2">[$1]</span>','<span class="color2">[$1]</span>','<span class="color2">[$1]</span>',);return preg_replace($search, $replace, $str);}
21/02/2021 12:56:03
mathramstaff ha scritto: Forse ho risolto XDAttorno alla riga 677 del file functions.incDopo la sezione modificata come indicato da Haruka.All'altezza della scritta " * Colora in HTML le parti di testo comprese tra parentesi angolari o parentesi quadre"Ho sotituito il codice presente con questo:function gdrcd_chatcolor($str){$search = array('#\<(.+?)\>#is','#\{(.+?)\}#is','#\[(.+?)\]#is','#\«(.+?)\»#is','#\((.+?)\)#is',);$replace = array('<span class="color2">[$1]</span>','<span class="color2">[$1]</span>','<span class="color2">[$1]</span>','<span class="color2">[$1]</span>','<span class="color2">[$1]</span>',);return preg_replace($search, $replace, $str);}Che si rifà ovviamente al chat.css ecc eccAdesso non mi mangia più le parentesi, me le sostituisce tutte con [ ] e via.Uff XD Condivido se altri si trovano nella stessa situazione.
Discussione seguita da: » haruka » mathramstaff