Seite 1 von 1

BBCodes für eigenen Hack

Verfasst: 25.02.2007 20:25
von Sanchez17
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

Verfasst: 25.02.2007 20:39
von gn#36
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

Code: Alles auswählen

$bbcode_uid = ($bbcode_on) ? make_bbcode_uid() : '';
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.

Verfasst: 25.02.2007 20:57
von Sanchez17
Hi,

vielen Dank.

Ich werde dies mal versuchen, und mich dann melden. :P

hasta luego,
Miguel

Verfasst: 09.05.2007 14:19
von Sanchez17
Hola....

gut, die Antwort kommt ein bisschen spät :roll: :P

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]
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 :P

Code: Alles auswählen

			$message = preg_replace('/\:(([a-z0-9]:)?)' . $post_info['bbcode_uid'] . '/s', '', $message);