PDA

View Full Version : Mass create new threads


the_sisko
03-12-2008, 10:13 AM
Hi guys,

I'm trying to import news from a CMS into a forum with the vBulletin API.

I've created a function for my cms to create an news thread with first post:
function vb_create_thread($forumid, $thread_title, $pagetext,$timestamp=0)
{
global $CFG, $vbulletin;
$timestamp = (empty($timestamp)) ? TIMENOW : $timestamp;

// create thread
$threaddm =& datamanager_init('Thread_FirstPost', $vbulletin, ERRTYPE_ARRAY, 'threadpost');

$foruminfo = fetch_foruminfo($forumid);
$threaddm->set_info('forum', $foruminfo);

$threaddm->set('forumid', $foruminfo['forumid']);
$threaddm->set('userid', $CFG->vbuserid);
$threaddm->set('title', $thread_title);
$threaddm->set('pagetext', $pagetext);
$threaddm->set('allowsmilie', 1);
$threaddm->set('visible', 1);
$threaddm->set('dateline', $timestamp);
return $threaddm->save();
}
/*
$CFG->vbuserid = holds userid 3 for posting
*/


On the import script I use a while loop to create the news threads:

while($data = $mysql->fetch_array($result))
{
$title = (empty($data['game_name'])) ? $data['category_name'] : $data['game_name'];
$pagetext = $data['news_text'];
$pagetext .= "\n\n".$title." | ".$data['news_title']." (.$gamers->build_seo_link($data['news_id'],$title,$data['news_title']).)";
$pagetext .= "\n\nWas ist Eure Meinung?";
#echo "2, $title | $data[news_title], $pagetext, $data <br />";
$threadid = vb_create_thread(2, $title.' | '.$data['news_title'], $pagetext, $data['timestamp']);

$sql = 'UPDATE news SET threadid = :threadid WHERE news_id = :news_id';
$arg_array = array('threadid' => $threadid, 'news_id' => $data['news_id']);
$mysql->query($sql, $arg_array);

}


Now the problem:
The first loop is ok, vb_create_thread return a threadid. But from the second loop until the end, I won't get any news threads!

What could it be? I tried to unset $threaddm in my function but nothing help.

Any idea?

--------------- Added 1205323815 at [TIME]1205323815 ---------------

So far I figured out it might be $floodcheck. Now I need to find out how to disable it for the api...

--------------- Added 1205324192 at 1205324192 ---------------

$threaddm->set_info('skip_floodcheck', true);

worked