News post Mod (Probleme beim programmieren)

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
TheSunToucher
Mitglied
Beiträge: 14
Registriert: 17.11.2002 14:09

News post Mod (Probleme beim programmieren)

Beitrag 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
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Re: News post Mod (Probleme beim programmieren)

Beitrag 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.:

Code: Alles auswählen

define('IN_PHPBB', true);
1.: müsste ich nachschauen.

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

So, nun zu 1.:
schau mal in die viewtopic.php:

Code: Alles auswählen

include($phpbb_root_path . 'includes/bbcode.'.$phpEx);

Code: Alles auswählen

	$message = $postrow[$i]['post_text'];
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
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
TheSunToucher
Mitglied
Beiträge: 14
Registriert: 17.11.2002 14:09

Re: News post Mod (Probleme beim programmieren)

Beitrag von TheSunToucher »

PhilippK hat geschrieben: von phpBB gibt's da eine entsprechende Routinensammlung. Siehe dazu http://www.phpbb.com/phpBB/viewtopic.php?t=137321 (in Englisch)
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 :-\
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Die bbcode_uid dient vor allem der Sicherheit und der sicheren Identifikation der BBCode-Tags.

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
TheSunToucher
Mitglied
Beiträge: 14
Registriert: 17.11.2002 14:09

Beitrag 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...
Antworten

Zurück zu „phpBB 2.0: Mod Support“