Seite 1 von 1
BBcode für post_text extern nutzen
Verfasst: 04.09.2007 14:44
von spike2109
Hi,
ich schreibe ein kleines Newsmodul selber, bei dem einfach ein bestimmtes Forum abgegriffen wird und dort alle Startpostings ausgelesen werden. Die SQL Abfrage war kein Problem, nur möchte ich nun den Inhalt genauso wie im Forum formatiert haben, sprich durch den bbcode parser jagen und als HTML ausgeben.
Gibt es hier eine sehr einfache Möglichkeit, z.B. indem ich den post_text durch eine bestimmte funktion jage? Wäre natürlich super wenn die eigen angelegten BBcodes hier auch funktionieren würden. Ich habe hier leider noch nicht so den Durchblick, für einen Tipp wäre ich sehr dankbar.
Mein Script ist eine externe PHP Datei und benutzt keinerlei phpBB3-includes.
LG
Andreas
Verfasst: 04.09.2007 16:29
von nickvergessen
Also wenn du bereit bist phpBB3 Teile zu includieren würde das ganze ziemlich vereinfacht ablaufen, außerdem hätte ich dafür schon die Datei fertig, hab mir das nämlich auch gebaut.
Verfasst: 04.09.2007 16:41
von spike2109
Wenn du mir sagen kannst was ich includieren muss und welche Funktion ich dann dafür nutzen muss ... wäre das perfekt, super, genial
Includieren ist kein Problem, läuft auf dem selben Server.
Verfasst: 04.09.2007 16:48
von nickvergessen
Code: Alles auswählen
define('IN_PHPBB', true);
$phpbb_root_path = '../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
include($phpbb_root_path . 'includes/bbcode.' . $phpEx);
$message = $row['post_text'];
//premod the text
$bbcode_bitfield = '';
$bbcode_bitfield = $bbcode_bitfield | base64_decode($row['bbcode_bitfield']);
if ($bbcode_bitfield !== '')
{
$bbcode = new bbcode(base64_encode($bbcode_bitfield));
}
$message = censor_text($message);
if ($row['bbcode_bitfield'])
{
$bbcode->bbcode_second_pass($message, $row['bbcode_uid'], $row['bbcode_bitfield']);
}
$message = str_replace("\n", '<br />', $message);
$message = smiley_text($message);
$row['post_text'] = $message;
Verfasst: 05.09.2007 10:28
von spike2109
Wenn ich meinen post_text da durch jage kommt nur die Fehlermeldung:
Code: Alles auswählen
General Error
The file ../phpBB3/styles//template/bbcode.html is missing.
P.S.
Obige Meldung erhalte ich, wenn ich mein altes Script umschreibe.
Wenn ich alles überflüssige weglasse sprich nur die DB Abfrage mache und den post_text aufbereiten möchte erhalte ich die Meldung
Code: Alles auswählen
Fatal error: Call to a member function sql_close() on a non-object in C:\Programme\xampp\htdocs\phpBB3\includes\functions.php on line 4330
Nutzt du auch die phpBB3 DB-Klasse zum connect etc? Das db Objekt scheint hier ja nicht zu existieren, aber wird von den includierten Dateien genutzt.
Verfasst: 05.09.2007 13:27
von nickvergessen
Also mein Abschnitt dafür sieht exakt so aus:
Code: Alles auswählen
$sql = 'SELECT br.*, bp.*
FROM ' . BUG_REPORTS_TABLE . " br
LEFT JOIN " . BUG_POSTS_TABLE . " bp
ON bp.bug_post_id = br.bug_repo_post_id
WHERE br.bug_repo_id = " . $bug_id . "
LIMIT 1";
$result = $db->sql_query($sql);
$bug_data = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$message = $bug_data['bug_post'];
//premod the text
$bbcode_bitfield = '';
$bbcode_bitfield = $bbcode_bitfield | base64_decode($bug_data['bug_post_bbcode_bitfield']);
if ($bbcode_bitfield !== '')
{
$bbcode = new bbcode(base64_encode($bbcode_bitfield));
}
$message = censor_text($message);
if ($bug_data['bug_post_bbcode_bitfield'])
{
$bbcode->bbcode_second_pass($message, $bug_data['bug_post_bbcode_uid'], $bug_data['bug_post_bbcode_bitfield']);
}
$message = str_replace("\n", '<br />', $message);
$message = smiley_text($message);
$bug_text = $message;
Verfasst: 06.09.2007 08:38
von spike2109
Benutzt du Teile des Board Templates? Werden diese in einem der Includes aktiviert?
Ich bekomme jetzt nur noch die Meldung "General Error
The file ../phpBB3/styles//template/bbcode.html is missing."
Verfasst: 06.09.2007 13:32
von nickvergessen
ich includiere overall_header.html und footer