|
Windows Se7en
|
| Titel: BBCodes für eigene Forum |
25.03.2009 15:51 |
|
|
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 Gruss, Windows Se7en
|
 |
|
| |
|
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]
________________________________________ Stereomix • Bootreihenfolge ändern • PC beschleunigen
|
 |
|
| |
|
Windows Se7en
|
| Titel: BBCodes für eigene Forum |
25.03.2009 16:39 |
|
|
Anmeldungsdatum: 26.09.2008
Beiträge: 3.895
|
Danke! Aber wie geht das jetzt mit mehreren BBCodes? Gruss, Windows Se7en
|
 |
|
| |
|
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);
________________________________________ Stereomix • Bootreihenfolge ändern • PC beschleunigen
|
 |
|
| |
|
Windows Se7en
|
| Titel: BBCodes für eigene Forum |
25.03.2009 16:51 |
|
|
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?
|
 |
|
| |
|
bitsnack
|
| Titel: BBCodes für eigene Forum |
25.03.2009 16:52 |
|
|
Anmeldungsdatum: 30.01.2009
Beiträge: 3.551
|
Ja, aber in ihm sind alle BBCodes nacheinander ersetzt worden.
|
 |
|
| |
|
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.
________________________________________ Stereomix • Bootreihenfolge ändern • PC beschleunigen
|
 |
|
| |
|
Black-Baron
|
| Titel: BBCodes für eigene Forum |
26.03.2009 15:17 |
|
|
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]
|
 |
|
| |
|
Windows Se7en
|
| Titel: BBCodes für eigene Forum |
28.03.2009 17:10 |
|
|
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]
|
 |
|
| |
|
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
Natürlich muss es so sein:
$text = preg_replace("#\[b\](.*?)\[/b\]#si", "<b>$1</b>", $text);
[Zuletzt bearbeitet: 28.03.2009 17:30]
________________________________________ Stereomix • Bootreihenfolge ändern • PC beschleunigen
|
 |
|
| |
|
Windows Se7en
|
| Titel: BBCodes für eigene Forum |
28.03.2009 17:33 |
|
|
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]
|
 |
|
| |
|
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]
________________________________________ Stereomix • Bootreihenfolge ändern • PC beschleunigen
|
 |
|
| |
|
Windows Se7en
|
| Titel: BBCodes für eigene Forum |
28.03.2009 17:54 |
|
|
Anmeldungsdatum: 26.09.2008
Beiträge: 3.895
|
Da muss irgendwo ein Fehler sein
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
[Zuletzt bearbeitet: 28.03.2009 17:55]
|
 |
|
| |
|
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
$text = preg_replace("#\[img\](.*?)\[/img\]#", "<img src=\"$1\" />", $text);
Anführungszeichen vergessen. Fataler Fehler
________________________________________ Stereomix • Bootreihenfolge ändern • PC beschleunigen
|
 |
|
| |
|
Windows Se7en
|
| Titel: BBCodes für eigene Forum |
28.03.2009 18:01 |
|
|
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);
|
 |
|
| |
|
|
|
|