PHP Classes

File: upload/plugins/bulletinboard/api_libs/bb_edit_thread.php

Recommend this page to a friend!
  Classes of James Brows   PHP Bulletin Board   upload/plugins/bulletinboard/api_libs/bb_edit_thread.php   Download  
File: upload/plugins/bulletinboard/api_libs/bb_edit_thread.php
Role: Example script
Content type: text/plain
Description: Example script
Class: PHP Bulletin Board
Manage and post messages in multi-user forums
Author: By
Last change:
Date: 3 years ago
Size: 8,694 bytes
 

Contents

Class file image Download
<?php

function bb_edit_thread()
{
   
  
$username=isset(Configs::$_['user_data']['user_id'])?Configs::$_['user_data']['user_id']:'';

// useClass('EmailSystem');

    // $maxID=Configs::$_['bb_thread_id_length'];
    // $minID=(int)$maxID-6;

    // Check default post status of user group
  
$status='1';

  
$thread_id=addslashes(getPost('thread_id'));
  
$title=strip_tags(addslashes(getPost('title')));
  
$pin_thread=addslashes(getPost('pin_thread','0'));
  
$poll_id=addslashes(getPost('poll_id',''));
  
$friendly_url=addslashes(getPost('friendly_url',''));
  
$status_thread=addslashes(getPost('status_thread','0'));


  
$attach_files=addslashes(getPost('attach_files'));

  
$forum_id=addslashes(getPost('forum_id'));

  
$captcha_answer=trim(addslashes(getPost('captcha_answer','')));

   if((int)
Configs::$_['bb_enable_captcha_in_new_thread']==1)
   {
       if(
strlen($captcha_answer)==0)
       {
           return
'You must type captcha characters!';
       }
   }


  
$updateData=array(
      
'forum_id'=>$forum_id,
      
'prefix_id'=>addslashes(getPost('prefix')),
      
'title'=>$title,
   
// 'is_stick'=>$pin_thread,
    // 'friendly_url'=>friendlyString(getPost('title'),'_')."_".$thread_id.'.html',
      
'content'=>strip_tags_blacklist(addslashes(getPost('content')),['iframe']),
      
'tags'=>addslashes(getPost('tags','')),
      
'author'=>Configs::$_['user_data']['username'],
      
'last_username_reply'=>Configs::$_['user_data']['username'],
      
'last_repy_time'=>'NOW()',
      
'upd_dt'=>'NOW()',
      
'user_id'=>Configs::$_['user_data']['user_id'],
   
// 'status'=>$status,
  
);

   if(!isset(
$updateData['title'][2]))
   {
       return
'Title not allow blank';
   }

  
   if(
bb_forum_has_permission($forum_id,'BB10010')==true)
   {
   
$updateData['is_stick']=$pin_thread;
   
$updateData['status']=$status_thread;
   }
   if(
bb_forum_has_permission($forum_id,'BB20010')==false)
   {
   
$updateData['is_stick']=$pin_thread;
   
$updateData['status']=$status_thread;
   }


   
$insertData=array(
       
'update'=>$updateData,
       
'where'=>array(
           
'thread_id'=>"='".$thread_id."'",
        )
    );
  
  
$queryStr=arrayToUpdateStr('bb_threads_data',$insertData);

  
$db=new Database();

  
   
// Captcha process
   
if((int)Configs::$_['bb_enable_captcha_in_new_thread']==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!';
        }
    }

  
$db->nonquery($queryStr);



  
   
load_hook('after_edit_thread',$insertData);

   if((int)
$updateData['is_stick']==1)
   {
       
BB_Forum::clear_pin_threads($forum_id);
   }

// $thread_url=SITE_URL."t-".$updateData['friendly_url'];
  
