MyBB.de Forum

Normale Version: Neuen Thread über externes Skript erstellen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Tach zusammen,
ich würde gerne in mein Newssystem eine Funktion einbauen, die es mir ermöglicht bestimmte Artikel als Threads in das Forum zu kopieren. Habe mir daher die newthread.php angesehen, werde aber daraus nur so halb schlau. Confused
Den Posthandler hab ich schon gefunden, nur was ich dann damit machen muss, ist mir nicht so ganz klar...
Könnte mir vielleicht einer von euch helfen?

Gruß,
Sevil
(17.11.2008, 20:23)sevildevil schrieb: [ -> ]Den Posthandler hab ich schon gefunden, nur was ich dann damit machen muss, ist mir nicht so ganz klar...
Könnte mir vielleicht einer von euch helfen?
Das ist schonmal die richtige Stelle. Wo genau kommst du denn nicht weiter? Om Grunde musst du ein Array mit allen Attributen füllen und dieses dann an den Posthandler übergeben.
Also mein Skript sieht derzeit so aus (MySQL abfrage kommt erst rein, wenns "auf dem Trockenen" funktioniert" Wink)
PHP-Code:
<?php
define
("IN_MYBB"1);
require_once 
"global.php";
require_once 
"inc/functions_post.php";
require_once 
"inc/functions_user.php";

require_once 
"inc/datahandlers/post.php";
$posthandler = new PostDataHandler("insert");
$posthandler->action "thread";

$new_thread = array(
  
"fid" => 28,
  
"subject" => "Testthread",
  
"icon" => 0,
  
"uid" => 1,
  
"username" => "Severin",
  
"message" => "Ich bin ein Blindtext. Von Geburt an.",
  
"ipaddress" => get_ip(),
  
"posthash" => $mybb->input['posthash'],
  
"savedraft" => 0
);

    if(
$pid != '')
    {
        
$new_thread['pid'] = $pid;
    }

    
$posthandler->set_data($new_thread);
    
    
// Now let the post handler do all the hard work.
    
$valid_thread $posthandler->validate_thread();
    
    
$post_errors = array();
    
// Fetch friendly error messages if this is an invalid thread
    
if(!$valid_thread)
    {
        
$post_errors $posthandler->get_friendly_errors();
        
print_r($post_errors);
    }
?>
Problem: Das Thema wird nicht eingetragen und ich bekomm ne weiße Seite ausgespuckt (also auch keine Fehlermeldungen, etc.), kann auch aktuell wenig mit dem "Post-Hash" anfangen. Kann man den weglassen, oder muss ich dafür irgendwas mit md5 codieren?
Naja, du setzt die Daten, validierst diese und das wars. Es fehlt noch der Aufruf zum speichern:
PHP-Code:
$posthandler->insert_thread(); 
Den Posthash kannst du einfach generieren:
PHP-Code:
mt_srand((double) microtime() * 1000000);
$posthash md5($mybb->user['uid'].mt_rand()); 
Aaah Danke Micha,
nun funktioniers *freu* Smile

Gruß,
Sevil