zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden BB-Code Funktion?

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 22.04.2006, 15:08
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 07.02.2006
Beiträge: 78
Hairy befindet sich auf einem aufstrebenden Ast
Standard BB-Code Funktion?

Guten Tag,

ich hätte gerne eine Funktion, mit der ich einen String, der beispielsweise einen Forenbeitrag oder den Inhalt einer per CMS geladenen Seite enthält, "parst". Also HTML rauswirft, BB-Code erkennt und umwandelt etc. und schließlich das Ganze ausgibt.

Ich habe schon danach gegoogelt, und bin auf zwei Scripte gestoßen:

http://software.unclassified.de/abbc <- Das ist im Prinzip genau das, was ich suche. Dummerweise ist es kein valides XHTML und scheidet somit für mich aus.

Besser gefällt mir da schon http://www.christian-seiler.de/projekte/php/bbcode/. Ich habe mir das mal heruntergeladen und etwas damit rumexperimentiert, da ist es zumindest möglich es valide zu machen.
Nur, da ähnlich viele BB-Codes wie beim ersten Link zu implementieren, ist verdammt kompliziert, da man jeden Code einzeln selbst definieren muss. Meine Frage ist nun, ob es nicht irgendwo schon etwas "fertiges" gibt?

Oder kennt vll. noch jemand eine andere Funktion/Klasse ähnlich der ersten hier, die aber gleich in XHTML ist?
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 22.04.2006, 15:27
Benutzer
neuer user
 
Registriert seit: 01.12.2005
Beiträge: 94
sebastianu befindet sich auf einem aufstrebenden Ast
Standard

Für solche Zwecke würde ich nicht BBcode sondern Textile empfehlen.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 22.04.2006, 15:40
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 07.02.2006
Beiträge: 78
Hairy befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von sebastianu
Für solche Zwecke würde ich nicht BBcode sondern Textile empfehlen.
Danke, aber wie kann ich sowas direkt in mein CMS einbinden? Abgesehen davon wäre mir BB-Code lieber, v.a. auch in einem Forum, da man das dort gewohnt ist.
Mit Zitat antworten
  #4 (permalink)  
Alt 23.04.2006, 09:24
Benutzer
neuer user
 
Registriert seit: 01.12.2005
Beiträge: 94
sebastianu befindet sich auf einem aufstrebenden Ast
Standard

Textile ist einfach einzubinden, da es sich im wesentlichen um eine Funktion handelt, die Textile-Text in HTML umwandelt. Man muss diese Funktion also nur einmal vor der Ausgabe über alle Texte laufen lassen.

Von BBcode halte ich nicht viel und hab mich auch nie damit beschäftigt.
Mit Zitat antworten
  #5 (permalink)  
Alt 23.04.2006, 10:16
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 07.02.2006
Beiträge: 78
Hairy befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von sebastianu
Textile ist einfach einzubinden, da es sich im wesentlichen um eine Funktion handelt, die Textile-Text in HTML umwandelt. Man muss diese Funktion also nur einmal vor der Ausgabe über alle Texte laufen lassen.
Und wo würde ich diese Funktion herbekommen? Hab auf der Seite nichts gefunden... (mal abgesehen davon, dass ich weiterhin BB-Code favoritisiere )
Mit Zitat antworten
  #6 (permalink)  
Alt 23.04.2006, 13:38
Benutzer
neuer user
 
Registriert seit: 01.12.2005
Beiträge: 94
sebastianu befindet sich auf einem aufstrebenden Ast
Standard

http://www.textism.com/tools/textile/license.html
Mit Zitat antworten
  #7 (permalink)  
Alt 23.04.2006, 22:53
Benutzerbild von The Doc
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 19.01.2005
Beiträge: 1.113
The Doc befindet sich auf einem aufstrebenden Ast
Standard

Oder du nimmst Markdown (ist Textile ähnlich, nur find ichs persönlich besser), am besten noch in verbindung zu Smartypants

Markdown: http://daringfireball.net/projects/markdown/
Smartypants: http://daringfireball.net/projects/smartypants/

PHP-Port: http://www.michelf.com/projects/
__________________
Bitte keine PN's - schreibt mir ne anständige Mail oder sprecht mich über Msn / Icq an
Milian Wolff | Markdownify | Typogridder
Mit Zitat antworten
  #8 (permalink)  
