Problemino editor wysibb
Problemino editor wysibb postato il 14/03/2023 17:37:16 nel forum programmazione, open source e hosting e modificato da gdr-online.com il 12/01/2024 17:09:03
Ri-salve,
So di esservi mancata ma eccomi qui con un nuovo topic per un nuovo problemino da sottoporvi!
Riguarda il pacchetto editor bbcode wysiBB di Anneth.
Ho installato il pacchetto e sembrava funzionare, finché non ho cominciato a provare i vari bottoni e mi sono accorta che quando invio il post in bacheca/forum il tag dell’editor non viene tradotto nella formattazione testo richiesta. Piuttosto compare il tag con le parentesi quadre e tutta la dicitura nel messaggio e il testo rimane non formattato.
Il suddetto problema è stato riscontrato solo per alcune funzionalità, che qui di seguito andrò ad elencare:
il tasto “quote” e le virgolette “ per inserire una citazione, la cui dicitura che spunta come non letta è ad esempio: [quote=nome utente]testo testo testo[//quote]
il tasto dimensione font: [size=200]Ciao a tutti[/size]
il tasto per formare una lista o elenco puntato proprio come da esempi sopra: [list] lista [/list]
Qualcuno ha riscontrato lo stesso problema? Come l’avete risolto? O comunque… non è che potreste darmi una mano in qualche modo? Ho già letto un post recente che risolveva il problema con il bbcode di gdrcd ma ho provato anche questo ma con scarsissimi risultati.
La versione di GDRCD che utilizzo è 5.6.0.5
Grazie a chi vorrà darmi una mano!
Pagine → 1
15/03/2023 09:54:07
La risposta alla tua domanda, e quindi la risoluzione può stare in due posti.
Nel file functions.php alla funzione gdrcd_bbcoder() che è quella preposta a tradurre il BBCode tra parentesi quadre in tag html.
Oppure nel file
/plugins/bbdecoder.php
che ha la stessa funzione però leggermente più evoluta, in base alla selezione nel config che hai fatto di usare il bbcode "bbd" o "native"
15/03/2023 11:31:01
Ti ringrazio, innanzitutto della risposta e del suggerimento. Ho controllato per lo più il function.inc.php e trovando spunto di risoluzione da altri post in cui si è trattato di problemi simili ho aggiunto la formattazione mancante e questo è l'attuale codice che mi ritrovo nella suddetta pagina:
/**
* BBcode nativo di GDRCD
* Secondo me, questo bbcode presenta non poche vulnerabilità.
* TODO Andrebbe aggiornata per essere più sicura
* @param string $str : la stringa con i bbcode da tradurre, dovrebbe già essere stata filtrata per l'output su pagina web
* @return $str con i tag bbcode tradotti in html
* @author Blancks
*/
function gdrcd_bbcoder($str)
{
global $MESSAGE;
$str = gdrcd_close_tags('quote', $str);
$search = [
'#\n#',
'#\[BR\]#is',
'#\[B\](.+?)\[\/B\]#is',
'#\[i\](.+?)\[\/i\]#is',
'#\[U\](.+?)\[\/U\]#is',
'#\[center\](.+?)\[\/center\]#is',
'#\[img\](.+?)\[\/img\]#is',
'#\[redirect\](.+?)\[\/redirect\]#is',
'#\[url=(.+?)\](.+?)\[\/url\]#is',
'#\[color=(.+?)\](.+?)\[\/color\]#is',
'#\[quote(?::\w+)?\]#i',
'#\[quote=(?:"|"|\')?(.*?)["\']?(?:"|"|\')?\]#i',
'#\[/quote(?::\w+)?\]#si',
'/\[font\=(.*?)\](.*?)\[\/font\]/is',
'/\[size\=(.*?)\](.*?)\[\/size\]/is',
'#\[right\](.+?)\[\/right\]#is',
'#\[left\](.+?)\[\/left\]#is'
];
$replace = [
'<br />',
'<br />',
'<span style="font-weight: bold;">$1</span>',
'<span style="font-style: italic;">$1</span>',
'<span style="border-bottom: 1px solid;">$1</span>',
'<div style="width:100%; text-align: center;">$1</div>',
'<img src="$1">',
'<meta http-equiv="Refresh" content="5;url=$1">',
'<a href="$1">$2</a>',
'<span style="color: $1;">$2</span>',
'<div class="bb-quote">' . $MESSAGE['interface']['forums']['link']['quote'] . ':<blockquote class="bb-quote-body">',
'<div class="bb-quote"><div class="bb-quote-name">$1 ha scritto:</div><blockquote class="bb-quote-body">',
'</blockquote></div>',
'<span style="font-family: $1;">$2</span>',
'<span style="font-size: $1;">$2</span>',
'<div style="text-align: right;">$1</div>',
'<div style="text-align: left;">$1</div>'
];
return preg_replace($search, $replace, $str);
}
Invece, per quanto riguarda l'altro file ovvero, in plugins/bbdecoder.php, non ho ben inteso in quale parte dovrei andare ad intervenire e come, sinceramente. Quindi allo stato attuale è ancora come d'origine al pacchetto originale di GDRCD 5.6.0.5
12/01/2024 17:02:46
Ciao londonstar,
so che questa discussione è un po’ vecchiotta ma provo comunque a rispondere ai tuoi dubbi, se non altro per aiutare anche altri utenti.
Premetto che sono una “smanettona” e non una programmatrice, quindi spero di riuscire a spiegarmi bene e in modo esaustivo.
1. QUOTE
Ti faccio una domanda: funziona se clicchi il “quota” che è presente in ogni post? Perché se il problema ti si presenta anche così allora non è un inghippo dell’editor ma di gdrcd. In quel caso cerchiamo di capire come risolvere.
2. FONT SIZE
Per finire di risolvere questo problema devi andare nella pagina del bbdecoder.php (che trovi nella cartella puling > cartella bbdecoder).
Circa alla riga 57 trovi questo codice (la riga è relativa al codice vergine di GDRCD 5.6.0.5)
"#\[color=($regexpColor)\](.*?(?!\[color).*?)\[/color\]#is" => "<span style=\"color:\\1\">\\4</span>",
"#\[bg=($regexpColor)\](.*?(?!\[bg).*?)\[/bg\]#is" => "<span style=\"background-color:\\1\">\\4</span>",
"#\[font=([a-z A-Z,]+)\](.*?(?!\[font).*?)\[/font\]#is" => "<span style=\"font-family:\\1\">\\2</span>",
"#\[size=([0-9]{1,2})\](.*?(?!\[size).*?)\[/size\]#is" => "<span style=\"font-size:\\1px\">\\2</span>",
“#\[url\]($regexpUrl)+\[/url\]#is" => "<a href=\"\\1\" target=\"_blank\" title=\"\\1\">\\1</a>",
"#\[mail\]($regexpMail)+\[/mail\]#is" => "<a href=\"mailto:\\1\" title=\"\\1\">\\2</a>",
Nella riga in grassetto devi fare una piccola variazione: tra parentesi graffe { } se noti c’è 1,2. Devi modificarlo in 1,3 e teoricamente dovrebbe leggerti bene il comando size dell’editor.
Se così non si risolve ci ragioniamo su e cerchiamo di capire quale altro problema potrebbe esserci.
Una cosa che io non ho risolto ancora è l’impostazione della dimensione dei caratteri dell’editor, perché il very big lo spiaffa a 200. Io ho provato velocemente a modificare alcuni file dell’editor senza successo, quindi devo prendermi un po’ di tempo e di calma per ragionarci bene su e capire questo problema che io ho riscontrato. Se qualcuno l’ha risolto mi farebbe piacere capire dove andare ad agire, se no ci aggiorniamo appena ne vengo a capo (ho provato ad agire sia su jquery.wysibb.js che su jquery.wysibb.min.js, nelle voci del select options, ma ho ottenuto il nulla cosmico).
3. LISTE
# PASSAGGIO 1
Vai nella pagina del bbdecoder.php (che trovi nella cartella puling > cartella bbdecoder).
Circa alla riga 57 trovi questo codice (la riga è relativa al codice vergine di GDRCD 5.6.0.5)
"#\[color=($regexpColor)\](.*?(?!\[color).*?)\[/color\]#is" => "<span style=\"color:\\1\">\\4</span>",
"#\[bg=($regexpColor)\](.*?(?!\[bg).*?)\[/bg\]#is" => "<span style=\"background-color:\\1\">\\4</span>",
"#\[font=([a-z A-Z,]+)\](.*?(?!\[font).*?)\[/font\]#is" => "<span style=\"font-family:\\1\">\\2</span>",
"#\[size=([0-9]{1,3})\](.*?(?!\[size).*?)\[/size\]#is" => "<span style=\"font-size:\\1px\">\\2</span>",
“#\[url\]($regexpUrl)+\[/url\]#is" => "<a href=\"\\1\" target=\"_blank\" title=\"\\1\">\\1</a>",
"#\[mail\]($regexpMail)+\[/mail\]#is" => "<a href=\"mailto:\\1\" title=\"\\1\">\\2</a>",
In coda io ho aggiunto questo codice:
"#\[list=([1])\](.*?(?!\[list).*?)\[/list\]#is" => "<ol>\\2</ol>",
"#\[list\](.*?(?!\[list).*?)\[/list\]#is" => "<ul>\\1</ul>"
Scendi poi fino a riga 114 circa e trovi questo elenco:
$bbtag = [
[
"\n",
'[hr]',
'~',
'~',
[ecc…]
In fondo a quell’elenco, direi dopo “quote” aggiungi questo:
'[list]~[/list]',
'[*]~[/*]',
'[sup]~[/sup]',
'[sub]~[/sub]'
Scendi poi nell’elenchino sotto, che sembra uguale ma anziché le parentesi quadre [ ] ha i caporali < >, e in coda metti questo:
'<ul>~</ul>',
'<ol>~</ol>',
'<li>~</li>',
'<sup>~</sup>',
'<sub>~</sub>'
Sub e sup sono i comandi che ti fanno funzionare apice e pedice, che anche quelli non funzionano dall’editor.
# PASSAGGIO 2
Vai in function.inc.php (cartella includes) e circa a riga 749 (sempre relativa al codice vergine di GDRCD 5.6.0.5) trovi questo codice:
$search = [
'#\n#',
'#\[BR\]#is',
'#\[B\](.+?)\[\/B\]#is',
'#\[i\](.+?)\[\/i\]#is',
'#\[U\](.+?)\[\/U\]#is',
[ecc…]
In fondo metti questi codici:
'#\[\ol\](.+?)\[/\ol\]#si',
'#\[\li\](.+?)\[/\li\]#si',
'#\[\ul\](.+?)\[/\ul\]#si',
'#\[sup\](.+?)\[\/sup\]#is',
'#\[sub\](.+?)\[\/sub\]#is'
E come prima vai più sotto, nell’elenco con le parentesi < > e metti questo codice:
'<ol>$1</ol>',
'<li>$1</li>',
'<ul>$1</ul>',
'<sup>$1</sup>',
'<sub>$1</sub>'
NOTA: il css di gdrcd nativo pone “ul” con margin: 0.
Se vuoi che rientri come l’elenco numerato devi agire sul css presente in main.css (scopri a che riga è usando il comando ispeziona del tuo browser: dovrebbe dirti la formattazione e a quale riga la trovi).
A memoria direi che tutti i passaggi sono questi. Fammi sapere (o anche altri) se è tutto ok o se per caso non funziona ancora, che magari mi sono scordata di indicare qualche passaggio.
Spero di essere stata d’aiuto 🎈
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!
State of Survival ↗
RAID Shadow Legends ↗
The Coven ↗
World of Tanks ↗