vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   Member Archives (https://vborg.vbsupport.ru/forumdisplay.php?f=202)
-   -   Copy Threads (https://vborg.vbsupport.ru/showthread.php?t=3938)

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:
Code:

// ############################### 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,$bbusergroupid,$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,postusername,lastposter,dateline,iconid,visible FROM thread WHERE threadid=$threadid");
  $curforumid=$threadinfo[forumid];

  $permissions=getpermissions($bbuserid,$bbusergroupid,$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,postusername,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,allowsmilie,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,pagetext,allowsmilie,email,signature,ipaddress,iconid,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=threadcount+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


All times are GMT. The time now is 07:11 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01597 seconds
  • Memory Usage 1,736KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (4)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete