Просмотр файла menu/tasks.php

Размер файла: 19.46Kb
<?php
#############################################
# 0JXRgdC70Lgg0YLRiyDRh9C40YLQsNC10YjRjCDRj #
# dGC0L4g0YHQvtC+0LHRidC10L3QuNC1LCDQt9C90L #
# DRh9C40YIg0YLRiyDQvdC10LzQvdC+0LPQviDQt9C #
#          90LDQtdGI0YwgUEhQIQ==            #
#__---------------------------------------__#
#__        0JrQu9C40Log0JrQu9GD0LE=       __#
#  ---------------------------------------  #
# 0JDQstGC0L7RgCA6IE1vcmdhbg==              #
# SUNRIDog0L3QtSDRgdC60LDQttGDIHhE          #
#                                           #
#############################################

require '../inc/start.php';
require '../inc/regvars.php';
require '../inc/db.php';
require '../inc/config.php';
require '../inc/funct.php';
require '../inc/antidos.php';
require '../inc/gzip.php';
require '../inc/header.php';

only_reg('/aut.php?',true);

if($user_prof['admin']<$config['enable_tasks']){location('menu/index.php');}

$title = 'Задания';
require '../inc/head.php';

 switch($mode = (!empty($_GET['mode'])) ? $_GET['mode'] : null)
{
default:
echo '<div class="sec">
<b>Задания</b>
</div><div class="vstavka">
<div class="ad"><img src="/pic/add.png"/> <a href="tasks.php?mode=add">Добавить задание</a></div>
<div class="ad"><img src="/pic/logs.png"/> <a href="tasks.php?mode=all">Все задания</a>('.mysql_result(query("SELECT COUNT(*) FROM `$db[prefix]tasks` WHERE `status` = '3'"),0).')</div>
<div class="ad"><img src="/pic/user.gif"/> <a href="tasks.php?mode=all&user='.$user_prof['id'].'">Мои</a>('.mysql_result(query("SELECT COUNT(*) FROM `$db[prefix]tasks` WHERE `user`='$user_prof[id]'"),0).')</div>';

if($user_prof['admin'] >= 2)
 {
 echo '<br />
<div class="ad"><img src="/pic/admin.png"/> <a href="tasks.php?mode=moder">Модерировать</a>('.mysql_result(query("SELECT COUNT(*) FROM `$db[prefix]tasks` WHERE `status` = '1'"),0).')</div>';
 }
#<div class="ad"><img src="/pic/"/> <a href="tasks.php?mode="></a></div>

break;
#######################################
 case 'add':
echo '<div class="sec">
<a href="tasks.php">Задания</a> / <b>Добавления задания</b>
</div><div class="vstavka">';

if(isset($_GET['confirm']) && $_GET['confirm'] == 'yes')
 {

 $name = obr($_POST['name'],'string',255);
 $credits = obr($_POST['credits'],'integer',11);
 $text = obr($_POST['text'],'string',750);
 if(!empty($name) && $credits >= $config['min_task_credits'] && !empty($text))
  {
  if($user_prof['in_bank'] >= $credits)
   {
   if(($sitetime - mysql_result(query("SELECT MAX(date) FROM `$db[prefix]tasks` WHERE `user` = '$user_prof[id]'"),0)) > 60)
    {
    if(query("INSERT INTO `$db[prefix]tasks` SET `user` = '$user_prof[id]',`date` = '$sitetime',`status` = '1',`name` = '$name',`text` = '$text',`credits` = '$credits',`ip` = '$_ip',`ua` = '$_ua'"))
     {

     echo 'Задание отправлено на модерацию<br />
<a href="tasks.php">Далее&gt;&gt;&gt;</a>';
     }else{echo 'Неизвестная ошибка!<br />
<a href="tasks.php?mode=add">&lt;&lt;&lt;Назад</a>';}
    }else{echo 'Слишком быстро!<br />
<a href="tasks.php?mode=add">&lt;&lt;&lt;Назад</a>';}
   }else{echo 'Недостаточно кредитов!<br />
<a href="tasks.php?mode=add">&lt;&lt;&lt;Назад</a>';}
  }else{echo 'Заполните все поля верно!<br />
<a href="tasks.php?mode=add">&lt;&lt;&lt;Назад</a>';}
 }
else
 {
 echo '<form action="tasks.php?mode=add&confirm=yes" method="POST" class="ad">
Название : <br />
<input name="name" type="text" maxlength="255"><br />
Награда (в кр., мин '.$config['min_task_credits'].') : <br />
<input name="credits" type="text" value="'.$config['min_task_credits'].'" size="6" maxlength="7"><br />
Задание : <br />
<textarea name="text" rows="5" cols="20"></textarea><br />
<input type="submit" value="Добавить">
</form><br />
<div class="ad"><b>Внимание!</b><br />
Все задания проходят обязателььную модерацию<br />
Попробуйте максимально точно указать что вам нужно<br />
Кредиты для оплаты должны находиться в банке!</div>';
 }

break;
#######################################
 case 'moder':

if($user_prof['admin'] < 2)location('menu/tasks.php');

echo '<div class="sec">
<a href="tasks.php">Задания</a> / <b>Модерирование</b>
</div><div class="vstavka">';

$tasks = mysql_result(query("SELECT COUNT(*) FROM `$db[prefix]tasks` WHERE `status`='1'"),0);
if($tasks>0)
{

if(!empty($_GET['tid']))
{
$tid = obr($_GET['tid'],'integer');
$res = query("SELECT * FROM `$db[prefix]tasks` WHERE `id` = '$tid'");
if(mysql_num_rows($res) > 0)
{
$task = mysql_fetch_array($res);

echo '<b>Задание № '.$tid.'</b> - <a href="tasks.php?mode=task&tid='.$tid.'"><b>'.$task['name'].'</b></a><br />';

if(isset($_GET['act']))
{

$act = str_replace('1','3',abs(intval($_GET['act'])));

if(query("UPDATE `$db[prefix]tasks` SET `status` = '$act' WHERE `id` = '$tid'"))
 {
 echo 'Успешно '.($act == '3' ? 'промодерировано' : 'недопущено').'<br />
<a href="tasks.php?mode=moder">Далее&gt;&gt;&gt;</a>';
 }else{echo 'Ошибка';}

}else
{
echo 'Автор : '.userlogin($task['user'],1,1,$mfvl,1,$user_prof['set_econom_traf']).'<br />
<br />
'.smiles(bb_code($task['text'])).'<br />
<br />
За выполнение обещано <b>'.$task['credits'].'</b> '.postfix($task['credits']).'<br />
&raquo;Задание <a href="tasks.php?mode=moder&tid='.$tid.'&act=1">Промодерировано</a> | <a href="tasks.php?mode=moder&tid='.$tid.'&act=0">Недопущено</a>';
}
}else{location('menu/tasks.php?mode=moder&tid='.mysql_result(query("SELECT id FROM `$db[prefix]tasks` WHERE `status` = '1' ORDER BY RAND() LIMIT 0,1"),0));}
}else{location('menu/tasks.php?mode=moder&tid='.mysql_result(query("SELECT id FROM `$db[prefix]tasks` WHERE `status` = '1' ORDER BY RAND() LIMIT 0,1"),0));}

}else{echo 'Модерировать нечего =(';}

break;
#######################################
 case 'all':

$sec = 'Задания';

$where = 'WHERE `status` = "3"';

if($user_prof['admin'] >= 2)$where = null;

$get_user = null;
$uid = 0;

if(!empty($_GET['user']))
{
$uid = obr($_GET['user'],'integer');
$res_u = query("SELECT login FROM `$db[prefix]users` WHERE `id` = '$uid'");
if(mysql_num_rows($res_u) > 0 && ($user_prof['admin'] >= 2 || $user_prof['id'] == $uid))
 {
 $sec .= ', пользователя '.mysql_result($res_u,0);
 $get_user = '&user='.$uid;
 $where .= (!empty($where) ? 'AND' : 'WHERE')." `user` = '$uid'";
 }
}

echo '<div class="sec">
<a href="tasks.php">Задания</a> / <b>'.$sec.'</b>
</div><div class="vstavka">';

$tasks = mysql_result(query("SELECT COUNT(*) FROM `$db[prefix]tasks` $where"),0);
if($tasks > 0)
{
$str = ceil($tasks/$set_on_page);
if($page > $str)location('menu/tasks.php?mode=all'.$get_user);

sorting(array('date'=>'дате','user'=>'пользователю','credits'=>'кредитам'),'credits','tasks.php?mode=all&page='.$page.'&sort={$sort}'.$get_user);

$res_t = query("SELECT id,name,user,date,credits,status FROM `$db[prefix]tasks` $where ORDER BY `$sort` DESC LIMIT $p_str,$set_on_page");

$num = $p_str;
  while($task = mysql_fetch_array($res_t))
 {
 $num ++;
 echo '<div class="ie"><b>'.$num.'.</b> <a href="tasks.php?mode=task&tid='.$task['id'].'"><b>'.$task['name'].'</b></a> - <b>'.$task['credits'].'</b>';
 if($sort == 'user')echo ', '.userlogin($task['user'],1,1,$mfvl,1,$user_prof['set_econom_traf']);
 if($user_prof['admin'] >= 2 || $uid == $user_prof['id'])
  {
  if($task['status'] == 1)echo ', <span class="zero">На модерации</span>';
  elseif($task['status'] == 0)echo ', <span class="zero">Недопущено</span>';
  elseif($task['status'] == 2)echo ', <span class="zero">Отключено</span>';
  }
 echo '</div>';
 }

 navigator($str,$page,'tasks.php','mode=all&sort='.$sort.$get_user,true,true);

}else{echo 'Заданий нет';}

break;
#######################################
 case 'task':

if(empty($_GET['tid']))location('menu/tasks.php');

$where = 'AND `status` = \'3\'';

if($user_prof['admin'] >= 2)$where = null;

$tid = obr($_GET['tid'],'integer');
$res = query("SELECT * FROM `$db[prefix]tasks` WHERE `id` = '$tid' $where");

if(mysql_num_rows($res) == 0)location('menu/tasks.php');

$task = mysql_fetch_array($res);

echo '<div class="sec">
<a href="tasks.php">Задания</a> / <a href="tasks.php?mode=task&tid='.$tid.'"><b>'.$task['name'].'</b></a>
</div><div class="vstavka">';

 switch($act = (!empty($_GET['act'])) ? $_GET['act'] : null)
{
default:

if(mysql_result(query("SELECT in_bank FROM `$db[prefix]users` WHERE `id` = '$task[user]'"),0) < $task['credits'])
 {
 query("UPDATE `$db[prefix]tasks` SET `status` = '2' WHERE `id` = '$tid'");
 echo '<div class="zero">За выполнение данного задания, заказчик не сможет расплатиться!</div>';
 }

if($task['status'] == 1)echo '<div class="zero">Задание находиться на модерации!</div>';
elseif($task['status'] == 0)echo '<div class="zero">Задание недопущено!</div>';
elseif($task['status'] == 2)echo '<div class="zero">Задание отключено, добавление сообщений невозможно!</div>';

echo 'Заказчик : '.userlogin($task['user'],1,1,$mfvl,1,1).'<br />
Добавлено : '.formatdate($task['date']).'<br />
Обещано за выполнение задания : <b>'.$task['credits'].'</b> '.postfix($task['credits']).'<br />';

echo '<b>Описание задания</b> : <br />
'.smiles(bb_code($task['text'])).'<br />';

$awards = explode('|',$task['awards']);

#array_dump($awards);

$ca = count($awards);

if($ca > 1)
{
echo '<b>Награжденные пользователи</b> : ';
 for($i = 0;$i < $ca; $i++)
{
if(empty($awards[$i]))continue;
echo userlogin($awards[$i],1,1,$mfvl,1,$user_prof['set_econom_traf']).' &nbsp;';
}

}

if($user_prof['admin'] >= 2 || $task['user'] == $user_prof['id'])
 {
 echo '<div class="ad"><img src="/pic/element.png"/> <a href="tasks.php?mode=task&tid='.$tid.'&act=edit">Изменить</a><br /></div>';
  echo '<div class="ad"><img src="/pic/element.png"/> <a href="tasks.php?mode=task&tid='.$tid.'&act=del">Удалить</a><br /></div>';
 echo '<span class="info">('.strtok($task['ua'],' ').' - '.$task['ip'].')</span>';
 }

$c_mess = mysql_result(query("SELECT COUNT(*) FROM `$db[prefix]tasks_mess` WHERE `tid` = '$tid'"),0);

echo '<hr/>
<b>Сообщения по теме</b>(<b>'.$c_mess.'</b>)<br />';


if($c_mess > 0)
{

$res = query("SELECT * FROM `$db[prefix]tasks_mess` WHERE `tid` = '$tid' ORDER BY `date` DESC");
$num = 0;
 while($mess = mysql_fetch_array($res))
{
$num ++;
echo '<div class="ie"><b>'.$num.'.</b> '.userlogin($mess['user'],1,1,$mfvl,1,$user_prof['set_econom_traf']).' '.($task['user'] == $user_prof['id'] && $user_prof['id'] != $mess['user'] && !in_array($mess['user'],$awards) ? '[<a href="tasks.php?mode=task&tid='.$tid.'&act=user&uid='.$mess['user'].'">наградить</a>]' : null).' ('.formatdate($mess['date']).')<br />
'.smiles(bb_code($mess['text'])).'<br />
'.($user_prof['admin'] >= 2 || $mess['user'] == $user_prof['id'] ? '<span class="info">('.strtok($mess['ua'],' ').' - '.$mess['ip'].')</span><br />' : null).'
'.($user_prof['admin'] >= 2 || $task['user'] == $user_prof['id'] ? '[<a href="tasks.php?mode=task&tid='.$tid.'&act=comm_del&cid='.$mess['id'].'">удал.</a>]' : null).'</div>';
}

}else{echo 'Сообщений нет';}

if($task['status'] == 3)echo '<hr/>
<form action="tasks.php?mode=task&tid='.$tid.'&act=add" method="POST" class="ad">
Сообщение : <br />
<textarea name="text" rows="3" cols="15"></textarea><br />
<input type="submit" value="Добавить">
</form>';


break;
###################
 case 'add':

if($task['status'] != 3)location('menu/tasks.php');

if(!empty($_POST['text']))
 {

 $text = obr($_POST['text'],'string',500);
 if(($sitetime - mysql_result(query("SELECT MAX(date) FROM `$db[prefix]tasks_mess` WHERE `user` = '$user_prof[id]'"),0)) > 60)
  {

  if(query("INSERT INTO `$db[prefix]tasks_mess` SET `tid` = '$tid',`date` = '$sitetime',`user` = '$user_prof[id]',`text` = '$text',`ip` = '$_ip',`ua` = '$_ua'"))
   {
   echo 'Ваше сообщение добавлено<br />
<a href="tasks.php?mode=task&tid='.$tid.'">Далее&gt;&gt;&gt;</a>';
   }else{echo 'Неизвестная ошибка!<br />
<a href="tasks.php?mode=task&tid='.$tid.'&act=add">&lt;&lt;&lt;Назад</a>';}
  }else{echo 'Слишком быстро!<br />
<a href="tasks.php?mode=task&tid='.$tid.'&act=add">&lt;&lt;&lt;Назад</a>';}

 }
else
 {
 echo '<form action="tasks.php?mode=task&tid='.$tid.'&act=add" method="POST" class="ad">
Сообщение : <br />
<textarea name="text" rows="5" cols="20"></textarea><br />
<input type="submit" value="Добавить">
</form>';
 }

break;
###################
 case 'comm_del':

if($user_prof['admin'] < 2 && $task['user'] != $user_prof['id'])location('menu/tasks.php');

if(empty($_GET['cid']))location('menu/tasks.php');

$cid = obr($_GET['cid'],'integer');

$res = query("SELECT id FROM `$db[prefix]tasks_mess` WHERE `id` = '$cid' AND `tid` = '$tid'");

if(mysql_num_rows($res) == 0)location('menu/tasks.php');

query("DELETE FROM `$db[prefix]tasks_mess` WHERE `id` = '$cid'");

location('menu/tasks.php?mode=task&tid='.$tid);

break;
###################
 case 'user':

if($task['user'] != $user_prof['id'] || $task['status'] != 3)location('menu/tasks.php');

if(empty($_GET['uid']))location('menu/tasks.php');

$uid = obr($_GET['uid'],'integer');

$res = query("SELECT login FROM `$db[prefix]users` WHERE `id` = '$uid'");

if(mysql_num_rows($res) == 0 || in_array($uid,explode('|',$task['awards'])))location('menu/tasks.php');

if($user_prof['in_bank'] >= $task['credits'])
 {

 if(!empty($_GET['confirm']) && $_GET['confirm'] == 'yes')
  {

  if(query("UPDATE `$db[prefix]users` SET `in_bank` = in_bank - $task[credits] WHERE `id` = '$user_prof[id]'") == true && query("UPDATE `$db[prefix]users` SET `in_bank` = in_bank + $task[credits] WHERE `id` = '$uid'") && query("UPDATE `$db[prefix]tasks` SET `awards` = '$task[awards]|$uid' WHERE `id` = '$tid'"))
   {
   echo 'Пользователь успешно награжден<br />
<a href="tasks.php?mode=task&tid='.$tid.'">Далее&gt;&gt;&gt;</a>';
   }else{echo 'Ошибка!';}

  }
 else
  {
  echo 'Наградить пользователя <b>'.mysql_result($res,0).'</b> за выполнение задания<br />
<center><a href="tasks.php?mode=task&tid='.$tid.'&act=user&uid='.$uid.'&confirm=yes">Да</a> | <a href="tasks.php?mode=task&tid='.$tid.'">Нет</a></center>';
  }

 }
else{echo 'У вас недостаточно кредитов!';}

break;
###################
 case 'edit':

if($user_prof['admin'] < 2 && $task['user'] != $user_prof['id'])location('menu/tasks.php');

if(isset($_GET['confirm']) && $_GET['confirm'] == 'yes')
 {

 $name = obr($_POST['name'],'string',255);
 $credits = obr($_POST['credits'],'integer',11);
 $text = obr($_POST['text'],'string',750);

 $status = $task['status'];

 $sstatus = obr($_POST['status'],'integer',1);

 if($user_prof['admin'] >= 2)$status = $sstatus;
 elseif($task['status'] >= 2 && ($sstatus == 2 || $sstatus == 3))$status = $sstatus;


 if(!empty($name) && $credits >= $config['min_task_credits'] && !empty($text))
  {
  if($user_prof['in_bank'] >= $credits)
   {
   if(query("UPDATE `$db[prefix]tasks` SET `status`='1',`name` = '$name',`text` = '$text',`credits` = '$credits',`status` = '$status' WHERE `id` = '$tid'"))
    {
    echo 'Задание изменено<br />
<a href="tasks.php?mode=task&tid='.$tid.'">Далее&gt;&gt;&gt;</a>';
    }else{echo 'Неизвестная ошибка!<br />
<a href="tasks.php?mode=task&tid='.$tid.'&act=edit">&lt;&lt;&lt;Назад</a>';}
    }else{echo 'Недостаточно кредитов!<br />
<a href="tasks.php?mode=task&tid='.$tid.'&act=edit">&lt;&lt;&lt;Назад</a>';}
  }else{echo 'Заполните все поля верно!<br />
<a href="tasks.php?mode=task&tid='.$tid.'&act=edit">&lt;&lt;&lt;Назад</a>';}
 }
else
 {
 echo '<form action="tasks.php?mode=task&tid='.$tid.'&act=edit&confirm=yes" method="POST" class="ad">
Название : <br />
<input name="name" type="text" value="'.$task['name'].'" maxlength="255"><br />
Награда (в кр.) : <br />
<input name="credits" type="text" value="'.$task['credits'].'" size="6" maxlength="7"><br />
Задание : <br />
<textarea name="text" rows="5" cols="20">'.$task['text'].'</textarea><br />';

if($user_prof['admin'] >= 2 || $task['status'] >= 2)
 {
echo 'Статус задания : <br />
<select size="1" name="status">';
 if($user_prof['admin'] >= 2)
  {
 echo '  <option value="0"'.($task['status'] == 0 ? ' selected="selected"' : null).'>Недопущено</option>
  <option value="1"'.($task['status'] == 1 ? ' selected="selected"' : null).'>На модерации</option>';
  }
echo '  <option value="2"'.($task['status'] == 2 ? ' selected="selected"' : null).'>Отключено</option>
  <option value="3"'.($task['status'] == 3 ? ' selected="selected"' : null).'>Включено</option>
</select><br />';
 }

echo '<input type="submit" value="Добавить">
</form><br />
<div class="ad"><b>Внимание!</b><br />
Все задания проходят обязателььную модерацию<br />
Попробуйте максимально точно указать что вам нужно<br />
Кредиты для оплаты должны находиться в банке!</div>';
 }

break;
###################
 case 'del':

if($user_prof['admin'] < 2 && $task['user'] != $user_prof['id'])location('menu/tasks.php');

if(isset($_GET['confirm']) && $_GET['confirm'] == 'yes')
 {
  if(query("DELETE FROM `$db[prefix]tasks_mess` WHERE `tid` = '$tid'") && query("DELETE FROM `$db[prefix]tasks`  WHERE `id` = '$tid'"))
   {
    echo 'Задание удалено<br />
<a href="tasks.php">Далее&gt;&gt;&gt;</a>';
  }else{echo 'Неизвестная ошибка!<br />
<a href="tasks.php?mode=task&tid='.$tid.'&act=del">&lt;&lt;&lt;Назад</a>';}
 }
else
 {
echo 'Вы действительно хотите удалить задание <b>'.$task['name'].'</b> со всеми сообщениями<br />
<center><a href="tasks.php?mode=task&tid='.$tid.'&act=del&confirm=yes">Да</a> | <a href="tasks.php?mode=task&tid='.$tid.'">Нет</a></center>';
 }

break;
/*
###################
 case '-':

break;
*/
}


break;
/*
#######################################
 case '-':
echo '<div class="sec">

</div><div class="vstavka">';


break;
*/
}

echo '<hr/>';
if(!empty($act) && isset($task['name']) && isset($tid))echo '...<a href="tasks.php?mode=task&tid='.$tid.'">'.$task['name'].'</a><br />';
if(!empty($mode))echo '..<a href="tasks.php">Задания</a><br />';
echo '.<a href="/menu/">Кабинет</a><br />';
require '../inc/foot.php';

################################################
# 0KHQutGA0LjQv9GCINC90LUg0L/QsNCx0LvQuNC6IQ== #
#   0KHRgtCw0LLRgNC+0L/QvtC70YwsIDIwMDkg0LMu   #
################################################

?>