PDA

View Full Version : MODS PLEASE MOVE: auto-generate new thread


Snetty
12-12-2005, 03:56 PM
I've been redeveloping one of my sites (www.mousepilot.co.uk) for the past week or so, using vBulletin as the base for it. My custom scripts allow myself and users to post articles and news on the main site. I can obviously edit these etc.

Something I want to be able to add to these scripts is the ability to automatically create a corresponding discussion thread in vb. The main site and vBulletin use the same database so in theory it should be easy. I've had a look at the thread and post tables, and decided that there are to many fields that I don't understand their purpose for me to be able to have a go at this without more information.

Something else that occurred to me is that I'd probably need to update the various statistics associated (total threads, posts per user etc etc) which I guess is something that I shouldn't have any major difficulty with. I just need confirmation that this is necessary really.

Has anyone ever tried something similar? Either way, is there any chance that someone can give me an insight into the various fields in the thread and posts tables, their uses and what values I need to put in each.

I'm also not sure that this is in the right forum, so mods feel free to move it.

Snetty
01-13-2006, 11:17 AM
Danny.VBT advised me of the following on vbulletin.com

Here's a post by Andreas that shows how to create a new thread using vBulletin's datamanager: https://vborg.vbsupport.ru/showp...01&postcount=7

HTH,
Danny

So.. I wrote the following function


function addthread($contentid){

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

$query = "SELECT title FROM dynamiccontent WHERE contentid = '$contentid'";
$result1 = mysql_query ($query) or die(mysql_error());
$dynamiccontent = mysql_fetch_array ($result1);

$title = $dynamiccontent[title];

$query = "SELECT threadid FROM thread WHERE title = '$title'";
$result2 = mysql_query ($query) or die(mysql_error());
$threadnum = mysql_num_rows($result2);

if ($threadnum == 0) {

$query = "SELECT title, content, userid, publish, link, category FROM dynamiccontent WHERE contentid = '$contentid'";
$result3 = mysql_query ($query) or die(mysql_error());
$dynamiccontent = mysql_fetch_array ($result3);

$userid = $dynamiccontent[userid];

$query = "SELECT userid FROM user WHERE userid = '$userid'";
$result4 = mysql_query ($query) or die(mysql_error());
$user = mysql_fetch_array ($result4);

$dataman =& datamanager_init('Thread', $vbulletin, ERRTYPE_ARRAY, 'threadpost');

if ($dynamiccontent[category] == 0 ) {

$dataman->set('forumid', '2');

} else {

$dataman->set('forumid', '7');

}

$dataman->set('open', '1');
$dataman->setr('title', $dynamiccontent[title]);
$dataman->setr('pagetext', $dynamiccontent[content]);
$dataman->setr('username', $user[username]);
$dataman->setr('userid', $userid);
$dataman->set('visible', '1');
$dataman->set('allowsmilie', '1');

// check for errors
if (!empty($userdata->errors)) {

$errorlist = '';
foreach ($userdata->errors AS $index => $error) {

$errorlist .= "<li>$error</li>";

}

// ... additional code; $errorlist is outputted to the user
echo $errorlist;

} else {

// save the data
$threadid = $dataman->save();

// ... additional processing code

}

}

}


Which gives me the following error

Fatal error: Registry object is not an object in /includes/class_dm.php on line 177

Can anyone help me with where i've gone wrong please? Chances are that the code I've written is completely wrong. I did my code according to the instructions that I found in the documentation, well, that's the theory anyway.

Oh, I guess this no longer falls under the forum it's in, so can a mod move it to the correct place please.

Snetty
01-15-2006, 12:09 PM
anyone care to help?

sabret00the
01-15-2006, 01:04 PM
this may help you :)

https://vborg.vbsupport.ru/showthread.php?t=97283

Snetty
01-15-2006, 01:19 PM
ah, many thanks sabret00the