HomeArtikelDownloadsForum
PCFreunde.deForumEntwicklungWebdesign
Besucher online: 212
Schnellsuche

Anzeigen

Community

Foren
Webdesign Seite 1/2
BBCodes für eigene Forum
AntwortenNeues ThemaZur akzeptierten AntwortZur Themenliste
Seiten:
1 2
Weiter
Nachricht
Windows Se7en
Titel: BBCodes für eigene Forum 25.03.2009 15:51
11.277 Punkte (?)
 
Anmeldungsdatum: 26.09.2008
Beiträge: 3.895
Hallo,
wie bekomme ich BBCodes in mein eigen programmiertes Forum?
Muss ich was in CSS eintragen?
Oder wie oder wer oder was :mrgreen:
Gruss,
Windows Se7en
Private Nachricht senden  
 
L3oop
Titel: BBCodes für eigene Forum 25.03.2009 15:58
Moderator
45.021 Punkte (?)
Anmeldungsdatum: 25.04.2008
Beiträge: 9.399
Experte
Akzeptierte Antwort
(+50 Punkte)
Hallo,

das geht mit preg_replace()

Wenn dein Text z.B. $text ist und dein Zitatblock <div class="quote"> ist, dann sieht das Beispiel für [quote]...[/quote] so aus:

$text = preg_replace(array("#\[quote\](.*?)#si", "#\[/quote\]#"), array("<div class=\"quote\"><i>Zitat</i><br />$1", "</div>"), $text);

Das kannst du zum Beispiel in die while-Schleife bei der Anzeige von Posts einfügen.

Gruß L3oop

[Zuletzt bearbeitet: 25.03.2009 16:07]

________________________________________
StereomixBootreihenfolge ändernPC beschleunigen
Private Nachricht senden  
 
Windows Se7en
Titel: BBCodes für eigene Forum 25.03.2009 16:39
11.277 Punkte (?)
 
Anmeldungsdatum: 26.09.2008
Beiträge: 3.895
Danke!
Aber wie geht das jetzt mit mehreren BBCodes?
Gruss,
Windows Se7en
Private Nachricht senden  
 
L3oop
Titel: BBCodes für eigene Forum 25.03.2009 16:43
Moderator
45.021 Punkte (?)
Anmeldungsdatum: 25.04.2008
Beiträge: 9.399
Experte
Welche brauchst du denn noch?

Für Fett noch:

$text = preg_replace("#[b](.*?)[/b]#si", "#<b>$1</b>#", $text);

Kursiv:

$text = preg_replace("#[i](.*?)[/i]#si", "#<i>$1</i>#", $text);


________________________________________
StereomixBootreihenfolge ändernPC beschleunigen
Private Nachricht senden  
 
Windows Se7en
Titel: BBCodes für eigene Forum 25.03.2009 16:51
11.277 Punkte (?)
 
Anmeldungsdatum: 26.09.2008
Beiträge: 3.895
Ja, aber dann wird ja $text öfters definiert.
Und wenn ich den Text ausgeben will, schreibe ich doch <td class="'ext'>$text</td>
Und dann wird doch nur das zuletzt definierte $text genommen, oder nicht?
Private Nachricht senden  
 
bitsnack
Titel: BBCodes für eigene Forum 25.03.2009 16:52
9.479 Punkte (?)
 
Anmeldungsdatum: 30.01.2009
Beiträge: 3.551
Ja, aber in ihm sind alle BBCodes nacheinander ersetzt worden.
Private Nachricht senden  
 
L3oop
Titel: BBCodes für eigene Forum 25.03.2009 18:12
Moderator
45.021 Punkte (?)
Anmeldungsdatum: 25.04.2008
Beiträge: 9.399
Experte
Gh0stc0der hat folgendes geschrieben:
Ja, aber in ihm sind alle BBCodes nacheinander ersetzt worden.


Ganz genau. Du musst dir das so vorstellen:

$text = "Kuchentortenerdbeeren";

$text = preg_replace("#Kuchen#", "Torte", $text);
Momentan steht in $text "Tortetortenerdbeeren"

Dann:
$text = preg_replace("#torten#", "baguette", $text);

$text beinhaltet nun "Tortebaguetteerdbeeren

Verstehst du? Das ist alles nacheinander. :wink:

________________________________________
StereomixBootreihenfolge ändernPC beschleunigen
Private Nachricht senden  
 
Black-Baron
Titel: BBCodes für eigene Forum 26.03.2009 15:17
1.667 Punkte (?)
 
Anmeldungsdatum: 08.04.2007
Beiträge: 674
1 Mitglied findet diesen Beitrag gut
hier auch nochmal ein Beispiel von meinen BB-Code^^

Zitat:
function changetext($str)
{
$str = trim($str);
$str = preg_replace('/\S{60}/', '\0 ', $str);
$str = htmlspecialchars($str);
$str = str_replace(" ", "  ", $str);
$str = preg_replace('=\[h\](.*)\[/h\]=Uis',
'[ b][u]\1[ /b][/u]',$str);
$str = preg_replace('=\[b\](.*)\[/b\]=Uis',
'<span style="font-weight:bold;">\1</span>',$str);
$str = preg_replace('=\[i\](.*)\[/i\]=Uis',
'<span style="font-style:italic;">\1</span>',$str);
$str = preg_replace('=\[u\](.*)\[/u\]=Uis',
'<span style="text-decoration:underline;">\1</span>',
$str);
$str = preg_replace('=\[img\](.*)\[/img\]=Uis',
'<img src="\1">',$str);
$str = preg_replace('=\[code\](.*)\[/code\]=Uis',
'<table bgcolor="#CC0066" width="100%" style="font-family:Courier New;"><tr><td><font size="2">\1</font></td></tr></table>',$str);
$str = nl2br($str);
return $str;
}


