<?php
$protocol = ((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') || $_SERVER['SERVER_PORT'] == 443) ? 'https://' : 'http://';
define('BASE_URL', "{$GLOBALS['protocol']}{$_SERVER['SERVER_NAME']}/");
unset($protocol);
require_once(F.'core/mav/Task_model.php');
if(!empty($pg->segment[2])){
$opt['title'] = 'Задания ';
$opt['description'] = 'Выполняйте короткие задания и зарабатывайте деньги';
z_item($pg->segment[2]);
}
else{
$opt['title'] = 'Задания ';
$opt['description'] = 'Выполняйте короткие задания и зарабатывайте деньги';
z();
}
function z()
{
$r_m = new Task_model;
$dat = array();
$view = F.'pages/user/mav/task_view.php';
$data = array();
$aj = !empty($_POST['aj']) ? TRUE : FALSE;
$dat['feed'] = $r_m->form_redirect();
//$r_m->Activation($GLOBALS['uid']);
/********************************************/
if($GLOBALS['uid']){
$t = $r_m->ChBlokComm();
if(!empty($t)){
$dat['ChBlok'] = $t['Blok'];
$dat['ChBlokComm'] = $t['Comm'];
}
else
$dat['ChBlok'] = FALSE;
if(!$dat['ChBlok']){
$dat['Cats'] = $r_m->GetsCat();
$dat['BlockTask'] = 0;
$dat['BlackList'] = 0;
/***********************up_ins***************************/
if(isset($_POST['Rat'],$_POST['RatOk'])){
$tu = $r_m->GetByIDU($_POST['RatOk'],$GLOBALS['uid']);
if(!empty($tu) && ((int)$tu['Rat']) === 0){
$ar = array(
'Id' => $tu['Id'],
'Rat' => ((int)$_POST['Rat'] > 0) ? '1' : '-1',
);
if($r_m->UpdateU($ar))
$dat['feed'] = $r_m->form_redirect_send('<div class="alert alert-success">Вы оценили задание!</div>');
else
$dat['feed'] = $r_m->form_redirect_send('<div class="alert alert-danger"><strong>Произошла ошибка!</strong> Проверьте данные и повторите попытку</div>');
}
else
$dat['feed'] = $r_m->form_redirect_send('<div class="alert alert-danger"><strong>Произошла ошибка!</strong> Проверьте данные и повторите попытку</div>');
}
/******************BlackList*******************/
if((isset($_POST['BlockTask']) || isset($_POST['BlackList'])) && empty($_POST['ak'])) {
if(isset($_POST['BlackList'])){
if($r_m->BlackList($_POST['BlackList']))
$dat['feed'] = '<div class="alert alert-success">Данные обновлены!</div>';
else
$dat['feed'] = '<div class="alert alert-danger"><strong>Произошла ошибка!</strong> Повторите попытку</div>';
}
if(isset($_POST['BlockTask'])){
if($r_m->BlockTask($_POST['BlockTask']))
$dat['feed'] = '<div class="alert alert-success">Данные обновлены!</div>';
else
$dat['feed'] = '<div class="alert alert-danger"><strong>Произошла ошибка!</strong> Повторите попытку</div>';
}
}
if(isset($_POST['WhiteList'])){
if($r_m->WhiteList($_POST['WhiteList'])){
$dat['feed'] = $r_m->form_redirect_send('<div class="alert alert-success">Данные обновлены!</div>');
}
else
$dat['feed'] = $r_m->form_redirect_send('<div class="alert alert-danger"><strong>Произошла ошибка!</strong> Повторите попытку</div>');
}
/**************Фильтр выборки****************/
$url_build = array();
$filtr = array();
if(!empty($_POST['Login']))
$filtr['Login'] = trim($_POST['Login']);
elseif(!empty($_GET['Login']) && empty($_POST['aj']))
$filtr['Login'] = trim($_GET['Login']);
if(!empty($_POST['Url']))
$filtr['Url'] = trim($_POST['Url']);
elseif(!empty($_GET['Url']) && empty($_POST['aj']))
$filtr['Url'] = trim($_GET['Url']);
if(isset($_POST['OnliFav'])){
if(!empty($_POST['OnliFav']))
$filtr['OnliFav'] = 1;
}
elseif(!empty($_GET['OnliFav']) && empty($_POST['aj']))
$filtr['OnliFav'] = 1;
if(isset($_POST['AutoChek'])){
if(!empty($_POST['AutoChek']))
$filtr['AutoChek'] = 1;
}
elseif(!empty($_GET['AutoChek']) && empty($_POST['aj']))
$filtr['AutoChek'] = 1;
if(!empty($_POST['PriceOt']))
$filtr['PriceOt'] = (float)$_POST['PriceOt'];
elseif(!empty($_GET['PriceOt']) && empty($_POST['aj']))
$filtr['PriceOt'] = (float)$_GET['PriceOt'];
if(!empty($_POST['CatId']))
$filtr['CatId'] = (int)($_POST['CatId']);
elseif(!empty($_GET['CatId']) && empty($_POST['aj']))
$filtr['CatId'] = (int)($_GET['CatId']);
$dat['CatId'] = empty($filtr['CatId']) ? 0 : $filtr['CatId'];
$url_build = $filtr;
$dat['tab'] = 1;
if(!empty($_POST['tab']))
$url_build['tab'] = $dat['tab'] = (int)($_POST['tab']);
elseif(!empty($_GET['tab']) && empty($_POST['aj']))
$url_build['tab'] = $dat['tab'] = (int)($_GET['tab']);
$dat['tab'] = (int)$dat['tab'];
/**************Пагинация***********************/
$pagevis = 15;
$startpag = 1;
if(isset($_POST['startpag']))
$startpag = (int)$_POST['startpag'];
elseif(isset($_GET['startpag']) && empty($_POST['aj']))
$startpag = (int)$_GET['startpag'];
if(!$startpag)
$startpag = 1;
elseif($startpag > 1)
$url_build['startpag'] = $startpag;
$dat['startpag'] = $startpag;
$startpag = ($startpag-1)*$pagevis;
/**************Сортировка**********************/
$dat['sort'] = '';
if(isset($_POST['sort']))
$dat['sort'] = $_POST['sort'];
elseif (isset($_GET['sort']) && empty($_POST['aj']))
$dat['sort'] = $_GET['sort'];
if(!empty($dat['sort']))
$url_build['sort'] = $dat['sort'];
/**********************************/
$t = $r_m->MyTek();
$dat['my_tek'] = $t['tek'];
$dat['my_wait'] = $t['wait'];
$dat['my_tek_count'] = count($t['tek']);
unset($t);
$dat['items'] = NULL;
$filtr['Fav'] = TRUE;
if($dat['tab'] === 2){
$filtr['UserId'] = $GLOBALS['uid'];
$filtr['BlackList'] = TRUE;
$dat['items'] = $r_m->GetsU($filtr,$startpag, $pagevis, $dat['sort']);
}
elseif($dat['tab'] === 3){ //Белый список
$dat['items'] = $r_m->GetsWhiteList(array(),$startpag, $pagevis);
}
elseif($dat['tab'] === 4){ //Черный список
$dat['items'] = $r_m->GetsBlackList(array(),$startpag, $pagevis);
}
elseif($dat['tab'] === 5){ //Заблокированные задания
}
else{ //главная вкладка
$filtr['ActiveOk'] = TRUE;
$dat['items'] = $r_m->Gets($filtr,$startpag, $pagevis, $dat['sort']);
}
//var_dump($dat['items']);die();
$dat['pager'] = ($dat['items']->count > $pagevis) ? $r_m->getpager($startpag,$pagevis,$dat['items']->count, '', 'pager') : '';
$dat['url_build'] = empty($url_build) ? '/user/task' : '/user/task?'.urldecode(http_build_query($url_build));
$dat['filtr'] = $filtr;
unset($filtr,$url_build,$startpag);
$dat['aj'] = $aj;
$dat['r_m'] = &$r_m;
/******************BlackList*******************/
if((isset($_POST['BlockTask']) || isset($_POST['BlackList'])) && !empty($_POST['ak'])) {
if(isset($_POST['BlackList'])){
if($r_m->BlackList($_POST['BlackList'])){
$dat['BlackList'] = (int)$_POST['BlackList'];
$dat['feed'] = '<div class="alert alert-success">Данные обновлены!</div>';
}
else
$dat['feed'] = '<div class="alert alert-danger"><strong>Произошла ошибка!</strong> Повторите попытку</div>';
}
if(isset($_POST['BlockTask'])){
if($r_m->BlockTask($_POST['BlockTask'])){
$dat['BlockTask'] = (int)$_POST['BlockTask'];
$dat['feed'] = '<div class="alert alert-success">Данные обновлены!</div>';
}
else
$dat['feed'] = '<div class="alert alert-danger"><strong>Произошла ошибка!</strong> Повторите попытку</div>';
}
}
/***********************************************/
}
}
/************************************************/
$dat['Title'] = 'Задания';
$r_m->views($view, $dat);
if(!empty($aj))
die();
}
function z_item($upar){
$r_m = new Task_model;
//$r_m->cron();
$dat = array();
$view = F.'pages/user/mav/task_view_item.php';
$data = array();
$aj = !empty($_POST['aj']) ? TRUE : FALSE;
$dat['feed'] = $r_m->form_redirect();
$dat['r_m'] = &$r_m;
//$r_m->Activation($GLOBALS['uid']);
if($GLOBALS['uid']){
/***********************up_ins***************************/
if(isset($_POST['taskuseradd'])){
$zad = $r_m->GetByID($_POST['taskuseradd'],NULL,TRUE);
if(empty($zad) || $zad['Balans'] < $zad['Amount'])
$dat['feed'] = $r_m->form_redirect_send('<div class="alert alert-danger"><strong>Произошла ошибка!</strong> Задание больше не доступно :(</div>');
elseif(!empty($r_m->set['maxusertask']) && $r_m->chCount() > $r_m->set['maxusertask'])
$dat['feed'] = $r_m->form_redirect_send('<div class="alert alert-danger"><strong>Произошла ошибка!</strong> Разрешается выполнять одновременно заданий не более '.$r_m->set['maxusertask'].'!</div>');
elseif($zad['UserId'] == $GLOBALS['uid'])
$dat['feed'] = $r_m->form_redirect_send('<div class="alert alert-danger"><strong>Произошла ошибка!</strong> Нельзя выполнять свое задание</div>');
else{
$ar_ins = array(
'UserId' => $GLOBALS['uid'],
'Url' => $zad['Url'],
'Title' => $zad['Title'],
'TaskId' => $zad['Id'],
'TaskUserId' => $zad['UserId'],
'CatId' => $zad['CatId'],
'Body' => $zad['Body'],
'Otvet' => $zad['Otvet'],
'Amount' => $zad['Amount'],
'AutoChek' => $zad['AutoChek'],
'AutoChekText' => $zad['AutoChekText'],
'Otchet' => '',
'EndDate' => time()+(60*60)*$zad['Srok'],
);
if(($ins_id = $r_m->InsertU($ar_ins))){
$t = $zad['Balans'] - $zad['AmountPer'];
// file_put_contents(F.'core/mav/task_log_tasssk', " 'Id'=>{$zad['Id']},'Balans'=>{$t}. zad['Balans'] - {$zad['Balans']}\n\n", FILE_APPEND);
$r_m->Update(array('Id'=>$zad['Id'],'Balans'=>$t),TRUE);
$dat['feed'] = $r_m->form_redirect_send('<div class="alert alert-success"><strong>Вы приступили к Выполнению задания!</strong></div>','/user/task/u'.$ins_id);
$dat['tab'] = 2;
}
else{
// file_put_contents(F.'core/mav/task_log_tasssk', " {$GLOBALS['uid']} - {$zad['Id']} err\n\n");
$dat['feed'] = $r_m->form_redirect_send('<div class="alert alert-danger"><strong>Произошла ошибка!</strong> Проверьте данные и повторите попытку.</div>');
}
}
}
elseif(isset($_POST['TaskOk']) && !empty($_POST['otchet'])){
$tu = $r_m->GetByIDU($_POST['TaskOk'],$GLOBALS['uid']);
if(!empty($tu)){
/*************Автоперевод*******************************/
if($tu['AutoChek'] > 0){
$otchet = preg_replace('~[\s\t\r\n]~ius', ' ', mb_strtolower(trim($_POST['otchet'])));
$otchet = preg_replace('~[^0-9a-zа-я\*\!\?]~ius', '',$otchet);
$preg = preg_replace('~\*~ius', '.+',$tu['AutoChekText']);
$preg = preg_replace('~\?~ius', '.?',$tu['AutoChekText']);
if(preg_match("~^{$preg}$~ius", $otchet)){
$ar = array(
'Id' => $tu['Id'],
'Otchet' => $_POST['otchet'],
'Status' => 4,
'OtchetDate' => time(),
'OkDate'=>time(),
);
if($r_m->UpdateU($ar,TRUE)){
$r_m->MoneyPlus($tu['UserId'],$tu['Amount']);
$dat['feed'] = $r_m->form_redirect_send('<div class="alert alert-success"><strong>Отчет одобрен!</strong> Задание выполнено.</div>');
}
else
$dat['feed'] = $r_m->form_redirect_send('<div class="alert alert-danger"><strong>Произошла ошибка!</strong> Обратитесь к администратору сайта</div>');
}
else{
$ar = array(
'Id' => $tu['Id'],
'Otchet' => $_POST['otchet'],
'Status' => 7,
'OtchetDate' => time(),
'OkDate'=>time(),
'BlokMess'=>'Вы допустили ошибку в отчете! Если Вы считаете, что все было правильно, Обратитесь к администратору сайта',
);
if($r_m->UpdateU($ar,TRUE)){
/***********Возвращаем деньги************/
if($tu['Status'] < 4){
$t = $r_m->GetByID($tu['TaskId']);
if(!empty($t)){
$t = $r_m->Update(array( 'Id' => $t['Id'], 'Balans' => $t['Balans'] + $tu['AmountPer']),TRUE);
}
}
/***************************************/
$dat['feed'] = $r_m->form_redirect_send('<div class="alert alert-danger"><strong>Вы допустили ошибку в отчете!</strong> Если Вы считаете, что все было правильно, Обратитесь к администратору сайта</div>');
}
else
$dat['feed'] = $r_m->form_redirect_send('<div class="alert alert-danger"><strong>Произошла ошибка!</strong> Обратитесь к администратору сайта</div>');
}
}
/***********************Ручной********************************/
else {
$ar = array(
'Id' => $tu['Id'],
'Otchet' => $_POST['otchet'],
'Status' => 2,
'OtchetDate' => time(),
);
if($r_m->UpdateU($ar)){
// Временная директория.
$tmp_path = $_SERVER['DOCUMENT_ROOT'] . '/assets/img/taskscreenshot/old/';
// Постоянная директория.
$path = $_SERVER['DOCUMENT_ROOT'] . '/assets/img/taskscreenshot/new/';
if (!empty($_POST['images'])) {
foreach ($_POST['images'] as $row) {
$filename = preg_replace("/[^a-z0-9\.-]/i", '', $row);
if (!empty($filename) && is_file($tmp_path . $filename)) {
$db = new db(dbHost, dbUser, dbPass, dbName);
$hgtfrd = $tu['Id'];
$db->query("INSERT INTO mod_task_screenshot (`task_id`, `filename`) VALUES('$hgtfrd', '$filename')");
// Перенос оригинального файла
rename($tmp_path . $filename, $path . $filename);
// Перенос превью
//$file_name = pathinfo($filename, PATHINFO_FILENAME);
// $file_ext = pathinfo($filename, PATHINFO_EXTENSION);
//$thumb = $file_name . '-thumb.' . $file_ext;
// rename($tmp_path . $thumb, $path . $thumb);
}
}
}
//file_put_contents(F.'core/mav/task_log_otchet', " Айди отчета юзера: ".$tu['Id']." Юзера айди: ".$GLOBALS['uid']." В отчете указал: ".$_POST['otchet']." \n\n", FILE_APPEND);
$dat['feed'] = '<div class="alert alert-success">Задание отправлено на проверку!</div>';
$dat['feed'] = $r_m->form_redirect_send($dat['feed']);
}
else
$dat['feed'] = $r_m->form_redirect_send('<div class="alert alert-danger"><strong>Произошла ошибка!</strong> Проверьте данные и повторите попытку</div>');
}
}
else
$dat['feed'] = $r_m->form_redirect_send('<div class="alert alert-danger"><strong>Произошла ошибка!</strong> Проверьте данные и повторите попытку</div>');
}
elseif(isset($_POST['TaskDel'])){
$tu = $r_m->GetByIDU($_POST['TaskDel'],$GLOBALS['uid']);
if(!empty($tu)){
if($r_m->DeleteU($_POST['TaskDel'])){
if($tu['Status'] < 4){
$t = $r_m->GetByID($tu['TaskId']);
if(!empty($t)){
$t = $r_m->Update(array( 'Id' => $t['Id'], 'Balans' => $t['Balans'] + $tu['AmountPer']),TRUE);
}
}
$dat['feed'] = $r_m->form_redirect_send('<div class="alert alert-success">Вы отказались от выполнения задания!</div>','/user/task');
}
else
$dat['feed'] = $r_m->form_redirect_send('<div class="alert alert-danger"><strong>Произошла ошибка!</strong> Проверьте данные и повторите попытку.</div>');
}
else
$dat['feed'] = $r_m->form_redirect_send('<div class="alert alert-danger"><strong>Произошла ошибка!</strong> Проверьте данные и повторите попытку.</div>');
}
/***********************up_ins***************************/
if(isset($_POST['Rat'],$_POST['RatOk'])){
$tu = $r_m->GetByIDU($_POST['RatOk'],$GLOBALS['uid']);
if(!empty($tu) && ((int)$tu['Rat']) === 0){
$ar = array(
'Id' => $tu['Id'],
'Rat' => ((int)$_POST['Rat'] > 0) ? '1' : '-1',
);
if($r_m->UpdateU($ar))
$dat['feed'] = $r_m->form_redirect_send('<div class="alert alert-success">Вы оценили задание!</div>');
else
$dat['feed'] = $r_m->form_redirect_send('<div class="alert alert-danger"><strong>Произошла ошибка!</strong> Проверьте данные и повторите попытку</div>');
}
else
$dat['feed'] = $r_m->form_redirect_send('<div class="alert alert-danger"><strong>Произошла ошибка!</strong> Проверьте данные и повторите попытку</div>');
}
/****************************************/
$dat['item'] = NULL;
$dat['u'] = FALSE;
$t = $r_m->ChBlokComm();
if(!empty($t)){
$dat['ChBlok'] = $t['Blok'];
$dat['ChBlokComm'] = $t['Comm'];
}
else
$dat['ChBlok'] = FALSE;
unset($t);
if(!$dat['ChBlok'] && !empty($upar)){
if(strpos($upar, 'u') === 0){
$upar = trim($upar,'u');
$view = F.'pages/user/mav/task_view_item_my.php';
$dat['item'] = $r_m->GetByIDU($upar);
if($dat['item']['UserId'] != $GLOBALS['uid']){
$dat['item'] = NULL; //e404();
}
}
else
$dat['item'] = $r_m->GetByID($upar);
}
}
$dat['Title'] = empty($dat['item']) ? 'Задания' : 'Задание №'.$dat['item']['Id'];
$r_m->views($view, $dat);
if(!empty($aj))
die();
}