Добавяне на BBcode към форма

topchokt

Registered
Здравейте,
до сега четох и изпробвах уроци за добавяне на bbcode към система за новини, т.е. форма, но така и не успях да се справя с нито една. Не ми трябва нещо сложно, bb кодовете които желая са за удебеляване, накланяне, подчертава, един, два цвята, картина и линк. Както казах пробвах доста уроци, но нито един не успях да оправя.
Някой би ли споделил подробно как става работата с тези bbcode . Благодаря предварително.
 
topchokt каза:
Здравейте,
до сега четох и изпробвах уроци за добавяне на bbcode към система за новини, т.е. форма, но така и не успях да се справя с нито една. Не ми трябва нещо сложно, bb кодовете които желая са за удебеляване, накланяне, подчертава, един, два цвята, картина и линк. Както казах пробвах доста уроци, но нито един не успях да оправя.
Някой би ли споделил подробно как става работата с тези bbcode . Благодаря предварително.


Това http://corpocrat.com/2008/08/15/free-wysiwyg-bbcode-editor-in-javascript/
 
Добре, но как да го направя така че когато извежда новината да я показва както трябва, тоест ако при въвеждането съм въвел
Код:
[url]http://ivanovk.info[/url]
, когато я извежда да показва http://ivanovk.info с линк ?
 
Код:
function bbcode($text){

$text=preg_replace("/\[i\](.+?)\[\/i\]/s", '<i>$1</i>',$text);

$text=preg_replace("/\[b\](.+?)\[\/b\]/s", '<b>$1</b>',$text);

$text=preg_replace("/\[u\](.+?)\[\/u\]/s", '<u>$1</u>',$text);

$text=preg_replace("/\[quote\](.+?)\[\/quote\]/s", '<table width="95%" align="center" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="code_t">Quote:</td></tr><tr><td class="code" width="100%">$1</td></tr></tbody></table>',$text);

$text=preg_replace("/\[quote\=(.+?)](.+?)\[\/quote\]/s", '<table width="95%" align="center" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="code_t">$1 say:</td></tr><tr><td class="code" width="100%">$2</td></tr></tbody></table>',$text);

$text=preg_replace("/\[url\](.+?)\[\/url\]/s", '<a href="$1">$1</a>',$text);

$text=preg_replace("/\[url\=(.+?)\](.+?)\[\/url\]/s", '<a href="$1">$2</a>',$text);

$text=preg_replace("/\[img\](.+?)\[\/img\]/s", '<a href="$1" target="_blank"><img src="$1" width="250" height="250" alt="Кликни на снимката за Пълен размер" title="Кликни на снимката за Пълен размер"/></a>',$text);

$text=preg_replace("/\[color\=(.+?)\](.+?)\[\/color\]/s", '<span style="color:$1">$2</span>',$text);

$text=preg_replace("/\[size\=(.+?)\](.+?)\[\/size\]/s", '<span style="font-size:$1">$2</span>',$text);

$text=preg_replace("/\[code\](.+?)\[\/code\]/s",'<table width="95%" align="center" border="0" cellpadding="0"  cellspacing="0"><tbody><tr><td class="code_t"></td></tr><tr><td class="code" style="background: #4B254B; color:white;" width="100%">$1</td></tr></tbody></table>',$text);
$text = nl2br($text);
return $text;
}
?>


пример:

$text = dassaddsadsd;
$t = bbcode($text);
 
правиш файл

bbcode.php
Код:
     function bbcode($text){

$text=preg_replace("/\[i\](.+?)\[\/i\]/s", '<i>$1</i>',$text);

$text=preg_replace("/\[b\](.+?)\[\/b\]/s", '<b>$1</b>',$text);

$text=preg_replace("/\[u\](.+?)\[\/u\]/s", '<u>$1</u>',$text);

$text=preg_replace("/\[quote\](.+?)\[\/quote\]/s", '<table width="95%" align="center" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="code_t">Quote:</td></tr><tr><td class="code" width="100%">$1</td></tr></tbody></table>',$text);

$text=preg_replace("/\[quote\=(.+?)](.+?)\[\/quote\]/s", '<table width="95%" align="center" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="code_t">$1 say:</td></tr><tr><td class="code" width="100%">$2</td></tr></tbody></table>',$text);

$text=preg_replace("/\[url\](.+?)\[\/url\]/s", '<a href="$1">$1</a>',$text);

$text=preg_replace("/\[url\=(.+?)\](.+?)\[\/url\]/s", '<a href="$1">$2</a>',$text);

$text=preg_replace("/\[img\](.+?)\[\/img\]/s", '<a href="$1" target="_blank"><img src="$1" width="250" height="250" alt="Кликни на снимката за Пълен размер" title="Кликни на снимката за Пълен размер"/></a>',$text);

$text=preg_replace("/\[color\=(.+?)\](.+?)\[\/color\]/s", '<span style="color:$1">$2</span>',$text);

$text=preg_replace("/\[size\=(.+?)\](.+?)\[\/size\]/s", '<span style="font-size:$1">$2</span>',$text);

$text=preg_replace("/\[code\](.+?)\[\/code\]/s",'<table width="95%" align="center" border="0" cellpadding="0"  cellspacing="0"><tbody><tr><td class="code_t"></td></tr><tr><td class="code" style="background: #4B254B; color:white;" width="100%">$1</td></tr></tbody></table>',$text);
$text = nl2br($text);
return $text;
}
?>

