PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : BBcode Parser in vB3.5


belinea
01.07.2005, 14:41
Wie nutze ich denn den Parser von vB3.5? Den alten (parse_bbcode2) scheint es nicht mehr zu geben.

In der /includes/class_bbcode.php fand ich eine Funktion names vB_BbcodeParser. Aber wenn ich nutzen will (als Hook in forumhame_start) kommt die Meldung das es diese Funktion nicht gebe.

Stussi
01.07.2005, 14:42
Was hast du denn vor?

belinea
01.07.2005, 14:58
Was hast du denn vor?BBCode parsen.

Also ich willl auf eigenen Seiten Beiträge formatiert ausgeben.

Mystics
02.07.2005, 01:20
Rufst du denn im Einstiegspunkt auch die class_bbcode.php auf?

belinea
02.07.2005, 12:52
Nein, dachte dies geschieht automatisch.

Ok, habe sie jetzt mit include('includes/class_bbcode.php'); eingebunden. Aber es geht immer noch nicht.

Wie heisst denn die Function genau?

Ich habe vB_BbcodeParser, bbcode_parse und parse_bbcode aber keien dieser Funktionen scheinen zu existieren.

Ich glaube ich nehme jetzt einfach den Code von der 3.0er Version.


function parse_text($string)
{
// URLs verlinken
$string = ' ' . $string;
$string = preg_replace("#(^|[\n ])([\w]+?://.*?[^ \"\n\r\t<]*)#is", "\\1<a href=\"\\2\" class=\"main\" target=\"_blank\">\\2</a>", $string);
$string = preg_replace("#(^|[\n ])((www|ftp)\.[\w\-]+\.[\w\-.\~]+(?:/[^ \"\t\n\r<]*)?)#is", "\\1<a href=\"http://\\2\" class=\"main\" target=\"_blank\">\\2</a>", $string);
$string = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $string);
$string = substr($string, 1);
// Zeilenumbrüche beibehalten
// $string = preg_replace("#\#is", "<br>", $string);
// vB-Codes ersetzen
$string = preg_replace("#\[b\](.+?)\[/b\]#is", "<b>\\1</b>", $string);
$string = preg_replace("#\[i\](.+?)\[/i\]#is", "<i>\\1</i>", $string);
$string = preg_replace("#\[u\](.+?)\[/u\]#is", "<u>\\1</u>", $string);
$string = preg_replace("#\[link\]www\.(.+?)\[/link\]#is", "<a href=\"http://www.\\1\" class=\"main\" target=\"_blank\">www.\\1</a>", $string);
$string = preg_replace("#\[link\](.+?)\[/link\]#is", "<a href=\"\\1\" class=\"main\" target=\"_blank\">\\1</a>", $string);
$string = preg_replace("#\[link=(.+?)\](.+?)\[/link\]#is", "<a href=\"\\1\" class=\"main\" target=\"_blank\">\\2</a>", $string);
//$string = preg_replace("#\[url\]www\.(.+?)\[/url\]#is", "<a href=\"http://www.\\1\" class=\"main\" target=\"_blank\">www.\\1</a>", $string);
//$string = preg_replace("#\[url\](.+?)\[/url\]#is", "<a href=\"\\1\" class=\"main\" target=\"_blank\">\\1</a>", $string);
$string = preg_replace("#\[url=(.+?)\](.+?)\[/url\]#is", '<a href=\1>\2</a>', $string);
//$string = preg_replace("#\[img\](.+?)\[/img\]#is", "<img src=\"\\1\" alt=\"[image]\" style=\"margin: 5px 0px 5px 0px\" />", $string);
return $string;
}

Mystics
02.07.2005, 13:14
http://www.vbulletin.org/forum/showthread.php?t=82693require_once('./includes/class_bbcode.php');
$parser =& new vB_BbCodeParser($vbulletin, fetch_tag_list());
$parsed_text = $parser->do_parse($text, $do_html, $do_smilies, $do_bbcode, $do_imgcode, $do_nl2br, $cachable);

belinea
02.07.2005, 17:08
Vielen vielen Dank.

vBulletin ist einfach das GEILSTE Forensystem von allen !!!!! :p

Ahriman
08.04.2006, 12:34
require_once('./includes/class_bbcode.php');
$parser =& new vB_BbCodeParser($vbulletin, fetch_tag_list());
$parsed_text = $parser->do_parse($text, $do_html, $do_smilies, $do_bbcode, $do_imgcode, $do_nl2br, $cachable);

Ich versuche gerade einen BB-Code zu erstellen, der Links nicht in einem neuen Fenster sondern im selben wie bisher aufmacht.

Der funktioniert auch solange ich den BB-Code innerhalb eines Postings verwende sowie im Admin-Panel. Aber sobald ich versuche anderswo auf einer Seite geparseten Text anzuzeigen, haut das nciht mehr hin.

Weiß jemand woran das liegen kann?