<?php 
 
function bb_add_thread_reply() 
{ 
     
   $username=isset(Configs::$_['user_data']['user_id'])?Configs::$_['user_data']['user_id']:''; 
 
//    useClass('EmailSystem'); 
 
    // Check default post status of user group 
   $status='1'; 
 
   $thread_id=addslashes(getPost('thread_id')); 
   $forum_id=addslashes(getPost('forum_id','')); 
   $thread_title=addslashes(getPost('thread_title')); 
   $attach_files=addslashes(getPost('attach_files')); 
   $captcha_answer=trim(addslashes(getPost('captcha_answer',''))); 
   $method=trim(addslashes(getPost('method','reply'))); 
 
   $useID=rand(10,15); 
 
   $post_id=newID($useID); 
 
   $user_id=Configs::$_['user_data']['user_id']; 
 
   if((int)Configs::$_['bb_enable_captcha_quick_reply']==1) 
   { 
       if(strlen($captcha_answer)==0) 
       { 
           return 'You must type captcha characters!'; 
       } 
   } 
 
 
    // Detect last time send reply 
    // Mysql TIMESTAMPDIFF(MINUTE,T.runTime,NOW()) > 20 
 
   $insertData=array( 
       'post_id'=>$post_id, 
       'thread_id'=>$thread_id, 
       'forum_id'=>$forum_id, 
       'content'=>strip_tags_blacklist(addslashes(getPost('content')),['iframe']), 
       'user_id'=>Configs::$_['user_data']['user_id'], 
   ); 
 
   if(!isset($insertData['content'][1])) 
   { 
       return 'Content not allow blank!'; 
   } 
 
   $db=new Database();  
 
 
    // Captcha process 
    if((int)Configs::$_['bb_enable_captcha_quick_reply']==1) 
    { 
        $result=$db->query("select answer from bb_captcha_session_data where session_id='".Configs::$_['visitor_data']['session_id']."'"); 
 
        if($captcha_answer!=$result[0]['answer']) 
        { 
            return 'Your captcha answer is wrong!';    
        } 
    } 
 
   $threadData=$db->query("select * from bb_threads_data where thread_id='".$thread_id."'"); 
 
   if(count($threadData)==0) 
   { 
        return 'Thread that you reply not exist!'; 
   } 
 
   $loadData=$db->query("select count(*) as total from bb_posts_data where thread_id='".$thread_id."'"); 
 
   $totalPost=(int)$loadData[0]['total']+1; 
 
   $insertData['sort_order']=$totalPost; 
 
   $queryStr=arrayToInsertStr('bb_posts_data',$insertData); 
    
   $db->nonquery($queryStr); 
 
 
    $listForums = $db->query("select forum_id,title,parent_id,friendly_url from bb_forum_data "); 
 
    bb_gen_breadcum_forum_data_global($forum_id,$listForums); 
 
 
    $totalForum=count(Configs::$_['forum_breadcum_data']); 
 
    $queryStr=''; 
 
    for ($i=0; $i < $totalForum; $i++) {  
 
        $queryStr.="update bb_forum_data set last_thread_title='".$threadData[0]['title']."',last_thread_friendly_url='".$threadData[0]['friendly_url']."',last_thread_author_avatar='',last_thread_author_username='".Configs::$_['user_data']['username']."',last_thread_dt=NOW(),total_posts=total_posts+1 where forum_id='".Configs::$_['forum_breadcum_data'][$i]['forum_id']."';"; 
 
        // BB_Forum::updateStats(Configs::$_['forum_breadcum_data'][$i]['forum_id']); 
    } 
 
    $db->nonquery($queryStr); 
 
 
 
    load_hook('after_reply_thread',$insertData); 
 
   BB_Threads::updateThreadStats($thread_id); 
   BB_Forum::updateStats($forum_id); 
 
   BB_System::updateStats(); 
 
   $userData=$db->query("select * from user_mst where user_id='".Configs::$_['user_data']['user_id']."'"); 
 
   $db->nonquery("update bb_forum_data set last_thread_title='".$threadData[0]['title']."',last_thread_friendly_url='".$threadData[0]['friendly_url']."',last_thread_author_avatar='".$userData[0]['avatar']."',last_thread_author_username='".Configs::$_['user_data']['username']."',last_thread_dt=NOW(),total_posts=total_posts+1 where forum_id='".$forum_id."'");    
 
   $thread_url=''; 
 
   $thread_url=SITE_URL."t-".$threadData[0]['friendly_url'].'/post-'.$post_id; 
 
   saveActivities('bb_thread_add_reply','Reply thread '.$thread_title,$username); 
 
   BB_Notifies::add(Configs::$_['user_data']['user_id'],Configs::$_['user_data']['username'],' Reply thread: '.$thread_title,thread_url($threadData[0]['friendly_url'])); 
 
   $notify_id=newID(25); 
 
    $db->nonquery("insert into bb_notifies_data(id,user_id,content,target_url) VALUES('".$notify_id."','".$user_id."','".$username.": Reply thread ".$thread_title."','".thread_url($threadData[0]['friendly_url'])."')"); 
 
    $queryStr=" insert into bb_notifies_user_data(notify_id,source_user_id,target_user_id,target_username)"; 
    $queryStr.=" select '".$notify_id."','".$user_id."',user_id,user_id  "; 
    $queryStr.=" from bb_posts_data"; 
    $queryStr.=" where thread_id='".$thread_id."';"; 
    $db->nonquery($queryStr); 
 
    $queryStr=" insert into bb_notifies_user_data(notify_id,source_user_id,target_user_id,target_username)"; 
    $queryStr.=" select '".$notify_id."','".$user_id."',user_id,user_id  "; 
    $queryStr.=" from bb_threads_data"; 
    $queryStr.=" where thread_id='".$thread_id."';"; 
    $db->nonquery($queryStr); 
     
 
   if(isset($attach_files[5])) 
   { 
     
        $attachPath=''; 
        $attachName=''; 
       $splitFiles=explode('|||',$attach_files); 
 
       $total=count($splitFiles); 
 
       $filePath=''; 
 
       $fileID=''; 
 
       for ($i=0; $i < $total; $i++) {  
 
            if(isset($splitFiles[$i][2])) 
            { 
                $filePath=ROOT_PATH.str_replace(SITE_URL,"",$splitFiles[$i]); 
 
                if(!file_exists($filePath)) 
                { 
                    continue; 
                } 
 
                $useID=rand(10,20); 
 
                $fileID=newID($useID); 
 
                $attachName=$fileID.'.data'; 
 
                $attachPath=BB_ATTACH_FILES_PATH.$attachName; 
 
                $file_type=mime_content_type(trim($filePath)); 
                $file_size=filesize(trim($filePath)); 
 
 
                if((float)$file_size > (float)Configs::$_['bb_max_thread_file_size']) 
                { 
                    continue; 
                } 
                 
                copy($filePath,$attachPath); 
 
                // Remove old file 
                if(file_exists($filePath)) 
                { 
                    unlink($filePath); 
                } 
 
                $insertData=array( 
                    'file_id'=>$fileID, 
                    'post_id'=>$post_id, 
                    'file_path'=>'public/bb_contents/attach_files/'.$attachName, 
                    'file_name'=>basename(trim($filePath)), 
                    'data_type'=>'post', 
                    'file_type'=>$file_type, 
                    'file_size'=>$file_size, 
                    'user_id'=>Configs::$_['user_data']['user_id'], 
                ); 
             
                $queryStr=arrayToInsertStr('bb_thread_attach_files_data',$insertData); 
             
                $db->nonquery($queryStr);  
 
                load_hook('after_add_post_attach_files',$insertData); 
 
            } 
 
       } 
   } 
 
   BB_User::updateThreadCountStats(Configs::$_['user_data']['user_id']); 
   BB_User::updateForumCountStats($forum_id); 
 
   $savePath=BB_CACHES_PATH.'forums.php'; 
 
   if(file_exists($savePath)) 
   { 
       unlink($savePath); 
   } 
 
   return $thread_url; 
} 
 
 |