PDA

View Full Version : Creating a Thread and post via plugin stopped working


Wakey
12-16-2010, 04:24 PM
I have the following code that's executed at the newthread_post_complete hook

Basically we have an announcement forum but for structure reasons we don't allow replies. However we want to allow our users to discuss the announcements so we have a script that creates a new thread on another forum so they can discuss it. It will then add a link to the discussion thread in the original announcement.

Much of the code was written using threads on this forum and worked fine in vb3 and with a few tweaks worked fine in vb4 UNTIL upgrading to vb4.1. Now its not working at all

Code is below and I would appreciate any help you can give me to try and get it working again

<?

require_once('./global.php');
require_once('./includes/class_dm.php');
require_once('./includes/class_dm_threadpost.php');
require_once('./includes/functions_databuild.php');

$forumid = '19';
$open = '1';
$allow_smilie = '1';
$visible = '1';



// initialize datamanager
$threaddm = new vB_DataManager_Thread_FirstPost($vbulletin, ERRTYPE_STANDARD);
if($threadinfo['forumid'] == '2')
{


// set data
$threadinfo = fetch_threadinfo($newpost['threadid']);
$userid = $threadinfo['postuserid'];
//$userid ='1';
$prefix = $threadinfo['prefixid'];
$tid = $threadinfo['threadid'];
$title = $threadinfo['title'];
$newpost[message];

$pagetext = "Discussion Thread for News/Update Thread ".$title." \n\nOriginal Message".$newpost['message']."";


//foreach ($newpost as $key => $val) {
//$pagetext.="newpost[" . $key . "] = " . $val . "\n";
//}

//$pagetext.=$newpost;
$foruminfo = fetch_foruminfo($forumid);
$threaddm->set_info('forum',$foruminfo);
$threaddm->set_info('user',$userinfo);
$threaddm->set('forumid', $forumid);
$threaddm->set('userid',$userid);
$threaddm->set('title', $title);
$threaddm->set('pagetext', $pagetext);
$threaddm->set('open', $open);
$threaddm->set('allowsmilie', $allow_smilie);
$threaddm->set('visible', $visible);
$threaddm->set('prefixid', $prefix);
$threaddm->set('taglist',$newpost[taglist]);

// error checks
$threaddm->pre_save();
if (!empty($threaddm->errors))
{
echo ($threaddm->errors);
}

// save
$threadid = $threaddm->save();


//----------------------------------------
//
//NEW POST
//
//----------------------------------------

$postdm = new vB_DataManager_Post($vbulletin, ERRTYPE_STANDARD);

$postthreadid = $tid;
//$postusername = 'Admin';
// Use $postusername if posting as a guest, use $postuserid if posting as a user
$postuserid = $userid;
$postpagetext = "Discuss this Item @ this thread";

$threadinfo = fetch_threadinfo($postthreadid);
$foruminfo = fetch_foruminfo($threadinfo['forumid']);

$postdm->set_info('forum', $foruminfo);
$postdm->set_info('thread', $threadinfo);
$postdm->set('threadid', $postthreadid);
//$postdm->set('username', $postusername);
// Use $postusername if posting as a guest, use $postuserid if posting as a user
$postdm->set('userid', $postuserid);
$postdm->set('pagetext', $postpagetext);
$postdm->set('allowsmilie', 1);
$postdm->set('visible', 1);
$postdm->set('dateline', TIMENOW);
$postdm->save();
unset($postdm);
//----------------------------------------
//
//NEW POST
//
//----------------------------------------
unset($threaddm);
// rebuild caches
build_thread_counters($threadid);
build_forum_counters($forumid);
}

Wakey
12-20-2010, 11:39 AM
Ok I removed the following line (and the closing } ) and it starts to work.

if($threadinfo['forumid'] == '2')

What exactly is wrong with this if statement. As I have said it was working fine before upgrading to 4.1

I really would appreciate anyones input

Lynne
12-20-2010, 03:09 PM
Well, I'm surprised it worked at all since it isn't until the next line that you actually define $threadinfo:

// set data
$threadinfo = fetch_threadinfo($newpost['threadid']);