$thread_url='';

  
$friendly_url=str_replace(SITE_URL,'',$friendly_url);

  
$db->nonquery("update bb_forum_data set last_thread_title='".$updateData['title']."',last_thread_friendly_url='".$friendly_url."',last_thread_author_username='".Configs::$_['user_data']['username']."',last_thread_dt=NOW(),total_threads=total_threads+1 where forum_id='".$forum_id."'");

  
$tagArray=array();

  
$tagArray=bb_tagsToInsertStr($thread_id,addslashes(getPost('tags')));

  
$total=count($tagArray);

   for (
$i=0; $i < $total; $i++) {
      
$db->nonquery($tagArray[$i]);
   }

  
BB_Threads::clear_attach_files($thread_id);

  
saveActivities('bb_thread_add','Add new thread '.$title,$username);

  
$poll_choice_max=addslashes(getPost('poll_choice_max'));
  
$set_close_poll_day=addslashes(getPost('set_close_poll_day'));
  
$poll_answer=addslashes(getPost('poll_answer'));
  
$poll_answer_id=addslashes(getPost('poll_answer_id'));
  
$poll_question=addslashes(getPost('poll_question'));



   if(isset(
$poll_question[3]))
   {
       if(
strlen($poll_id)==0)
       {
           
$poll_id=newID(22);

           
$insertData=array(
               
'poll_id'=>$poll_id,
               
'thread_id'=>$thread_id,
               
'question'=>$poll_question,
               
'poll_choice'=>addslashes(getPost('poll_choice')),
               
'allow_change_answer'=>addslashes(getPost('allow_change_answer')),
               
'allow_guest_access'=>addslashes(getPost('allow_guest_access')),
               
'set_close_poll_day'=>$set_close_poll_day,
               
'poll_choice_max'=>$poll_choice_max,
               
'user_id'=>Configs::$_['user_data']['user_id'],
            );

            if((int)
$set_close_poll_day==1)
            {
               
$insertData['end_dt']=addslashes(getPost('close_poll_end_dt'));
            }

           
$queryStr=arrayToInsertStr('bb_poll_data',$insertData);

           
$db->nonquery($queryStr);

           
$splitAnswer=explode('|||',$poll_answer);
           
$splitAnswerID=explode('|||',$poll_answer_id);

           
$total=count($splitAnswer);

           
$answer_id='';

            for (
$i=0; $i < $total; $i++) {

                if(
strlen(trim($splitAnswer[$i])) > 0)
                {
                    if(
strlen(trim($splitAnswerID[$i]))>0)
                    {
                       
$answer_id=$splitAnswerID[$i];
                       
$db->nonquery("update bb_poll_answer_data set content='".trim($splitAnswer[$i])."' where poll_id='".$poll_id."' AND answer_id='".$answer_id."'");
                    }
                    else
                    {
                       
$insertData=array(
                           
'answer_id'=>newID(22),
                           
'poll_id'=>$poll_id,
                           
'content'=>trim($splitAnswer[$i]),
                           
'sort_order'=>$i,
                        );
                   
                       
$queryStr=arrayToInsertStr('bb_poll_answer_data',$insertData);
                   
                       
$db->nonquery($queryStr);
                    }
 
                }
       
            }
       }
       else
       {

       }

   }

   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'=>$thread_id,
                   
'file_path'=>'public/bb_contents/attach_files/'.$attachName,
                   
'file_name'=>basename(trim($filePath)),
                   
'file_type'=>$file_type,
                   
'data_type'=>'thread',
                   
'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);
  
BB_Forum::updateStats($forum_id);
  
BB_System::updateStats();

   return
SITE_URL.$friendly_url;
}

function
bb_tagsToInsertStr($post_c,$tags='')
{
   
$result=array();

   
$queryStr="";

    if(isset(
$tags[1]))
    {
       
$splitTags=explode(',',$tags);

       
$total=count($splitTags);

        for (
$i=0; $i < $total; $i++) {
           
$queryStr=arrayToInsertStr('bb_thread_tag_data',array(
               
'thread_id'=>$post_c,
               
'tag'=>trim($splitTags[$i])
            ));

           
array_push($result,$queryStr);
        }
    }

    return
$result;
}