<?php
function bb_add_message_invites()
{
$username=isset(Configs::$_['user_data']['user_id'])?Configs::$_['user_data']['user_id']:'';
// useClass('EmailSystem');
// Check default post status of user group
$status='1';
$receivers=addslashes(getPost('invite_users'));
$parent_id=addslashes(getPost('message_id'));
if(isset($receivers[3]))
{
$receivers=str_replace(";",",",$receivers);
$receivers=trim(str_replace(",,",",",$receivers));
}
$splitReceivers=explode(",",$receivers);
$totalRe=count($splitReceivers);
// Configs::$_['bb_max_message_receivers']
if($totalRe > 10)
{
return 'Max receivers is 10';
}
$db=new Database();
if(isset($receivers[2]))
{
$listReceiversIN='';
for ($i=0; $i < $totalRe; $i++) {
if(strlen($splitReceivers[$i]) > 2)
{
$listReceiversIN="'".$splitReceivers[$i]."',";
$listReceiversIN=substr($listReceiversIN,0,strlen($listReceiversIN)-1);
$insertData=array(
'message_id'=>$parent_id,
'target_username'=>$splitReceivers[$i],
'source_user_id'=>Configs::$_['user_data']['user_id'],
'target_user_id'=>'',
);
$queryStr=arrayToInsertStr('bb_message_user_data',$insertData);
$db->nonquery("delete from bb_message_user_data where target_username='".$splitReceivers[$i]."' AND source_user_id='".Configs::$_['user_data']['user_id']."'");
$db->nonquery($queryStr);
}
}
$queryStr=" update bb_message_user_data as a";
$queryStr.=" join user_mst as b ON a.target_username=b.username";
$queryStr.=" set a.target_user_id=b.user_id where a.message_id='".$parent_id."' AND LENGTH(a.target_user_id)='0';";
$db->nonquery($queryStr);
$queryStr=" delete from bb_message_user_data where target_username NOT IN (select username from user_mst) ";
$queryStr.=" AND message_id='".$parent_id."'";
$db->nonquery($queryStr);
//Delete messages of members which dont want receive message
$queryStr=" delete from bb_message_user_data where target_username IN";
$queryStr.=" (select a.username from user_mst as a join bb_user_data as b ON a.user_id=b.user_id";
$queryStr.=" where b.allow_receive_message='4' AND a.username IN (".$listReceiversIN."))";
$queryStr.=" AND message_id='".$parent_id."'";
$db->nonquery($queryStr);
//Delete messages of members which only receive message from following users
$queryStr=" delete from bb_message_user_data where target_username IN ";
$queryStr.=" (select a.username from user_mst as a join bb_user_data as b ON a.user_id=b.user_id";
$queryStr.=" where b.allow_receive_message='3' AND a.username IN (".$listReceiversIN."))";
$queryStr.=" AND target_username IN (select a.username from user_mst as a join bb_user_follow_data as b ON a.user_id=b.user_id ";
$queryStr.=" where b.followed_user_id='".Configs::$_['user_data']['user_id']."' AND a.username IN (".$listReceiversIN."))";
$queryStr.=" AND message_id='".$parent_id."'";
$db->nonquery($queryStr);
$savePath=BB_CACHES_PATH.'message_receivers_'.$parent_id.'.php';
if(file_exists($savePath))
{
unlink($savePath);
}
}
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,14);
$fileID=newID($useID);
$attachName=$fileID.'.data';
$attachPath=BB_ATTACH_FILES_PATH.$attachName;
$file_type=mime_content_type(trim($filePath));
$file_size=filesize(trim($filePath));
copy($filePath,$attachPath);
// Remove old file
if(file_exists($filePath))
{
unlink($filePath);
}
$insertData=array(
'file_id'=>$fileID,
'post_id'=>$message_id,
'file_path'=>'public/bb_contents/attach_files/'.$attachName,
'file_name'=>basename(trim($filePath)),
'data_type'=>'message',
'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);
}
}
}
return 'Done';
}
|