Seite 1 von 1

BBCode auf eigener Seite

Verfasst: 21.11.2012 19:33
von Walter91
Ich versuche gerade BBCode auf eigener Seite auszugeben.
Das Eintragen in die Datenbank funktioniert einwandfrei.

Aus der Dev-Wiki habe ich folgenden Code eingebaut und angepasst:

Code: Alles auswählen

$sql = 'SELECT message, bbcode_uid, bbcode_bitfield, enable_bbcode, enable_smilies, enable_magic_url
    FROM ' . MEINE_TABLE . '
    WHERE id = ' . (int) $id;
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);

$bbcode_options = (($row['enable_bbcode']) ? OPTION_FLAG_BBCODE : 0) +
    (($row['enable_smilies']) ? OPTION_FLAG_SMILIES : 0) + 
    (($row['enable_magic_url']) ? OPTION_FLAG_LINKS : 0);

$template->assign_vars(array(
    'MESSAGE'      => generate_text_for_display($row['message'], $row['bbcode_uid'], $row['bbcode_bitfield'], $bbcode_options),
));


Nur die Ausgabe funktioniert nicht. Anstatt Text und Smilie bekomme ich nur das angezeigt:

Code: Alles auswählen

[b:3q974v2k][size=150:3q974v2k]Testtext[/size:3q974v2k][/b:3q974v2k] :mrgreen:
Kann da jemand weiterhelfen?

Re: BBCode auf eigener Seite

Verfasst: 22.11.2012 19:12
von Miriam
Was hast Du denn so an externen Scripten includiert?

Re: BBCode auf eigener Seite

Verfasst: 22.11.2012 20:38
von Walter91
@Miriam

also das hab ich bis jetzt drin:

Code: Alles auswählen

include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
Ich weiß aber nicht ob noch was fehlt ?

Re: BBCode auf eigener Seite

Verfasst: 29.11.2012 13:35
von Walter91
Keiner eine Idee wie man das lösen könnte?
Habe jetzt mal folgendes probiert:
Postbutton eingebaut, Absenden, das funktioniert !

Nun möchte ich natürlich das die BBCodes dort wo {PREVIEW_MESSAGE} steht, automatisch angezeigt werden.
Kann jemand helfen wie ich das ändern muß?

test.html

Code: Alles auswählen

{PREVIEW_MESSAGE}
<form id="postform" method="post" action="{S_POST_ACTION}" onsubmit="return checkForm(this);">
<fieldset class="submit-buttons">	
<input type="submit" name="preview" class="button1" onclick="document.getElementById('postform').action += '#preview';" />				
</fieldset>
	
<fieldset>					
<textarea name="message" id="message" onselect="storeCaret(this);"> {MESSAGE} </textarea>
</fieldset>
</form>

Re: BBCode auf eigener Seite

Verfasst: 09.12.2012 10:52
von Walter91
Habe das Problem inzwischen mit Hilfe https://wiki.phpbb.com/Tutorial.Parsing_text gelöst.
Das funktioniert einwandfrei. BBCode wird jetzt auf eigener Seite gezeigt :grin:
Für alle die das auch interessiert:

test.php (Auszüge)

Code: Alles auswählen

// das muss rein
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
include($phpbb_root_path . 'includes/bbcode.' . $phpEx);
include($phpbb_root_path . 'includes/message_parser.' . $phpEx);
....

// BBCode 
$sql = 'SELECT message, bbcode_uid, bbcode_bitfield, enable_bbcode, enable_smilies, enable_magic_url
    FROM ' . MEINE_TABLE . '
    WHERE id = ' . (int) $id;
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);

$bbcode_options = (($row['enable_bbcode']) ? OPTION_FLAG_BBCODE : 0) +
    (($row['enable_smilies']) ? OPTION_FLAG_SMILIES : 0) + 
    (($row['enable_magic_url']) ? OPTION_FLAG_LINKS : 0);

$template->assign_vars(array(
    'MESSAGE'      => generate_text_for_display($row['message'], $row['bbcode_uid'], $row['bbcode_bitfield'], $bbcode_options),
));
test.html

Code: Alles auswählen

<!-- IF S_DISPLAY_PREVIEW --><!-- ENDIF -->
{MESSAGE}

Re: BBCode auf eigener Seite

Verfasst: 09.12.2012 12:30
von DetlefT
Walter91 hat geschrieben:test.html

Code: Alles auswählen

<!-- IF S_DISPLAY_PREVIEW --><!-- ENDIF -->
{MESSAGE}
Hallo Walter91,

Danke für die Mitteilung Deiner Lösung. Allerdings dürfte dieser Teil ziemlich sinnfrei sein. Ist es nicht in Wirklichkeit so: :wink:

Code: Alles auswählen

<!-- IF S_DISPLAY_PREVIEW -->{MESSAGE}<!-- ENDIF -->

Re: BBCode auf eigener Seite

Verfasst: 09.12.2012 12:54
von Walter91
@Detleft

Macht Sinn wie du es schreibst aber du wirst es nicht glauben, bei mir läuft das trotzdem.

Code: Alles auswählen

    <!-- IF S_DISPLAY_PREVIEW --><!-- ENDIF -->
    {MESSAGE}

Re: BBCode auf eigener Seite

Verfasst: 09.12.2012 14:00
von Miriam
In Walters Lösung kann das also wegfallen:
<!-- IF S_DISPLAY_PREVIEW --><!-- ENDIF -->