MyBB.de Forum

Normale Version: Eigenes Script mit myBB verbinden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo,

ich hätte mal eine kompliziertere Frage.
Und zwar, möchte ich ein Script schreiben, über das ein User ein Formular abschickt. Die Daten davon sollen dann im Forum gepostet werden.

In welche mySQL Tabelle muss ich die Daten einspeichern, dass es nachher so aussieht, als hätte ich einen Post erstellt und was muss ich dabei noch beachten?

Vielen Dank für eure Hilfe

Stalker
Vielen dank für deine Antwort Dragon.

Wo muss diese Datei dann genau liegen?
Mein Forum liegt in /forum/
Das Formular soll/muss in /joinus/ liegen.

Muss ich den Code dann folgendermaßen anpassen?
PHP-Code:
require_once "../forum/".MYBB_ROOT."inc/datahandlers/post.php"//<--
$posthandler = new PostDataHandler("insert");
$posthandler->action "thread";
$posthandler->admin_override true// Optional, ich habe es lieber drin ^^

$uid $mybb->user[uid];
$username $mybb->user[username];
$fid 0;  // Forum in das der Thread gepostet werden soll
$message $db->escape_string($_POST[message]);
$subject "Formular von ".$username;

$new_thread = array(
                
"fid" => $fid,
                
"subject" => $subject,
                
"uid" => $uid,
                
"username" => $username,
                
"message" => $message,
                
"ipaddress" => get_ip(),
        );

$posthandler->set_data($new_thread);
$validate $posthandler->validate_thread();
if (
$validate)
{
        
$tinfo $posthandler->insert_thread();
        
$tid $tinfo[tid];
        
redirect("showthread.php?tid=$tid");
}
else
{
        
error("Es ist ein Fehler w&auml;hrend der Threaderstellung aufgetreten");

PS: Das Thema soll von nicht von dem User, der das Formular abschickt erstellt werden, sondern von einem "Joinus Bot"
Das funktioniert nur, wenn du die global.php einbindest. (Dazu gibt es diverse Themen in diesem Forum.)
Heißt das dann, dass mein Code so aussähe?

PHP-Code:
include ('../forum/global.php'); 
... und dann der Rest?

Ich habe zwar gesucht (Begriff "global.php") aber nur drei auf mich unpassende Threads gefunden.
Eigentlich so:
PHP-Code:
chmod('../forum/');
include (
'./global.php'); 
Aber sonst richtig.
Müsste das nicht
PHP-Code:
chdir('../forum/');
include (
'./global.php'); 
heißen?
Ah, okay.

Mal ne Frage zu den Variablen.
PHP-Code:
$uid $mybb->user[uid]; // wo wird $mybb->user[uid] definiert? Und wie kann ich, wenn die Beiträge immer auf eine Person laufen sollen, die uid rausfinden? 
$username $mybb->user[username]; // reicht das, wenn ich das so ersetze: $username = "Test User"; ?
$fid 0;  // Forum in das der Thread gepostet werden soll
$message $db->escape_string($_POST[message]); // das ersetze ich dann durch meine Message? Also: $message = "Test"; ?
$subject "Formular von ".$username// dürfte mir auch klar sein ;) 
$mybb->user wird durch das Einbinden der global.php definiert und beinhaltet die Daten des derzeitig eingeloggten Users (oder des Gastes), der die Seite aufgerufen hat.

Hast du den Testuser als Benutzer im Forum registriert? Wenn ja, kannst du einfach $username und $uid mit den Daten des Testusers füllen (also z.Bsp. $uid = 15; $username = "Testuser"; ), da brauchst du eigentlich das $mybb->user nicht.
Wenn nicht, müsstest du anstelle der uid einen anderen Wert eintragen, der keinen anderen user erwischen kann (also auch nicht 0, die ist für Gäste reserviert)


Das mit $message und $subject hast du richtig erkannt: Einfach deinen Inhalt reinschreiben.
@Zwoetzen: thx für die Antwort.

Eine Frage zu $message. Verwende ich dafür den BB Code oder kann ich auch HTML Code nutzen (wär mir lieber).
Wenn ich BB Code nutzen muss, wie mach ich dann Zeilenumbrüche? \n oder einfach "Enter" drücken.

mfg
Stalker.
Seiten: 1 2 3