след това в index.php(или както се казва там файла ти)
слагаш следното

include "bbcode.php";
$text = dassaddsadsd;
$t = bbcode($text);
като естествено това bbcode() функцията я слагаш при изкарването на резултатите от БД а не при въвеждането
 
Тъй като не мога да се справя, били го направил ти. Ето това е кода с който извеждам новина(и) от базата данни:
Код:
	<?PHP
include ('includes/conf.php'); //добавяме config файла
$our = mysql_query("SELECT ime , awtor,  nowina, picture, date, id FROM news ORDER BY id DESC LIMIT 1"); //избираме кои неща да вземем от БД
while($r=mysql_fetch_array($our)){
if (strlen($r['nowina'])>$broi)
{$totchki='...';}
else
{$totchki='';}
echo "<img src='/i/news/$r[picture]' width=150 height=140 class='imgFrame imgLeft' />



";

$kratko = substr($r['nowina'],0,$broi); //правим новината да не е повече от някакъв брой символи
echo "<div id='block_linkstyle' hspace='20' >$kratko".$totchki."
</div>
";
} 
?>

Благодаря предварително.
 
<?PHP
include ('includes/conf.php'); //добавяме config файла
include ('bbcode.php');
$our = mysql_query("SELECT ime , awtor, nowina, picture, date, id FROM news ORDER BY id DESC LIMIT 1"); //избираме кои неща да вземем от БД
while($r=mysql_fetch_array($our)){
if (strlen($r['nowina'])>$broi)
{$totchki='...';}
else
{$totchki='';}
echo "<img src='/i/news/$r[picture]' width=150 height=140 class='imgFrame imgLeft' />

bbcode($r['novina']);
//къдено предполагам $r['novina'] е реда в БД където е записана новината. така по този начин, ще ти искара с бб код ако си сложил.

";

$kratko = substr($r['nowina'],0,$broi); //правим новината да не е повече от някакъв брой символи
echo "<div id='block_linkstyle' hspace='20' >$kratko".$totchki."
</div>
";
}
?>
 
Сега дори и да сложа bbcode, показва текста нормално, не се показват таговете например
Код:
[b][/b]
, но и текста не е удебелен.

