Seite 1 von 2
Post von extern erstellen
Verfasst: 02.09.2009 07:52
von Hyperion
Hallo zusammen,
ich habe hier im Forum schon ein Thread zu dem Thema gefunden, da waren jedoch keine Includes oder so dabei und war nicht brauchbar.
Mein Problem:
Ich von einer belibigen PHP Seite (Komponente in Joomla) Posts in einem PHPBB3 Forum erstellen.
Lösungsansätze?
PHPBB3 Framework einbinden und Funktionen vom PHPBB3 nutzen? -> Wie?
Direkt in die SQL Datenbank in den nötigen Tabellen reinschreiben? -> Wie? (Funktionieren dann Textfarben, Fett usw.... -> Wie prepariere ich die Message?)
Ich danke euch shcon jezt für eure Hilfe!
Gruss
Re: Post von extern erstellen
Verfasst: 02.09.2009 08:24
von Frank1604
Es gab doch mal ne Bridge vom Joomla zu phpbb3. Rokbridge hieß die glaub ich...
Re: Post von extern erstellen
Verfasst: 02.09.2009 08:27
von Hyperion
Frank1604 hat geschrieben:Es gab doch mal ne Bridge vom Joomla zu phpbb3. Rokbridge hieß die glaub ich...
Die ist für den Login zuständig o.O Ich will Threads erstellen.....
Re: Post von extern erstellen
Verfasst: 02.09.2009 08:34
von Frank1604
Dann musst du dir wohl eine kleine Datei erstellen.
Dazu solltest du dir die Funktion submit_post() mal anschauen, die erklärt sich eigentlich von selbst.
Re: Post von extern erstellen
Verfasst: 02.09.2009 08:38
von Hyperion
Frank1604 hat geschrieben:Dann musst du dir wohl eine kleine Datei erstellen.
Dazu solltest du dir die Funktion submit_post() mal anschauen, die erklärt sich eigentlich von selbst.
Ich hab nicht viel Probleme mit Funktionen verstehen und so
Nur wie , und vorallem was bind ich genau ein um diese Funktionen zu nutzen? Zusätzlich hab ich in den verschiedensten scripten gesehen , dass Funktionen wie prepare_message() und so aufgerufen werden. Was ist da alles tatsächlich nötig?
Re: Post von extern erstellen
Verfasst: 02.09.2009 08:42
von Frank1604
Also theoretisch reicht die submit_post()
wenn du allerdings noch bbcodes und smilies haben willst, dann gibt es da noch die Klasse parse_message().
Code: Alles auswählen
$message_parser = new parse_message();
$message_parser->message = &$message;
$message_parser->parse(1, 0, 1);
//build post data array
$data = array(
'topic_title' => $title,
'post_id' => 0,
'topic_id' => 0,
'forum_id' => $forum_id,
'icon_id' => 0,
'poster_id' => $user_post_id,
'enable_sig' => true,
'enable_bbcode' => true,
'enable_smilies' => true,
'enable_urls' => true,
'enable_indexing' => true,
'message_md5' => (string) md5($message),
'post_time' => 0,
'forum_name' => '',
'notify' => false,
'notify_set' => false,
'poster_ip' => $user->ip,
'post_edit_locked' => true,
'bbcode_bitfield' => $message_parser->bbcode_bitfield,
'bbcode_uid' => $message_parser->bbcode_uid,
'message' => $message_parser->message,
'attachment_data' => $attachment_data,
);
// and go..
$url = submit_post('post', $title, $user->data['username'], POST_NORMAL, $poll, $data);
Das müsste schon fast laufen
Re: Post von extern erstellen
Verfasst: 02.09.2009 08:49
von Hyperion
Super perfekt.
Nun weiss ich aber doch immernoch nicht was ich alles includen muss damit Dein Script läuft

Das ist ja mein grundlegendes Problem

Oder steh ich aufm Schlauch?
Re: Post von extern erstellen
Verfasst: 02.09.2009 08:52
von Frank1604
So langsam glaub ich , ich kann dir gleich das ganze script schreiben, nen bisi mal selbst suchen wäre auch net schlecht
Code: Alles auswählen
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_posting.' . $phpEx);
include($phpbb_root_path . 'includes/message_parser.' . $phpEx);
Re: Post von extern erstellen
Verfasst: 02.09.2009 08:55
von Hyperion
Ich Danke Dir vielmals für Deine Geduld
Ich werde das jetzt umsetzen, den Rest krieg ich selber gebacken

Wie gesagt, ich hat eigentlich nur Probleme wegen den Include Files

Auf die 2 Funktionen inlcudes wär ich ja noch gekommen, aber dass ich common inlcude muss? Ne da wär ich nich drauf gekommen
Danke Dir!
Re: Post von extern erstellen
Verfasst: 02.09.2009 09:02
von Frank1604
common muß immer includet werden.
Code: Alles auswählen
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$user->session_begin();
$auth->acl($user->data);
sowas auch nicht vergessen.
Allerdings wirst du wohl auch noch an den Berechtigungen rumspielen müssen, denn das Script ist kein User.
Code: Alles auswählen
//schnapp dir die BErechtigungen irgendeines Users ;) => $user_post_id (Id des users der posten soll)
$sql = 'SELECT *
FROM ' . USERS_TABLE . '
WHERE user_id = ' . $user_post_id;
$result = $db->sql_query($sql);
if (!$result)
// user_id not exists, abfangen!
$user_copy = $user->data;
$user->data = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$auth->acl($user->data);
So, und schon hat dein Script die Berechtigungen des Users übernommen
Aber nicht vergessen nach der submit_post() die Berechtigungen zurück zu ändern.
Code: Alles auswählen
// restore user->data
$user->data = $user_copy ;
$auth->acl($user->data);