Alt 24.04.2006, 19:24
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 07.02.2006
Beiträge: 78
Hairy befindet sich auf einem aufstrebenden Ast
Standard

Gefällt mir sehr gut, besonders Markdown... so in der Art stell ich mir das jedenfalls vor.
Aber BB-Code wäre mir trotzdem lieber
So etwas muss es doch irgendwo geben?
Mit Zitat antworten
  #9 (permalink)  
Alt 24.04.2006, 19:30
Benutzerbild von Unsk1ll3d
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 03.01.2006
Beiträge: 206
Unsk1ll3d befindet sich auf einem aufstrebenden Ast
Standard

Ich könnte dir meinen BBCode-Auszug anbieten. Der sollte eigentlich valide sein...
Die Templates für die Code-Reihe sind auch anpassbar...

Wennde es verwenden kannst is gut, wenn nicht...ignoriers einfach
//edit: Sorry for Spam, aber spoiler gibbet hier nich^^
Zitier am besten den Post, wegen den ganzen in BBCode enthaltenen Tags ^^
PHP-Code:
<?php
function code_tpl($type,$src_code,$desc='')
 {
  
$t_code['type']= "Code:";
  
$t_code['rgb'] = "dda";
  
$t_html['type']= "HTML-Code:";
  
$t_html['rgb'] = "ada";
  
$t_php['type'] = "PHP-Code:";
  
$t_php['rgb']  = "aad";
  
$t_svg['type'] = "SVG-Code:";
  
$t_svg['rgb']  = "dad";
  
$t_xml['type'] = "XML-Code:";
  
$t_xml['rgb']  = "daa";

  
$code_style "
<ul><li style=\"background-color:#{rgb};\">{type}"
;
  if(!empty(
$desc))
  { 
$code_style.="<li style=\"background-color:#{rgb};\">{desc}"; }
  
$code_style.="[*]{code}[/list]";

  
$code=eregi_replace("{type}",${"t_".$type}['type'],$code_style);
  
$code=eregi_replace("{rgb}", ${"t_".$type}['rgb'], $code);
  
$code=eregi_replace("{code}",$src_code,       $code);
  
$code=eregi_replace("{desc}",$desc,           $code);

  return 
$code;
 }