Едит:
Сега ми даде следната грешка:
Код:
function bbcode($text){ $text=preg_replace("/\[i\](.+?)\[\/i\]/s", '$1',$text); $text=preg_replace("/\[b\](.+?)\[\/b\]/s", '$1',$text); $text=preg_replace("/\[u\](.+?)\[\/u\]/s", '$1',$text); $text=preg_replace("/\[quote\](.+?)\[\/quote\]/s", 'Quote:
$1

',$text); $text=preg_replace("/\[quote\=(.+?)](.+?)\[\/quote\]/s", '$1 say:
$2

',$text); $text=preg_replace("/\[url\](.+?)\[\/url\]/s", '$1',$text); $text=preg_replace("/\[url\=(.+?)\](.+?)\[\/url\]/s", '$2',$text); $text=preg_replace("/\[img\](.+?)\[\/img\]/s", '',$text); $text=preg_replace("/\[color\=(.+?)\](.+?)\[\/color\]/s", '$2',$text); $text=preg_replace("/\[size\=(.+?)\](.+?)\[\/size\]/s", '$2',$text); $text=preg_replace("/\[code\](.+?)\[\/code\]/s",'
$1

',$text); $text = nl2br($text); return $text; } ?>

Не извежда и новината...
 
направил ли си файл bbcode.php

bbcode.php
Код:
function bbcode($text){


$text=preg_replace("/\[i\](.+?)\[\/i\]/s", '<i>$1</i>',$text);

$text=preg_replace("/\[b\](.+?)\[\/b\]/s", '<b>$1</b>',$text);

$text=preg_replace("/\[u\](.+?)\[\/u\]/s", '<u>$1</u>',$text);

$text=preg_replace("/\[quote\](.+?)\[\/quote\]/s", '<table width="95%" align="center" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="code_t">Quote:</td></tr><tr><td class="code" width="100%">$1</td></tr></tbody></table>',$text);

$text=preg_replace("/\[quote\=(.+?)](.+?)\[\/quote\]/s", '<table width="95%" align="center" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="code_t">$1 say:</td></tr><tr><td class="code" width="100%">$2</td></tr></tbody></table>',$text);

$text=preg_replace("/\[url\](.+?)\[\/url\]/s", '<a href="$1">$1</a>',$text);

$text=preg_replace("/\[url\=(.+?)\](.+?)\[\/url\]/s", '<a href="$1">$2</a>',$text);

$text=preg_replace("/\[img\](.+?)\[\/img\]/s", '<a href="$1" target="_blank"><img src="$1" width="250" height="250" alt="Кликни на снимката за Пълен размер" title="Кликни на снимката за Пълен размер"/></a>',$text);

$text=preg_replace("/\[color\=(.+?)\](.+?)\[\/color\]/s", '<span style="color:$1">$2</span>',$text);

$text=preg_replace("/\[size\=(.+?)\](.+?)\[\/size\]/s", '<span style="font-size:$1">$2</span>',$text);

$text = preg_replace("/\[code\](.+?)\[\/code\]/s",'<table width="95%" align="center" border="0" cellpadding="0"  cellspacing="0"><tbody><tr><td class="code_t"></td></tr><tr><td class="code" style="background: #4B254B; color:white;" width="100%">$1</td></tr></tbody></table>',$text);
$text = nl2br($text);
return $text;
}
 
Този проблем го оправих, но сега отново не показва текста да кажем удебелен, а го показва така
Код:
[b]text[/b]
.
 
<?PHP
include ('includes/conf.php'); //добавяме config файла
include ('bbcode.php');
$our = mysql_query("SELECT ime , awtor, nowina, picture, date, id FROM news ORDER BY id DESC LIMIT 1"); //избираме кои неща да вземем от БД
while($r=mysql_fetch_array($our)){
$novina = bbcode($r['novina']);
if (strlen($novina>$broi)
{$totchki='...';}
else
{$totchki='';}
echo "<img src='/i/news/$r[picture]' width=150 height=140 class='imgFrame imgLeft' />



";

$kratko = substr($novina,0,$broi); //правим новината да не е повече от някакъв брой символи
echo "<div id='block_linkstyle' hspace='20' >$kratko".$totchki."
</div>
";
}
?>
 
Дава ми грешна, но заради хоста не мога да ти кажа къде е ;( . Тъй като хоста щом има грешка изписва
Ненамерен сървър или файл

Към момента адресът (УРЛ) http://fctheheads.co.cc/index.php не е достъпен. Проверете дали е изписан правилно и тогава се опитайте да го заредите отново.
Активна ли е връзката към Интернет? Работят ли и други приложения, които я ползват?
Проверете дали настройката на евентуален софтуер за защита от интернет е коректна и дали не пречи на нормалното разглеждане на уеб страници
Ако сте зад защитна стена (firewall) или в локална мрежа (LAN) и смятате, че настройката им предизвиква проблеми, обърнете се към системния администратор
Опитайте с изключване на прокси сървърите (клавиш F12), освен ако сте сигурни, че трябва да се свързвате към интернет чрез тях. Презаредете страницата.
Нуждаете се от помощ?
Отворете помощната документация за Opera.
Посетете страницата за обслужване на клиенти на Opera.



Edit:
Оправих проблем, кода го направих така:
Код:
<?PHP 
include ('includes/conf.php'); //добавяме config файла 
include ('includes/bbcode.php'); 
$our = mysql_query("SELECT ime , awtor, nowina, picture, date, id FROM news ORDER BY id DESC LIMIT 1"); //избираме кои неща да вземем от БД 
while($r=mysql_fetch_array($our)){ 
if (strlen($r['nowina'])>$broi) 
{$totchki='...';} 
else 
{$totchki='';} 
echo "<img src='/i/news/$r[picture]' width=150 height=140 class='imgFrame imgLeft' /> 



"; 
$kratko = bbcode($r['nowina'],0,$broi);
echo "<div id='block_linkstyle' hspace='20' >$kratko".$totchki." 
</div> 
"; 
} 
?>

За сега темата нека бъде отключена, защото ще слагам bbcode на още една-две форми, но така или иначе имаш точка от мен.
 

Back
Горе