ist als Funktion gespeichert, und macht grob überschlagen folgendes:
-Whitespace entfernen
-Maximale Anzahl von Zeichen pro Zeile
-Sonderzeichen in HTML-Codes umwandeln
-wenn 2 Leerzeichen hintereinander kommen diese in geschützte Leerzeichen umwandeln (Für ein Coding-forum empfehlenswert^^)
-Den BB-Code h in b und u umwandeln, damit man nicht immer so viel schreiben muss^^
musste hier im Forum aber ein Leerzeichen vor die "B"s machen damit der des nicht umwandelt^^
-b, u, i von bb-code in normalen text mit css-definitionen ändern
-bilder einfügen
-code --> ist eine 1*1 Tabelle zum guten darstellen von Quellcode



[Zuletzt bearbeitet: 26.03.2009 15:18]
Private Nachricht senden  
 
Windows Se7en
Titel: BBCodes für eigene Forum 28.03.2009 17:10
11.277 Punkte (?)
 
Anmeldungsdatum: 26.09.2008
Beiträge: 3.895
Hey,

dein Fett Code geht nicht.

$text = preg_replace("#[b](.*?)[/b]#si", "#<b>$1</b>#", $text);

Da kommt:
[#]cool[#b]

[Zuletzt bearbeitet: 28.03.2009 17:11]
Private Nachricht senden  
 
L3oop
Titel: BBCodes für eigene Forum 28.03.2009 17:22
Moderator
45.021 Punkte (?)
Anmeldungsdatum: 25.04.2008
Beiträge: 9.399
Experte
Welcher Idi von L3oop hat das falsch geschrieben :shock: :evil:

Natürlich muss es so sein:

$text = preg_replace("#\[b\](.*?)\[/b\]#si", "<b>$1</b>", $text);

[Zuletzt bearbeitet: 28.03.2009 17:30]

________________________________________
StereomixBootreihenfolge ändernPC beschleunigen
Private Nachricht senden  
 
Windows Se7en
Titel: BBCodes für eigene Forum 28.03.2009 17:33
11.277 Punkte (?)
 
Anmeldungsdatum: 26.09.2008
Beiträge: 3.895
Cool, danke
Kannst du mir mal noch BBCodes für [img], [url], [quote=] und [url=] machen, bzw. eine Seite nennen, auf der man das alles nachesen kann?
Gruss,
Windows Se7en

[Zuletzt bearbeitet: 28.03.2009 17:35]
Private Nachricht senden  
 
L3oop
Titel: BBCodes für eigene Forum 28.03.2009 17:36
Moderator
45.021 Punkte (?)
Anmeldungsdatum: 25.04.2008
Beiträge: 9.399
Experte
$text = preg_replace("#\[img\](.*?)\[/img\]#, "<img src=\"$1\" />", $text);
$text = preg_replace("#\[url=(.*?)\](.*?)\[/url\]#si, "<a href=\"$1\">$2</a>", $text);
$text = preg_replace("#\[url\](.*?)\[/url\]#, "<a href=\"$1\">$1</a>", $text);



[Zuletzt bearbeitet: 28.03.2009 17:37]

________________________________________
StereomixBootreihenfolge ändernPC beschleunigen
Private Nachricht senden  
 
Windows Se7en
Titel: BBCodes für eigene Forum 28.03.2009 17:54
11.277 Punkte (?)
 
Anmeldungsdatum: 26.09.2008
Beiträge: 3.895
Da muss irgendwo ein Fehler sein :lol:

Zitat:
Parse error: syntax error, unexpected T_STRING in /mnt/web8/11/47/51976547/htdocs/viewthread.php on line 86


Das kommt da, Zeile 86 ist folgende:
$text = preg_replace("#\[img\](.*?)\[/img\]#, "<img src=\"$1\" />", $text);

Sorry ich kanns net selber korrigieren, kann das preg_replace nicht :lol:

[Zuletzt bearbeitet: 28.03.2009 17:55]
Private Nachricht senden  
 
L3oop
Titel: BBCodes für eigene Forum 28.03.2009 17:59
Moderator
45.021 Punkte (?)
Anmeldungsdatum: 25.04.2008
Beiträge: 9.399
Experte
Ich wusste es :roll: :lol:

$text = preg_replace("#\[img\](.*?)\[/img\]#", "<img src=\"$1\" />", $text);

Anführungszeichen vergessen. Fataler Fehler 8)

________________________________________
StereomixBootreihenfolge ändernPC beschleunigen
Private Nachricht senden  
 
Windows Se7en
Titel: BBCodes für eigene Forum 28.03.2009 18:01
11.277 Punkte (?)
 
Anmeldungsdatum: 26.09.2008
Beiträge: 3.895
Jetz ist ein Fehler in Zeile 87:

$text = preg_replace("#\[url=(.*?)\](.*?)\[/url\]#si, "<a href=\"$1\">$2</a>", $text);

:lol:
Private Nachricht senden  
 
AntwortenNeues ThemaZur akzeptierten AntwortZur Themenliste
Seiten:
1 2
Weiter
Community Login
eMail:
Passwort:
Auto-Login