gibt es ne einfache möglichkeit mit einem php script ein topic im phpbb zu erstellen?
ich möchte die comments zu den news auf meiner seite ins forum packen und muss dazu ja automatisch erstmal ein neues topic erstellen.
ich hab zwar direkt zugriff auf die datenbank und könnte es da reinschreiben, blos ist es ein wenig aufwendig, da ich erst die nächste topic id rausfinden müsste und etc.
die function submit_post in functions_post.php kapier ich leider nicht ganz.
sorry wenn die antwort dazu schon ürgendwo im forum steht, hab über die such function nix gefunden.
posts erstellen von aussen
Ich würde eine Kopie von posting.php erstellen und den Code, wo die übergebenen Variablen aufbereitet werden sowie überprüft wird ob der angemeldete Benutzer überhaupt posten darf durch deinen eigenen ersetzen. Wichtig ist daß du:
- $HTTP_POST_VARS füllst (guck dir ggf. im Quellcode einer generierten posting.php im Browser an, welche Variablen übergeben werden)
- $userdata füllst (einfach 'SELECT * FROM <userstabelle> WHERE user_id=<gewünschteuserid>' ausführen und mit mysql_fetch_array auslesen). Überschreiben musst du das was bei '//Start session management' steht
- Die Ausgabe unterdrückst (Oder anpasst oder was du willst)
Ich habs so gemacht:
Code: Alles auswählen
/***************************************************************************
* post.php by Legacy of LEO (leo@et-clan.de)
***************************************************************************/
if(!$subject or !$message) { echo "ERROR: no Subject or message!"; die; }
define('IN_PHPBB', true);
$phpbb_root_path='./';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
include($phpbb_root_path . 'includes/functions_post.'.$phpEx);
// CONFIG FOR NEW TREAD
$urlbase='http://www.et-clan.de/phpbb2/'; //Link to PHPBB2
$forum_id=8; //Forum
$bbcode_on=1; //BBCODE ON=1 OFF=0
$html_on=1; //HTML ON=1 OFF=0
$smilies_on=0; //SMILIES ON=1 OFF=0
$topic_type='0'; //TOPIC TYPE NORMAL=0 IMPORTEND=1 ANNOUNCE=2
$attach_sig='0'; // Signum attache ON=1 OFF=0
$mode='newtopic'; // should not be changed!
// CONFIG END
// Start session management
$userdata = session_pagestart($user_ip, PAGE_POSTING);
init_userprefs($userdata);
$username = ( $userdata['session_logged_in'] ) ? $userdata['username'] : '';
// End session management
prepare_post($mode, $post_data, $bbcode_on, $html_on, $smilies_on, $error_msg, $username, $bbcode_uid, $subject, $message, $poll_title, $poll_options, $poll_length);
submit_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_id, $topic_type, $bbcode_on, $html_on, $smilies_on, $attach_sig, $bbcode_uid, str_replace("\'", "''", $username), str_replace("\'", "''", $subject), str_replace("\'", "''", $message), str_replace("\'", "''", $poll_title), $poll_options, $poll_length);
update_post_stats($mode, $post_data, $forum_id, $topic_id, $post_id, $user_id);
echo $urlbase.'viewtopic.php?t='.$topic_id;
alles was du jetz zutuhen hast ist das ding mit:
post.php?subject=(titel des treads)&message=(inhalt des treads)
aufzurufen.