Post von extern erstellen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Hyperion
Mitglied
Beiträge: 13
Registriert: 02.09.2009 07:47

Post von extern erstellen

Beitrag 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
Benutzeravatar
Frank1604
Ehemaliges Teammitglied
Beiträge: 2106
Registriert: 07.11.2007 09:25
Wohnort: Einhausen
Kontaktdaten:

Re: Post von extern erstellen

Beitrag von Frank1604 »

Es gab doch mal ne Bridge vom Joomla zu phpbb3. Rokbridge hieß die glaub ich...
Gruß, Frank
Meine Meinung steht fest. Bitte verwirrt mich nicht mit Tatsachen!
Hyperion
Mitglied
Beiträge: 13
Registriert: 02.09.2009 07:47

Re: Post von extern erstellen

Beitrag 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.....
Benutzeravatar
Frank1604
Ehemaliges Teammitglied
Beiträge: 2106
Registriert: 07.11.2007 09:25
Wohnort: Einhausen
Kontaktdaten:

Re: Post von extern erstellen

Beitrag 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.
Gruß, Frank
Meine Meinung steht fest. Bitte verwirrt mich nicht mit Tatsachen!
Hyperion
Mitglied
Beiträge: 13
Registriert: 02.09.2009 07:47

Re: Post von extern erstellen

Beitrag 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?
Benutzeravatar
Frank1604
Ehemaliges Teammitglied
Beiträge: 2106
Registriert: 07.11.2007 09:25
Wohnort: Einhausen
Kontaktdaten:

Re: Post von extern erstellen

Beitrag 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
Gruß, Frank
Meine Meinung steht fest. Bitte verwirrt mich nicht mit Tatsachen!
Hyperion
Mitglied
Beiträge: 13
Registriert: 02.09.2009 07:47

Re: Post von extern erstellen

Beitrag 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 :D Oder steh ich aufm Schlauch?
Benutzeravatar
Frank1604
Ehemaliges Teammitglied
Beiträge: 2106
Registriert: 07.11.2007 09:25
Wohnort: Einhausen
Kontaktdaten:

Re: Post von extern erstellen

Beitrag 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); 
Gruß, Frank
Meine Meinung steht fest. Bitte verwirrt mich nicht mit Tatsachen!
Hyperion
Mitglied
Beiträge: 13
Registriert: 02.09.2009 07:47

Re: Post von extern erstellen

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


Danke Dir!
Benutzeravatar
Frank1604
Ehemaliges Teammitglied
Beiträge: 2106
Registriert: 07.11.2007 09:25
Wohnort: Einhausen
Kontaktdaten:

Re: Post von extern erstellen

Beitrag 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); 
Gruß, Frank
Meine Meinung steht fest. Bitte verwirrt mich nicht mit Tatsachen!
Antworten

Zurück zu „Coding & Technik“