Post per PHP-Script erstellen / Subject als Parameter

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
SebastianB
Mitglied
Beiträge: 2
Registriert: 07.01.2009 21:29

Post per PHP-Script erstellen / Subject als Parameter

Beitrag von SebastianB »

Hallo zusammen,

ich habe jetzt ne kleine Ewigkeit gessucht und Code-Schnippsel nur zu alten Versionen gefunden.

Ich such eine Möglichkeit per PHP Script ein Thread in einem bestimmte Forum zu erstellen und am besten auch die IDs dafür zu erhalten.

Eine kleine Hilfe auf dem Weg wäre die Möglichkeit den Subject auch als Parameter übergeben zu können. Gibts hierfür schon was?

Board Version ist 3.0.0

Besten Dank für eure Hilfe
Sebastian
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5394
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Re: Post per PHP-Script erstellen / Subject als Parameter

Beitrag von oxpus »

Das wäre der PHP-Code (mal aus einem meiner Scripte), um ein Topic zu erstellen:

Code: Alles auswählen

	$insert_forum_id = 1; // Hier die Foren-ID angeben, in dem man das neue Thema erstellen will.

	$allow_bbcodes	= ($config['allow_bbcode']) ? true : false;
	$allow_urls		= true;
	$allow_smilies	= ($config['allow_smilies']) ? true : false;
	$uid = $bitfield = '';
	$flags = 0;

	generate_text_for_storage($message, $uid, $bitfield, $flags, $allow_bbcodes, $allow_urls, $allow_smilies);
	
	$mode = 'post';
	$subject = $text; // Hier kann der Text für den Titel des Themas rein.
	$username = $user->data['username'];
	$topic_type = POST_NORMAL;
	$poll = array();
	$update_message = false;

	$sql = 'SELECT * FROM ' . FORUMS_TABLE . '
		WHERE forum_id = $insert_forum_id';
	$result = $db->sql_query($sql);
	$post_data = $db->sql_fetchrow($result);
	$db->sql_freeresult($result);

	$message = $body_of_post; // Der Inhalt des Beitrags

	$data = array(
		'topic_title'			=> $subject,
		'topic_first_post_id'	=> 0,
		'topic_last_post_id'	=> 0,
		'topic_time_limit'		=> 0,
		'topic_attachment'		=> 0,
		'post_id'				=> 0,
		'topic_id'				=> 0,
		'forum_id'				=> 13,
		'icon_id'				=> 0,
		'poster_id'				=> $user->data['user_id'],
		'enable_sig'			=> 0,
		'enable_bbcode'			=> 0,
		'enable_smilies'		=> 0,
		'enable_urls'			=> 0,
		'enable_indexing'		=> 0,
		'message_md5'			=> md5($message),
		'post_time'				=> time(),
		'post_checksum'			=> '',
		'post_edit_reason'		=> '',
		'post_edit_user'		=> 0,
		'forum_parents'			=> $post_data['forum_parents'],
		'forum_name'			=> $post_data['forum_name'],
		'notify'				=> false,
		'notify_set'			=> 0,
		'poster_ip'				=> $user->ip,
		'post_edit_locked'		=> 0,
		'bbcode_bitfield'		=> '',
		'bbcode_uid'			=> $uid,
		'message'				=> $message,
		'topic_approved'		=> true,
		'post_approved'			=> true,
	);

	include_once($phpbb_root_path . 'includes/functions_posting.' . $phpEx);
	$return_link = submit_post($mode, $subject, $username, $topic_type, $poll, $data, $update_message);

	$topic_id = (int) $data['topic_id'];
	$post_id = (int) $data['post_id'];
Mit $return_link erhält man den Link zum gerade erstellten Forum.
$topic_id und $post_id sind dann auch wohl selbsterklärend.

Vieleicht gehts auch eleganter oder besser, das Forum selber arbeitet eher mit deiner eigens hierfür angelegten Messenger-Klasse, aber das ist alles Geschmacksache...
Grüße
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
SebastianB
Mitglied
Beiträge: 2
Registriert: 07.01.2009 21:29

Re: Post per PHP-Script erstellen / Subject als Parameter

Beitrag von SebastianB »

Hallo Oxpus,

besten Dank für deine Hilfe!

Ich habe es mittlerweile geschafft die passenden Includes zu finden und die meisten Fehler dich ich noch hatte zu beheben. Nur habe ich, so glaube ich, jetzt ein Problem mit dem usernamen.

Folgendes zur Konstellation:
www
www/drupal6
www/phpbb3
www/statische Seite

drupal 6 und phpbb3 mit bridge installiert, also gemeinsame userbasis mit drupal als Master -> keine separate Ameldung am Forum erforderlich. Aus Drupal ruft der User eine statische, aus .htms bestehende Homepage auf. Auf jeder von diesen ist ein Link, welcher mir mein PHP-File im /phpbb3 Ordner aufruft. Mein Skript soll jetzt was aus der .htm auslesen uns ins Forum schreiben. Und da waren Sie wieder, meine Probleme:
Fehlermeldungen:

Code: Alles auswählen

SQL ERROR [ mysql4 ]

Column 'topic_first_poster_name' cannot be null [1048]

An sql error occurred while fetching this page. Please contact an administrator if this problem persists.
Vermute mir fehlt was bei

Code: Alles auswählen

$username = $user->data['username'];
Wenn ich $username manuell zum Testen befülle bekomme ich folgende Fehlermeldung:

Code: Alles auswählen

SQL ERROR [ mysql4 ]

Column 'topic_first_poster_colour' cannot be null [1048]

An sql error occurred while fetching this page. Please contact an administrator if this problem persists.
Mein bescheidener Schluß, mir fehlt was mit dieser User-Klasse, aber was und wie mach ichs?

Besten Dank für deine Hilfe und ich hoffe das ganze ist einigermaßen verständlich, bin noch ziemlich am Anfang mit phpbb3 und php!

Gruß
Sebastian
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: Post per PHP-Script erstellen / Subject als Parameter

Beitrag von Dr.Death »

Hallo,

die fehlt die komplette $user Initialisierung. Das $user Objekt ist leer.

Siehe dazu auch:
http://wiki.phpbb.com/Deutsch:Vorlage_f ... ene_Seiten
http://wiki.phpbb.com/Parsing_text
JoergL1979
Mitglied
Beiträge: 1
Registriert: 21.09.2009 15:13

Re: Post per PHP-Script erstellen / Subject als Parameter

Beitrag von JoergL1979 »

Hallo Zusammen,
Dieser Thread ansich hat mir schon sehr weitergeholfen...
Ich kann nun ohne Probleme Posts im Forum per Skript erstellen... Soweit so gut..

Aber eine Frage bzw. Problem hätte ich da noch:
Ich würde aber auch gerne beim Posten Dateien mit hochladen und im Post darstellen.

Über einen Stoss in die richtige Richtung bzw. eine kleines Code-Beispiel wäre ich dankbar

Gruß und Danke
Jörg
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“