Gdr cd 5.5 bug virgolette in chat
Gdr cd 5.5 bug virgolette in chat postato il 27/09/2020 00:07:36 nel forum programmazione, open source e hosting e modificato da haruka il 27/09/2020 00:08:19
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.php
Questa parte di codice:
function gdrcd_angs($str) {
$search = [
'#\<(.+?)\>#is',
'#\<(.+?)>#is',
];
$replace = [
'«$1»',
'«$1»',
];
return preg_replace($search, $replace, $str);
}
è diventata:
function gdrcd_angs($str) {
$search = [
'#\<#is',
'#\>#is',
];
$replace = [
'«',
'»',
];
return preg_replace($search, $replace, $str);
}
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
«
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 nulla
Dovrebbe 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)
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 e modificato da haruka il 28/09/2020 18:21:46
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 nulla
Dovrebbe 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)
Dunque, ho provato, ma con questa funzione in pratica sostituisci le parentesi tonde o le parentesi quadre :)
Ho provato così, interpretando la parte iniziale del tuo messaggio e quindi aggiungendo spazi per evitare la correzione di gdronline. Ugualmente, tronca la frase, perché la vede come un tag html aperto, per quel che mi sembra di capire.
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 17:58:08
Siamo tutti nella stessa barca ragazzi. Se ci si aiuta a vicenda, ne gioviamo tutti ;)
28/10/2020 18:11:09 e modificato da emendil il 28/10/2020 18:24:27
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.
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!
Fallen Gods ↗
Storie di Agarthi ↗
Exclusive Villa GdR ↗
Sea of Conquest ↗
CRSED: F.O.A.D. ↗
War Thunder ↗