Файл: page/task/view.php
Строк: 214
<?php
$title = 'Выполнение задания';
require_once($_SERVER["DOCUMENT_ROOT"]."/inc/head.php");
if (isset($active) && $sys['modules']['task'] == 1) {
$strow = $connect->prepare("select * from `task` where `id` = ?");
$strow->execute(array($id));
$row = $strow->fetch();
if ($row) {
echo '<div class="title">Выполнение задания: '.$row['name'].'</div>';
// комментарии
$type = 4;
$count_comm = Comments::CountMess($id, $type);
// Отправлял ли заявку юзер?
$stmt_answer = $connect->prepare("select * from `task_ans` where `uid` = ? and `tid` = ?");
$stmt_answer->execute(array($user['id'], $id));
$answer = $stmt_answer->fetch();
$stmt_ans = $connect->prepare("select count(*) from `task_ans` where `status` = ? and `tid` = ?");
// в обработке
$stmt_ans->execute(array(0, $id));
$answers = $stmt_ans->fetchColumn();
// выполнено
$stmt_ans->execute(array(1, $id));
$success = $stmt_ans->fetchColumn();
// не выполнено
$stmt_ans->execute(array(2, $id));
$fails = $stmt_ans->fetchColumn();
if ($row['status'] != 2) {
if (isset($_GET['mode']) && ($adm_id == 1 || $row['uid'] == $user['id'])) {
if ($row['status'] == 3) {
header('Location: /task/view/'.$id);
} else {
if (isset($_POST['cancel'])) {
header('Location: /task/view/'.$id);
}
elseif (isset($_POST['yes'])) {
$status = $row['status'] == 1 ? 0 : 1;
$stmt = $connect->prepare("update `task` set `status` = ? where `id` = ?");
if ($stmt->execute(array($status, $id))) {
header('Location: /task/view/'.$id);
} else {
echo '<div class="menu">Произошла ошибка!</div>';
}
}
echo '<div class="menu">
<form action="" method="POST">
<input type="submit" name="yes" value="'.($row['status'] == 1 ? 'Отключить' : 'Включить').'">
<input type="submit" name="cancel" value="Отмена">
</form></div>';
}
} elseif ($row['uid'] == $user['id']) {
if (isset($_GET['bs'])) {
if (isset($_POST['yes'])) {
$error = '';
if (empty($_POST['col'])) {
$error.= 'Введите количество выполнений!<br/>';
}
elseif (!is_numeric($_POST['col'])) {
$error.= 'Неверное значение!<br/>';
}
elseif ($_POST['col'] < 1) {
$error.= 'Минимальное количество выполнений - 1!<br/>';
}
elseif ($user['money'] < $_POST['col'] * $row['cena']) {
$error.= 'Недостаточно средств!<br/>';
}
if ($error) {
echo '<div class="menu">'.$error.'</div>';
} else {
$col = intval($_POST['col']);
$sum = $col * $row['cena'];
$stmt = $connect->prepare("update `task` set `col` = `col` + ?, `memory` = ? where `id` = ?");
if (pay(-$sum, $user['id']) && $stmt->execute(array($col, $col, $id))) {
header('Location: /task/view/'.$id);
} else {
echo '<div class="menu">Произошла ошибка!</div>';
}
}
}
elseif (isset($_POST['no'])) {
header('Location: /task/view/'.$id);
}
echo '<div class="menu">
<form action="" method="POST">
Количество выполнений:<br/><input type="text" name="col" value="'.($row['memory'] > 0 ? $row['memory'] : '').'"><br/>
<input type="submit" name="yes" value="Пополнить"/>
<input type="submit" name="no" value="Отмена"/><br/>
<div class="chi">Стоимость выполнения: '.rub($row['cena']).'</div>
</form></div>';
}
elseif (isset($_GET['edit'])) {
if (isset($_POST['yes'])) {
$cena = isset($_POST['cena']) && $row['col'] == 0 ? floatval($_POST['cena']) : $row['cena'];
$error = '';
if (empty($_POST['name'])) {
$error.= 'Введите название!<br/>';
}
elseif (mb_strlen($_POST['name']) < 5 || mb_strlen($_POST['name']) > 250) {
$error.= 'Название должно содержать от 5 до 250 символов!<br/>';
}
if (empty($_POST['text'])) {
$error.= 'Введите требования по выполнению задания!<br/>';
}
elseif (mb_strlen($_POST['text']) < 15 || mb_strlen($_POST['text']) > 15000) {
$error.= 'Требования должны содержать от 15 до 15000 символов!<br/>';
}
if (empty($cena)) {
$error.= 'Введите цену выполнения!<br/>';
}
elseif ($cena < $sys['system']['tcena']) {
$error.= 'Минимальная цена выполнения - '.rub($sys['system']['tcena']).'!<br/>';
}
if ($error) {
echo '<div class="menu">'.$error.'</div>';
} else {
$status = ($adm_id == 1 || $sys['modules']['mod_t'] == 1) ? $row['status'] : 3;
$stmt = $connect->prepare("update `task` set `name` = ?, `text` = ?, `cena` = ?, `status` = ? where `id` = ?");
if ($stmt->execute(array($_POST['name'], $_POST['text'], $cena, $status, $id))) {
header('Location: /task/view/'.$id);
} else {
echo '<div class="menu">Произошла ошибка!</div>';
}
}
}
elseif (isset($_POST['cancel'])) {
header('Location: /task/view/'.$id);
}
echo '<div class="menu">
<form action="" method="POST">
Название [5-250]:<br/><input type="text" name="name" value="'.$row['name'].'"><br/>
Требования [15-15000]:<br/><textarea name="text" rows="3" cols="20">'.$row['text'].'</textarea><br/>
'.($row['col'] == 0 ? 'Цена выполнения:<br/><input type="text" name="cena" value="'.$row['cena'].'"><br/>' : '').'
<input type="submit" name="yes" value="Сохранить"/>
<input type="submit" name="cancel" value="Отмена"/>
</form></div>';
}
elseif (isset($_GET['del'])) {
if (isset($_POST['yes'])) {
$del = $connect->prepare("delete from `task` where `id` = ?");
if (pay($row['col'] * $row['cena'], $user['id']) &&
$del->execute(array($id)) &&
Comments::DelMess($id, $type)) {
header('Location: /task');
} else {
echo '<div class="menu">Произошла ошибка!</div>';
}
}
elseif (isset($_POST['no'])) {
header('Location: /task/view/'.$id);
}
echo '<div class="menu">
<form action="" method="POST">
<input type="submit" name="yes" value="Удалить"/>
<input type="submit" name="no" value="Отмена"/>
</form></div>';
}
}
}
echo '<div class="menu">
'.nl2br(smiles(bb(bbyoutube(bblinks($row['text']))))).'
</div>
<div class="menu">
Создатель задания: '.profileLink($row['uid']).'<br/>
Оплата за выполнение: '.rub($row['cena']).'<br/>
Выполнений: [<font color="#4cae4c">'.$success.'</font>|<font color="#eea236">'.$answers.'</font>]|<font color="#d8544f">'.$fails.'</font>]
'.($adm_id == 1 || $row['uid'] == $user['id'] ?
'<br/>Баланс: '.$row['col'].'<br/>
Статус: '.($row['status'] == 1 ? 'Включено' : 'Отключено').
($row['status'] == 2 ? '<div class="danger">Задание заблокировано!</div>' : ($row['status'] == 3 ? '<div class="information">На модерации!</div>' : '')).'
<div class="butt2">
'.($row['status'] != 2 ?
'<a href="?mode">'.($row['status'] == 1 ? 'Отключить' : 'Включить').'</a>
<a href="/task/ans/'.$id.'">Проверка выполнения ('.$answers.')</a>
'.($row['uid'] == $user['id'] ?
'<a href="?bs">Пополнить баланс</a><br/>
'.(!$answers ? '<a href="?del">Удалить</a>' : '').
(!$answers && !$fails ? '<a href="?edit">Редактировать</a>' : '')
: '')
: '').'
</div>'
: '').'
</div>
<div class="forlink"><a href="/task/comments/'.$row['id'].'" class="links"><img src="/img/chat.png" alt="chat">Комментарии к заданию<div class="chi">'.$count_comm.'</div></a></div>';
if ($row['status'] == 1) {
if ($answers >= $row['col']) {
echo '<div class="menu"><div class="information">Подождите, пока старые заявки будут обработаны и баланс задания будет пополнен!</div></div>';
} elseif ($row['uid'] != $user['id'] && $row['col'] > 0) {
if ($answer) {
if ($answer['status'] == 1) {
echo '<div class="menu"><div class="good">Это задание уже выполнено!</div></div>';
}
elseif ($answer['status'] == 2) {
echo '<div class="menu"><div class="forbidden">Это задание не выполнено!</div></div>';
} else {
echo '<div class="menu"><div class="information">Ваш отчет на проверке!</div></div>';
}
} else {
echo '<div class="title">Отчет</div>';
if (isset($_POST['answer'])) {
$error = '';
if (empty($_POST['text'])) {
$error = 'Введите сообщение!<br/>';
}
elseif (mb_strlen($_POST['text']) < 5 || mb_strlen($_POST['text']) > 15000) {
$error = 'Сообщение должно содержать от 5 до 15000 символов!<br/>';
}
if (file_exists($_FILES['filename']['tmp_name'])) {
if (!BeforeUpload::AttachFile($_FILES['filename'])) {
$error.= 'Неверный тип файла!<br/>';
}
if ($_FILES['filename']['size'] > 1048576 * 5) {
$error.= 'Максимальный размер файла - 5 Mb!<br/>';
}
}
if ($error) {
echo '<div class="menu">'.$error.'</div>';
} else {
$stmt = $connect->prepare("insert into `task_ans` set `time` = ?, `uid` = ?, `text` = ?, `tid` = ?");
if ($stmt->execute(array(time(), $user['id'], $_POST['text'], $row['id']))) {
// Загрузка файла
if (file_exists($_FILES['filename']['tmp_name'])) {
$lid = $connect->LastInsertId();
$files = $lid."_task_".random_int(11111, 99999)."_".$_FILES['filename']['name'];
move_uploaded_file($_FILES['filename']['tmp_name'], $_SERVER["DOCUMENT_ROOT"]."/files/".$files);
}
notification('[b]'.$user['login'].'[/b] отправил [url='.ROOT.'/task/ans/'.$id.']отчет[/url] по вашему заданию [url='.ROOT.'/task/view/'.$id.']'.$row['name'].'[/url] на проверку.', $row['uid']);
header('Location: /task/view/'.$id);
} else {
echo '<div class="menu">Произошла ошибка!</div>';
}
}
}
echo '<div class="menu">
<form action="" method="POST" enctype="multipart/form-data">
Отчет о выполнении [5-15000]:<br/><textarea name="text" rows="5" cols="25"></textarea><br/>
Прикрепить файл:<br/><input type="file" name="filename"><br/>
<input type="submit" name="answer" value="Подтвердить выполнение">
</form></div>';
}
}
}
if ($row['uid'] == $user['id'])
echo '<div class="forlink"><a href="/task" class="links"><img src="/img/quest.png" alt="">Мои задания</a></div>';
else
echo '<div class="forlink"><a href="/task/list" class="links"><img src="/img/quest.png" alt="">Задания</a></div>';
} else {
header('Location: /task/list');
}
} else {
header('Location: /');
}
require($_SERVER["DOCUMENT_ROOT"]."/inc/foot.php");
?>