Autor Zpráva
vynalezce
Profil
Část BBkódu napsaného v [pre] se při editaci nepřevede správně:
Pokud napíši
[*pre]
a[*#5]a
[*/pre]

při editaci se zobrazí

[*pre]
a[*<a href="#5" class=\"kotva\">#5</a>]a
[*/pre]

u značek jako je [b] (také napsané v [pre]) je vše v pořádku

PS. jedu přes sandbox.
Str4wberry
Profil
Ale na druhou stranu – proč by někdo cpal [#5] do [pre]?
vynalezce
Profil
Str4wberry:
Ale na třetí stranu - to, že to někdo málokdy (nikdy) (ne)použije ten regulár neohajuje.
Str4wberry
Profil
No, ptal jsem se proto, že přemýšlím, jestli je lepší opravit převádění při editaci, nebo kotvy v [pre] vůbec nepřevádět.
Chamurappi
Profil
Reaguji na Str4wberryho:
Opravit převádění bude snazší. Nerozumím moc tomu, jak pracuje PHP s řetězci a kde jaké uvozovky potřebují escapování, ale vidím, že v tomto případě jsou zpětná lomítka před uvozovkami i v HTML => problém je v převodu do HTML, ne z něj.
    $pattern[] = "/\[#([0-9]{1,2})\]/is";
    $replacement[] = '[<a href="#\\1" class=\"kotva\">#\\1</a>]';
— teď jsem ta lomítka vyhodil.
To, že v <pre> zůstávala a jinde ne, asi nějak souvisí s tou dodatečnou likvidací <br>. Nějakou logiku v tom vidím. Ale odpudivou. (Brrr. Zlatý C#.)


Reaguji na vynalezce:
Díky za nález.

[*pre]
Místo hvězdiček můžeš používat [!] (neviditelný narušovač).
Str4wberry
Profil
No, mně šlo o to, že si nemyslím, že může být k něčemu dobré dávat [#odkaz] do [pre]. Přece jenom se to může objevit jako součást zdrojového kódu.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0