Autor Zpráva
Petre
Profil *
Jak udělat pomocí BB kódování vkládání seznamu (ul li)? Takhle dělám kurzívu
$text = Str_Replace("[i]","<em>",$text);
$text = Str_Replace("[/i]","</em>",$text);
Chamurappi
Profil
Reaguji na Petre:
Tu kurzívu bys měl udělat lépe, takhle ti hrozí, že člověk vloží neuzavřený <em>. (Mimochodem, proč ne <i>?)
Nevím o tom, že by existovala nějaká vžitá konvence týkající se seznamů v BB syntaxi. Cokoliv zavedeš, budeš muset vysvětlit uživatelům.
Petre
Profil *
Chamurappi
Uživatel klikne na ikonku kurzíva a javascriptem se ta značka vloží do textového pole, takže ručně vkládat nic nebude. Jde mi o to, aby poté výstup "nějak" vypadal a ne jen holý text. Tím pádem se také stejným způsobem snažím o nadpisy, tučný text.
Petre
Profil *
A mimochodem jak udělat vkládání odkazu jako je zde na diskuzi?
Takhle to mám já, ale vadí mi, že se mi tam napevno hodí nápis odkaz a nemůžu ho změnit

$text = preg_replace("((http|https)://[^ ]+\.[^ ]+)", " <a href=\\0 target=_blank>odkaz</a>", $text);
Watchick
Profil
Petre
Podle tvých reakcí usuzuji, že jsi na podobné úrovni, jako jsem byl já před nějakou dobou, myslím že nejjednodužší je stáhnout si na to nějakou třídu, například tuto. Jednodužše by to šlo třeba udělat tak, že bys měl:

$text = Str_Replace("[list]","<ul>",$text);
$text = Str_Replace("[/list]","</ul>",$text);
$text = Str_Replace("[bod]","<li>",$text);
$text = Str_Replace("[/bod]","</li>",$text);

a Text by vypadal takto:
[list]
[bod]První bod[/bod]
[bod]druhý bod[/bod]
[/list]

Nicméně problém je, že pokud uživatel neuzavře BBtag, tak uz je oheň na střeše... Například, kdybych do dané stránky dal pouze
Tak a teď jsem ti to rozhodil [i]
tak zbytek stránky bude kurzívou, jak psal Chamurappi
Petre
Profil *
Watchick
Diky. A dá se to nějak ošetřit aby k tomu nemohlo dojít?
Chamurappi
Profil
Reaguji na Petre:
jak udělat vkládání odkazu jako je zde na diskuzi?
A dá se to nějak ošetřit aby k tomu [neuzavření] nemohlo dojít?
Tady je převod naprogramovaný přesně takto:
<?php
function enCodeBB($msg, $admin) {

	$pattern[0] = "/\[url=(http[s]?:\/\/[^<> \n]+?)\](.+?)\[\/url\]/i";
	$replacement[0] = '<a href="\\1" target="_blank" rel="nofollow">\\2</a>';

	$pattern[1] = "/\[url](http[s]?:\/\/[^<> \n]+?)\[\/url\]/i";
	$replacement[1] = '<a href="\\1" target="_blank" rel="nofollow">\\1</a>';

	// atd.

	$pattern[3] = "/\[[bB]\](.+?)\[\/[bB]\]/s";
	$replacement[3] = '<b>\\1</b>';

	$pattern[4] = "/\[[iI]\](.+?)\[\/[iI]\]/s";
	$replacement[4] = '<i>\\1</i>';

	// atd.

	$msg = preg_replace($pattern, $replacement, $msg);
	return $msg;
}
?>
Petre
Profil *
Chamurappi
Díky a jak udělám to, aby po kliknutí na odkaz se ten tag URL vloží do textarey (stejně jako tady)?
Tučný text dělám takhle:
<a href="javascript:put(' [b][/b] ')"

a javascript:
function put(s) { document.getElementById("formular_js").text.value+=''+ s; }
To funguje, ale pro ten odkaz nevím.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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