Hola an alle,
mal wieder habe ich eine Frage, und weiß nicht weiter.
Ich entwerfe gerade ein Hack für mein Forum. Dort sollen Benutzer Artikel schreiben können.
Nun möchte ich, das die Benutzer aber nicht auf HTML zurückgreifen müssen (und dürfen) , sondern die BBcodes benutzen.
Ich habe dies hier, als Vorlage benutz: klich mich
Das Artikel schreiben usw. funktioniert bereits. Ich möchte nur wissen, was ich alles noch ergänzen muss, damit BBcodes benutz werden können.
Ich denke mal, die bbcode.php muss includet werden, sowie die Daten aus der posting_body.tpl für die BBcodes.
Was aber noch?Da habe ich leider nichts mehr richtig gefunden....kann mir jemand helfen?
hasta luego,
Miguel
BBCodes für eigenen Hack
- Sanchez17
- Mitglied
- Beiträge: 913
- Registriert: 10.12.2005 22:21
- Wohnort: Moers / Sevilla
- Kontaktdaten:
BBCodes für eigenen Hack
Viva el betís, mi amor
Wir gehn voran, als euer zwölfter Mann, scheiß egal wie weit, ob Sturm oder Schnee, MSV Duisburg oé

Wir gehn voran, als euer zwölfter Mann, scheiß egal wie weit, ob Sturm oder Schnee, MSV Duisburg oé
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Um bbCodes zu nutzen, müssen diese von 2 Funktionen präpariert werden, welche sich beide in der bbcode.php Datei finden. Ich vermute allerdings dass es Sinn macht, wenn du die Artikel gleich durch den Standardprozess jagst, den auch normale Posts gehen. Hierzu benötigst du die functions_post.php und zwar die Funktion prepare_message oder wenn du willst auch sowas wie prepare_post, aber wenn es sich lediglich um einen Text handelt dann reicht auch prepare_message. In dieser Funktion wird mit bbencode_first_pass die Funktion aufgerufen, welche den Text nach bbCodes durchsucht und die korrekt verwendeten markiert. Hierzu wird ein bbcode_uid benötigt, welches die Funktion erhalten muss was mittels
generiert werden kann. Wichtig ist, dass dieser Code auch in der Datenbank landet, denn er stellt die Markierung der korrekten Tags dar.
Der zurückgelieferte Text sollte für die Eintragung in die Datenbank fertig sein.
Bei der Darstellung benötigst du dann bbencode_second_pass() um den Text tatsächlich darzustellen.
Eigentlich also nicht besonders schwierig.
Erst mit make_bbcode_uid eine uid machen, dann den Text durch die functions_post.php Funktion "prepare_message" jagen, dann speichern und mit "bbencode_second_pass" in der bbcode.php wieder ausgeben.
Code: Alles auswählen
$bbcode_uid = ($bbcode_on) ? make_bbcode_uid() : '';
Der zurückgelieferte Text sollte für die Eintragung in die Datenbank fertig sein.
Bei der Darstellung benötigst du dann bbencode_second_pass() um den Text tatsächlich darzustellen.
Eigentlich also nicht besonders schwierig.
Erst mit make_bbcode_uid eine uid machen, dann den Text durch die functions_post.php Funktion "prepare_message" jagen, dann speichern und mit "bbencode_second_pass" in der bbcode.php wieder ausgeben.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
- Sanchez17
- Mitglied
- Beiträge: 913
- Registriert: 10.12.2005 22:21
- Wohnort: Moers / Sevilla
- Kontaktdaten:
Hola....
gut, die Antwort kommt ein bisschen spät
Hat aber super geklappt. Nur vor ein Problem stehe ich:
Wenn ich einen Artikel editieren will, wird der Code leider nicht korrekt angezeigt....
Statt das gewöhnliche:
Bekomm ich ohne diesen Code...
$text = bbencode_second_pass($text, $bbcode_uid);
.. den BBocde mit der UID angezeigt. Wenn ich den aber einfüge, kommt der reine HTML Code.
Ich denke, irgendeinen Funktion sorgt dafür, das die UID sichtlich verschwindet. Aber welche? Hab keinen gefunden.
Kann mir jmd. helfen?
hasta luego,
Miguel
Edit:
Habs nun doch gefunden
gut, die Antwort kommt ein bisschen spät


Hat aber super geklappt. Nur vor ein Problem stehe ich:
Wenn ich einen Artikel editieren will, wird der Code leider nicht korrekt angezeigt....
Statt das gewöhnliche:
Code: Alles auswählen
[b] text [/b]
$text = bbencode_second_pass($text, $bbcode_uid);
.. den BBocde mit der UID angezeigt. Wenn ich den aber einfüge, kommt der reine HTML Code.
Ich denke, irgendeinen Funktion sorgt dafür, das die UID sichtlich verschwindet. Aber welche? Hab keinen gefunden.
Kann mir jmd. helfen?
hasta luego,
Miguel
Edit:
Habs nun doch gefunden

Code: Alles auswählen
$message = preg_replace('/\:(([a-z0-9]:)?)' . $post_info['bbcode_uid'] . '/s', '', $message);
Viva el betís, mi amor
Wir gehn voran, als euer zwölfter Mann, scheiß egal wie weit, ob Sturm oder Schnee, MSV Duisburg oé

Wir gehn voran, als euer zwölfter Mann, scheiß egal wie weit, ob Sturm oder Schnee, MSV Duisburg oé