Seite 1 von 1

Post Text Ausgabe ohne Formatierungsangaben

Verfasst: 13.01.2015 21:30
von Jonny Sniper
Liebe phpBB Helfer,

ich bräuchte einen Denkanstoß oder vielleicht hat das ja schon mal jemand gemacht oder gebraucht und passenden Code parat.
(Ich bin eher PHP laie, ich kann mir Sachen grob zusammenreimen auch Dinge wie str_replace sind mir ein Betriff, vielleicht auch eine Lösung, nur hat die Anwendung irgendwie noch nicht geklappt.)

Undzwar möchte ich den Text der in der viewtopic.php über die Templatevariable {postrow.MESSAGE} ausgeben wird, als reinen Text.
Was ich schon weiß ist, dass BB-Codes erst in der viewtopic geparsed werden damit sie zu HTML werden, diese brauche ich ja nicht, ich will wirklich nur den reinen Text haben, ohne Firlefranz.

Wenn ich mir über die Templatevariablen in der viewtopic.php eine neue erstelle Beispiel:

Code: Alles auswählen

PLAIN_TEXT => $row['post_text'], 
bekomme ich eine Ausgabe die zwar unformatiert ist, allerdings stehen dort Dinge drin wie [b:1lc9ogeg]Text[/b:1lc9ogeg] vom Tag oder [img:1lc9ogeg]BILD URL[/img:1lc9ogeg] vom [img] Tag.
Ich brauch also eine Lösung die mir diese irgendwie entfernen kann, bei den [url] Tags und [img] Tag brauche ich nicht mal den Inhalt eigentlich, also die Links.

Ich bedanke mich schon mal für jede Hilfe!

Re: Post Text Ausgabe ohne Formatierungsangaben

Verfasst: 13.01.2015 23:18
von HabNurNeFrage
Hi,

versuchs mal damit:

Code: Alles auswählen

PLAIN_TEXT => preg_replace('#\[\/?(?:b|i|u|url|quote|code|img|color|size)*?.*?\]#is', '', $row['post_text']), 
Weitere bbCodes, die Du entfernen willst, einfach in die Liste nach size wie folgt eintragen, z.B. |flash


Oder eine etwas einfachere RegEx, die eventuell aber bei normalen Textteile in eckigen Klammern an ihre grenzen stößt:

Code: Alles auswählen

PLAIN_TEXT => preg_replace('#\[([^\]]+?)(=[^\]]+?)?\](.+?)\[/\1\]#is', '', $row['post_text']), 
LG

PS: Habe beide nicht getestet

Re: Post Text Ausgabe ohne Formatierungsangaben

Verfasst: 13.01.2015 23:58
von Elsensee
Oder:

Öffne: viewtopic.php
Finde:

Code: Alles auswählen

    $post_row = array( 
Davor einfügen:

Code: Alles auswählen

$plain_text = $row['post_text'];
strip_bbcode($plain_text, $row['bbcode_uid']);
Und dann an der Stelle im Array einfach:

Code: Alles auswählen

'PLAIN_TEXT'    => $plain_text,

Re: Post Text Ausgabe ohne Formatierungsangaben

Verfasst: 14.01.2015 00:14
von Jonny Sniper
Das von HabNurNeFrage ist schon echt super, würde auch schon eigentlich reichen.

Ich würde mir allerdings noch gerne das von dir (Elsensee) anschauen, allerdings finde ich die Codezeile in meiner viewtopic.php nicht:

Code: Alles auswählen

$post_row = array(

Re: Post Text Ausgabe ohne Formatierungsangaben

Verfasst: 14.01.2015 00:40
von HabNurNeFrage
Hi.

Ups, da hatte ich doch glatt vergessen, dass phpBB eine Funktion dafür vorhält :oops:
Die zu nutzen ist um einiges besser als meine Lösung.

Geht auch einzeilig:

Code: Alles auswählen

'PLAIN_TEXT'    => strip_bbcode($row['post_text'], $row['bbcode_uid']),
LG

Re: Post Text Ausgabe ohne Formatierungsangaben

Verfasst: 14.01.2015 00:50
von Elsensee
Jonny Sniper hat geschrieben:Ich würde mir allerdings noch gerne das von dir (Elsensee) anschauen, allerdings finde ich die Codezeile in meiner viewtopic.php nicht:

Code: Alles auswählen

$post_row = array( 
Sorry, ich meinte ja auch

Code: Alles auswählen

$postrow = array( 
:oops: (Ich war noch im 3.1 Code :oops: :oops: )
HabNurNeFrage hat geschrieben:Geht auch einzeilig:

Code: Alles auswählen

'PLAIN_TEXT'    => strip_bbcode($row['post_text'], $row['bbcode_uid']), 
Na eben nicht, weil der Text als Referenz übergeben wird (d.h. der Parameter wird geändert, daher der Umweg von mir) und die Funktion - warum auch immer - keinen Rückgabewert besitzt. :wink:

Re: Post Text Ausgabe ohne Formatierungsangaben

Verfasst: 14.01.2015 01:01
von Jonny Sniper
Wenn ich das so mache, gibt er einfach gar nichts aus :lol:

Re: Post Text Ausgabe ohne Formatierungsangaben

Verfasst: 17.01.2015 22:29
von Jonny Sniper
Jetzt habe ich noch das Problem, dass, wenn eine url eingefügt wird, automatisch ein Link gebaut wird. Wie kann ich das unterbinden?

Re: Post Text Ausgabe ohne Formatierungsangaben

Verfasst: 28.01.2015 17:53
von gn#36
Was hast du denn nun überhaupt gemacht?