Seite 1 von 1
News post Mod (Probleme beim programmieren)
Verfasst: 23.10.2003 11:30
von TheSunToucher
Hi phpBB-Community!
Ich wollte mir einen kleinen Mod schrieben, nix wildes nur eine PHP-Seite, die die Beiträge eines bestimmten Topics als News (auf zB meiner Startseite) ausgibt. Auf das Topic hab nur ich mir Zugriff gegeben und könnte dann so, unkompliziert News posten...
Jetzt mein Problem:
Ich greife selbst auf meine DB zu und hol mir die Daten aus "phpBB_posts" und "phpBB_posts_text" diese lass ich mir auf der Seite ausgeben, das funktioniert auch ohne Probleme.
Jetzt muß ich den Text allerdings noch formatieren, also den bbCode auflösen usw. dazu wollte ich natürlich die phpBB-Funktionen nutzen!
Welche Datein muss ich includen?
Wie verhindere ich, das php denk "Hacking attempt"
Soll ich vieleicht nicht selbst eine Connection zur DB auf machen, sondern
dazu auch irgendeine Methode von phpBB nutzen?
Vielen Dank für eure Tipps
TheSunToucher
Re: News post Mod (Probleme beim programmieren)
Verfasst: 23.10.2003 11:45
von PhilippK
TheSunToucher hat geschrieben:1. Welche Datein muss ich includen?
2. Wie verhindere ich, das php denk "Hacking attempt"
3. Soll ich vieleicht nicht selbst eine Connection zur DB auf machen, sondern
dazu auch irgendeine Methode von phpBB nutzen?
Fangen wir von hinten an:
3.: von phpBB gibt's da eine entsprechende Routinensammlung. Siehe dazu
http://www.phpbb.com/phpBB/viewtopic.php?t=137321 (in Englisch)
2.:
1.: müsste ich nachschauen.
Gruß, Philipp
Verfasst: 23.10.2003 12:07
von PhilippK
So, nun zu 1.:
schau mal in die viewtopic.php:
Code: Alles auswählen
include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
Die Variable $message wird dann noch etwas weiterverarbeitet, u.a. durch die Funktion bbencode_second_pass(). Schau's dir am besten selbst mal an
Gruß, Philipp
Re: News post Mod (Probleme beim programmieren)
Verfasst: 23.10.2003 12:11
von TheSunToucher
Aha! cool, das hilft mir schonmal weiter, danke!
Gut, dann hab ich den Datenbankzugriff jetzt in "schön", aber den BBCode will er mir immernoch nicht encoden.
Ich bekomme die Fehlermeldung "
Fatal error: Call to a member function on a non-object..."
wenn ich die Funktion "
$msg = bbencode_second_pass($msg, $bbcode_uid);" aufrufe.
Wozu ist den diese "
bbcode_uid" die selektiere ich aus "
posts_text", aber wozu die ist weiß ich nicht :-\
Verfasst: 23.10.2003 12:20
von PhilippK
Die bbcode_uid dient vor allem der Sicherheit und der sicheren Identifikation der BBCode-Tags.
Gruß, Philipp
Verfasst: 23.10.2003 12:52
von TheSunToucher
So, hab das Problem gefunden, es müssen auch die userdaten initalisiert werden, also so:
Code: Alles auswählen
// Start session management
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
oder wenn man die nicht braucht, muss man wenigstens die bbcode-templatefile mit angeben:
Code: Alles auswählen
$template_path = 'templates/' ;
$template_name = 'subTrail' ;
$template = new Template($phpbb_root_path . $template_path . $template_name);
Der Anfang der Page muss dann ungefähr so aussehen:
Code: Alles auswählen
<?php
define('IN_PHPBB', true);
$phpbb_root_path = "./phpBB/";
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
$sql = "SELECT * FROM blabla;";
$result = $db->sql_query($sql);
if ( !$result ){
message_die(GENERAL_ERROR, 'Error retrieving data', '', __LINE__, __FILE__, $sql);
}
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
?>
dann kann man bei der Ausgabe der Daten auch die funktion benutzen:
Code: Alles auswählen
while( $row = $db->sql_fetchrow($result) ){
$msg = $row['post_text'];
$bbcode_uid = $row['bbcode_uid'];
$msg = bbencode_second_pass($msg, $bbcode_uid);
...
Vieleicht hilft's ja irgendwem...