PDA

View Full Version : Copy Threads


10-16-2000, 01:24 PM
Here is the PHP code to add copy thread to postings.php. From there you just have to add a couple templates (you can pretty much copy and modify the move thread templates). Also, you have to add a "Copy Thread" link in showthreads.php.

postings.php:
// ############################### start copy thread ###############################
if ($action=="copy") {

$threadid = verifyid("thread",$threadid);

makeforumjump();

$threadinfo=$DB_site->query_first("SELECT title,forumid FROM thread WHERE threadid=$threadid");
if ($wordwrap!=0) {
$threadinfo[title]=dowordwrap($threadinfo[title]);
}
$threadtitle=htmlspecialchars($threadinfo[title]);
$forumid=$threadinfo[forumid];

$foruminfo=$DB_site->query_first("SELECT title FROM forum WHERE forumid=$threadinfo[forumid]");
$forumtitle=htmlspecialchars($foruminfo[title]);

$username=$bbusername;
$password=$bbpassword;

$permissions=getpermissions($bbuserid,$bbusergroup id,$forumid);
if ($permissions[canview]==0 or ($permissions[canmove]==0 and $permissions[canadminedit]==0)) {
$firstpostinfo=$DB_site->query_first("SELECT userid FROM post WHERE threadid=$threadid ORDER BY dateline LIMIT 1");
eval("echo standarderror(\$bbtitle,\"".gettemplate("error_nopermission")."\");");
exit;
} elseif ($permissions[canadminedit]==0) {
$firstpostinfo=$DB_site->query_first("SELECT userid FROM post WHERE threadid=$threadid ORDER BY dateline LIMIT 1");
if ($bbuserid!=$firstpostinfo[userid]) {
eval("echo standarderror(\$bbtitle,\"".gettemplate("error_nopermission")."\");");
exit;
}
}

eval("echo dovars(\"".gettemplate("copy")."\");");
}

// ############################### start do copy thread ###############################
if ($action=="docopy") {

//check valid username and password and get user id
$userid=verifyusername($username,$password);

$forumid = verifyid("forum",$forumid);

$threadinfo=$DB_site->query_first("SELECT title,lastpost,forumid,open,replycount,postusernam e,lastposter,dateline,iconid,visible FROM thread WHERE threadid=$threadid");
$curforumid=$threadinfo[forumid];

$permissions=getpermissions($bbuserid,$bbusergroup id,$curforumid);
if ($permissions[canview]==0 or ($permissions[canmove]==0 and $permissions[canadminedit]==0)) {
$firstpostinfo=$DB_site->query_first("SELECT userid FROM post WHERE threadid=$threadid ORDER BY dateline LIMIT 1");
eval("echo standarderror(\$bbtitle,\"".gettemplate("error_nopermission")."\");");
exit;
} elseif ($permissions[canadminedit]==0) {
$firstpostinfo=$DB_site->query_first("SELECT userid FROM post WHERE threadid=$threadid ORDER BY dateline LIMIT 1");
if ($bbuserid!=$firstpostinfo[userid]) {
eval("echo standarderror(\$bbtitle,\"".gettemplate("error_nopermission")."\");");
exit;
}
}


// create new thread (copy)
$title = $threadinfo[title];
$lastpost = $threadinfo[lastpost];
$open = $threadinfo[open];
$replycount = $threadinfo[replycount];
$postusername = $threadinfo[postusername];
$lastposter = $threadinfo[lastposter];
$dateline = $threadinfo[dateline];
$iconid = $threadinfo[iconid];
$visible = $threadinfo[visible];
$DB_site->query("INSERT INTO thread (threadid,title,lastpost,forumid,open,replycount,p ostusername,lastposter,dateline,iconid,visible) VALUES (NULL,'".addslashes($title)."',$lastpost,$forumid,$open,$replycount,'".addslashes($postusername)."','".addslashes($lastposter)."',$dateline,$iconid,$visible)");
$newthreadid=$DB_site->insert_id();


// copy posts
$counter = 0;
$posts=$DB_site->query("SELECT title,username,userid,dateline,pagetext,allowsmili e,email,signature,ipaddress,iconid,visible FROM post WHERE threadid=$threadid");
while ($post=$DB_site->fetch_array($posts))
{
$counter++;

$title = $post[title];
$username = $post[username];
$userid = $post[userid];
$dateline = $post[dateline];
$pagetext = $post[pagetext];
$allowsmilie = $post[allowsmilie];
$email = $post[email];
$signature = $post[signature];
$ipaddress = $post[ipaddress];
$iconid = $post[iconid];
$visible = $post[visible];

// create new post (for copy)
$DB_site->query("INSERT INTO post (postid,threadid,title,username,userid,dateline,pa getext,allowsmilie,email,signature,ipaddress,iconi d,visible) VALUES (NULL,$newthreadid,'".addslashes($title)."','".addslashes($username)."',$userid,$dateline,'".addslashes($pagetext)."',$allowsmilie,$email,$signature,'".addslashes($ipaddress)."',$iconid,$visible)");
}

indexthread($newthreadid);

// update forum stuff
$DB_site->query("UPDATE forum SET replycount=replycount+$counter,threadcount=threadc ount+1 WHERE forumid=$forumid");

eval("echo standardredirect(\$bbtitle,\"".gettemplate("redirect_copythread")."\",\"showthread.php?threadid=$threadid\");");
}

-ChadG

[Edited by ChadG on 10-16-2000 at 11:23 PM]

10-17-2000, 12:33 PM
Nice! :)

10-17-2000, 12:42 PM
Thought some of you may like that. Sorry the title didn't have [RELEASE] in it. I'm new to this forum and it's "conventions".

-ChadG

10-17-2000, 03:06 PM
Forum FAQ:

Q: Can I make a [request]?
A: As long as you don't put [request] in your subject ;)

Q: How do I include vb info in a non-vb page?
A: read the other threads

Q: Why are the smilies yellow?
A: Ask James ;)

Q: Why does Ed Sullivan have so many names?
A: Good question :p

:D