function 
TT_Code($string)
{

 
//  $string = htmlspecialchars($string);

 // [html=Info]HTML Code: Info[/html]
 // [php=Info]PHP Code: Info[/___dummy___php]
 
$string preg_replace("#\[code\](.*)\[\/code\]#Use",     "code_tpl('code',highlight_string(stripslashes('$1'),true))",     $string);
 
$string preg_replace("#\[code=(.*)\](.*)\[\/code\]#Use","code_tpl('code',highlight_string(stripslashes('$2'),true),'$1')",$string);
 
$string preg_replace("#\[html\](.*)\[\/html\]#Use",     "code_tpl('html',highlight_string(stripslashes('$1'),true))",     $string);
 
$string preg_replace("#\[html=(.*)\](.*)\[\/html\]#Use","code_tpl('html',highlight_string(stripslashes('$2'),true),'$1')",$string);
 
$string preg_replace("#\[php\](.*)\[\/php\]#Use",       "code_tpl('php',highlight_string(stripslashes('$1'), true))",     $string);
 
$string preg_replace("#\[php=(.*)\](.*)\[\/php\]#Use",  "code_tpl('php',highlight_string(stripslashes('$2'), true),'$1')",$string);
 
$string preg_replace("#\[svg\](.*)\[\/svg\]#Use",       "code_tpl('svg',highlight_string(stripslashes('$1'), true))",     $string);
 
$string preg_replace("#\[svg=(.*)\](.*)\[\/svg\]#Use",  "code_tpl('svg',highlight_string(stripslashes('$2'), true),'$1')",$string);
 
$string preg_replace("#\[xml\](.*)\[\/xml\]#Use",       "code_tpl('xml',highlight_string(stripslashes('$1'),true))",      $string);
 
$string preg_replace("#\[xml=(.*)\](.*)\[\/xml\]#Use",  "code_tpl('xml',highlight_string(stripslashes('$2'),true),'$1')"$string);

 
// \n durch 
 
ersetzen
 $string 
nl2br($string);
 
// [b]...[/b]
 
$string preg_replace("~\[b\](.*)\[/b\]~Uis","[b]\\1[/b]",$string);
 
// [i]...[/i]
 
$string preg_replace("~\[i\](.*)\[/i\]~Uis","[i]\\1[/i]",$string);
 
// [u]...[/u]
 
$string preg_replace("~\[u\](.*)\[/u\]~Uis","<u>\\1</u>",$string);

 
//[list]...[/list] $string = preg_replace("~\[list\](.*)\[/list\]~Uis","<ul>\\1[/list]",$string);
 // [item]...[/item]
 
$string preg_replace("~\[item\](.*)\[/item\]~Uis","[*]\\1",$string);
 
// [center]...[/center]
 
$string preg_replace("~\[center\](.*)\[/center\]~Uis","<center>\\1</center>",$string);
 
// [div=class_name]...[/div]
 
$string preg_replace("~\[div=(.*)\](.*)\[/div\]~Uis","<div style=\"vertical-align:top\" class=\"\\1\">\\2</div>",$string);
 
// [float=clear]
 
$string preg_replace("~\[float=clear\]~Uis","<br style=\"clear:both\" />",$string);

 
// [img]http://url[/img]
 
$string preg_replace("~\[img\](.*)\[/img\]~Uis","<img src=\"\\1\" border=\"0\" alt=\"\" />",$string);
 
// [img-width]http://url[/img]
 
$string preg_replace("~\[img-(.*){0,3}\](.*)\[/img\]~Uis","<img style=\"width]http://url[/img]
 
$string = preg_replace("~\[img-(.*){0,3}:(.*){0,3}\](.*)\[/img\]~Uis","<img style=\"width:\\1px;height:\\2px\" src=\"\\3\" border=\"0\" alt=\"\" />",$string);
 
// [img=svg]http://url[/img]
 
$string preg_replace("~\[img=svg\](.*)\[/img\]~Uis","<object style=\"border:1px solid #f00;width:100%;height:100%\" data=\"\\1\" type=\"image/svg+xml\" codebase=\"http]http://url[/img]
 
$string = preg_replace("~\[img=svg-(.*){0,3}:(.*){0,3}\](.*)\[/img\]~Uis","<object style=\"border:1px solid #f00;\" width=\"\\1\" height=\"\\2\" data=\"\\3\" type=\"image/svg+xml\" codebase=\"http://www.adobe.com/svg/viewer/install/\"></object>",$string);

 
// [url]http://url[/url]
 
$string preg_replace("~\[url\](.*)\[/url\]~Uis","<a href=\"\\1\">\\1</a>",$string);
 
// [url=http://url]Text[/url]
 
$string preg_replace("~\[url=(.*)\](.*)\[/url\]~Uis","<a href=\"\\1\">\\2</a>",$string);
 
// [pre]Quelltext[/pre]
 
$string preg_replace("~\[pre\](.*)\[/pre\]~Uis","<pre>\\1</pre>",$string);
 
// [abbr=Beschreibung]Kürzel[/abbr]
 
$string preg_replace("~\[abbr=(.*)\](.*)\[/abbr\]~Uis","<abbr title=\"\\1\">\\2</abbr>",$string);

 
// & durch &amp;
 
$string eregi_replace(" & "" &amp; ",$string);
 return 
$string;
}
?>
MfG,
Unsk1ll3d
__________________
Ich bin keine Signatur, ich putz hier nur
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 25.04.2006, 11:07
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 23.05.2005
Beiträge: 156
betrazivis befindet sich auf einem aufstrebenden Ast
Standard

http://pear.php.net/package/HTML_BBCodeParser

http://phpschnipsel.de/index.php?page=details&nr=26
__________________
rm -rf $HOME
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
CSS Code - Komme nicht zurecht Invator01 CSS 19 05.04.2011 21:00
[OOP] Funktion von Elternobjekt in neuer Funktion speichern -> Problem ab 2 Instanzen 1chris Javascript & Ajax 3 10.01.2011 15:50
Tabellenfarbe im Design Code definieren Maichen (X)HTML 11 16.12.2010 10:37
[WIP]jQuery Code als Anfänger selber schreiben - benötige Hilfe accessoire Javascript & Ajax 4 09.06.2010 09:07
Riesen Abstand aber nur bei dem ersten Eintrag (beim gleichen Code) StarSt0rm CSS 5 27.08.2007 15:01


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:53 Uhr.