Файл: app/support/tiket.php
Строк: 39
<?php
if (!$user->isAuth()) {
redirect('/');
exit;
}
$tiket = $db->prepare('select * from `tiket` where `id` = ?');
$tiket -> execute([Clean :: int($_GET['id'])]);
$tiket = $tiket -> fetch(PDO :: FETCH_OBJ);
if(!$tiket->id or $user->get()->user_id != $tiket ->user){
redirect('/support');
}
if(isset($_POST['submit']) and $tiket->status == 0){
$text = Clean :: str($_POST['text']);
if(empty($text)){
Notif :: error('Введите сообщение','/support/view?id='.$tiket->id);
exit;
}
if($user->get()->user_id == 1){
$notifText = 'Новый ответ от службы поддержки в тикете <a href="/support/view?id='.$tiket->id.'">«'.$tiket->name.'»</a>';
notifSend($tiket->user,$notifText);
}else
{
$notifText = 'Пользователь '.$user['login'].' ответил вам в тикете <a href="/support/view?id='.$tiket->id.'">'.$tiket->name.'</a>';
notifSend(1,$notifText);
}
$add = $db->prepare('INSERT INTO `tiketmsg` (`text`,`user`,`time`,`tiket`) VALUES (?,?,?,?)');
$add -> execute([$text,$user->get()->user_id,time(),$tiket->id]);
$id = $db->lastInsertId();
if (!empty($_FILES['upload'][0]['tmp_name'])) {
if (count($_FILES) > 5) {
Notif :: error('Максимум 5 прикрепленных файлов.','/support/view?id='.$tiket->id);
exit;
}
$files = array();
$diff = count($_FILES['upload']) - count($_FILES['upload'], COUNT_RECURSIVE);
if ($diff == 0) {
$files = array($_FILES['upload']);
} else {
foreach($_FILES['upload'] as $k => $l) {
foreach($l as $i => $v) {
$files[$i][$k] = $v;
}
}
}
foreach ($files as $file) {
if ($file['size'] > (1048576 * 10)) {
Notif :: error('Размер прикрепляемого изображения не должен превышать 10 мб.','/support/view?id='.$tiket->id);
exit;
}
$filetype = ['jpg', 'gif', 'png', 'jpeg', 'bmp'];
$upfiletype = substr($file['name'], strrpos($file['name'], '.')+1);
if(!in_array($upfiletype,$filetype)) {
Notif :: error('Файл '.Clean :: str($file['name']).' не является изображением.','/support/view?id='.$tiket->id);
exit;
}
$file_name_is = $tiket->id.'_'.date('c').'_'.rand(1,9999).'.png';
move_uploaded_file($file['tmp_name'], $_SERVER['DOCUMENT_ROOT'].'/public/files/support/'.$file_name_is);
$sql = $db->prepare('INSERT INTO `support_files` (`tiket`,`file`) VALUES (?,?)');
$sql -> execute([$id,$file_name_is]);
}
}
redirect('/support/view?id='.$tiket->id);
exit;
}
$all = $db->prepare('SELECT * FROM `tiketmsg` WHERE `tiket` = ? ORDER BY `id` DESC');
$all -> execute([$tiket->id]);
$all = $all -> fetchAll();
$peger = new ArrayPaginator('/support/view?id='.$tiket->id, 10);
$items = $peger->getItems($all);
function arrayFiles($id){
global $db;
$arrayFiles = $db->prepare('select * from `support_files` where `tiket` = ?');
$arrayFiles -> execute([$id]);
$arrayFiles = $arrayFiles -> fetchAll();
return $arrayFiles;
}
echo $template->render('support.tiket',
['peger' => $peger,
'items' => $items,
'tiket' => $tiket
]
);