<?php
/*
////////////////////////////////////////////////////////////////////////////////
// JohnCMS Content Management System //
// Официальный сайт сайт проекта: http://johncms.com //
// Дополнительный сайт поддержки: http://gazenwagen.com //
////////////////////////////////////////////////////////////////////////////////
// JohnCMS core team: //
// Евгений Рябинин aka john77 john77@gazenwagen.com //
// Олег Касьянов aka AlkatraZ alkatraz@gazenwagen.com //
// //
// Информацию о версиях смотрите в прилагаемом файле version.txt //
////////////////////////////////////////////////////////////////////////////////
// Модуль Кармы от FlySelf
*/
define('_IN_JOHNCMS', 1);
$headmod = 'karma';
$textl = 'Карма юзера';
require_once('../incfiles/core.php');
require_once('../incfiles/head.php');
if ($set_karma['on'] && $user_id) {
switch ($act) {
case 'user':
if (!$datauser['karma_off']) {
$error = array ();
$req = mysql_query("SELECT `ip`, `name`, `karma`, `plus_minus`, `rights` FROM `users` WHERE `id` = '$id' LIMIT 1");
if (!mysql_num_rows($req) || $id == $user_id)
$error[] = 'Пользователь не найден';
if (!$error) {
$res = mysql_fetch_assoc($req);
if ($res['rights'] && $set_karma['adm'])
$error[] = 'За администрацию голосовать запрещено';
if ($res['ip'] == $datauser['ip'])
$error[] = 'Накрутка кармы запрещена';
if ($datauser['total_on_site'] < $set_karma['karma_time'] || $datauser['postforum'] < $set_karma['forum'])
$error[] = 'В голосовании могут принимать участие только пользователи, пробывшие на сайте не менее '
. ($set_karma['time'] ? ($set_karma['karma_time'] / 3600) . ' час.' : ($set_karma['karma_time'] / 86400) . ' дн.') . ' и набравших на форуме ' . $set_karma['forum'] . ' пост.';
$count = mysql_result(mysql_query("SELECT COUNT(*) FROM `karma_users` WHERE `user_id` = '$user_id' AND `karma_user` = '$id' AND `time` > '"
. ($realtime - 86400) . "'"), 0);
if ($count)
$error[] = 'За пользователя можно отдавать голос раз в 24 часа';
$sum = mysql_result(mysql_query("SELECT SUM(`points`) FROM `karma_users` WHERE `user_id` = '$user_id' AND `time` >= '"
. $datauser['karma_time'] . "'"), 0);
if (($set_karma['karma_points'] - $sum) <= 0)
$error[] = 'Лимит голосов на сегодня исчерпан. Голоса будут начислены '
. date('d.m.y в H:i:s', ($datauser['karma_time'] + 86400));
}
if ($error) {
$error[] = '<a href="anketa.php?id=' . $id . '">Вернуться</a>';
echo display_error($error);
} else {
if (isset($_POST['submit'])) {
$text = trim($_POST['text']);
$type = intval($_POST['type']) ? 1 : 0;
$points = abs(intval($_POST['points']));
if (!$points || $points > ($set_karma['karma_points'] - $sum))
$points = 1;
$text = mysql_real_escape_string(mb_substr($text, 0, 500));
mysql_query("INSERT INTO `karma_users` SET `user_id` = '$user_id', `name` = '$login', `karma_user` = '$id', `points` = '$points', `type` = '$type', `time` = '$realtime', `text` = '$text'");
$plm = explode('|', $res['plus_minus']);
if ($type) {
$karma = $res['karma'] + $points;
$plm[0] = $plm[0] + $points;
} else {
$karma = $res['karma'] - $points;
$plm[1] = $plm[1] + $points;
}
$plus_minus = $plm[0] . '|' . $plm[1];
mysql_query("UPDATE `users` SET `karma`='$karma', `plus_minus`='$plus_minus' WHERE `id` = '$id' LIMIT 1");
echo '<div class="gmenu">Выполнено!<br /><a href="anketa.php?id=' . $id . '">Продолжить</a></div>';
} else {
echo '<div class="phdr"><b>Отдаем голос за ' . $res['name'] . '</b></div><form action="karma.php?act=user&id=' . $id
. '" method="post"><div class="gmenu"><b>Тип голоса:</b><br />
<input name="type" type="radio" value="1" checked="checked"/> Положительный<br /><input name="type" type="radio" value="0"/> Отрицательный<br /><b>Количество голосов:</b><br /><select size="1" name="points">';
for ($i = 1; $i < ($set_karma['karma_points'] - $sum + 1); $i++) {
echo '<option value="' . $i . '">' . $i . '</option>';
}
echo
'</select><b><br />Комментарий:</b><br /><input name="text" type="text" value=""/><br /><small>максимум 500 символов</small><p><input type="submit" name="submit" value="Голосовать"/></p></div></form><div class="list2"><a href="anketa.php?id='
. $id . '">Анкета пользователя</a></div>';
}
}
} else {
echo display_error('Вам запрещено отдавать голоса за пользователей<br /><a href="anketa.php?id=' . $id . '">Вернуться</a>');
}
break;
case 'delete':
if ($rights == 9) {
$type = isset($_GET['type']) ? abs(intval($_GET['type'])) : NULL;
$del = isset($_GET['del']) ? intval($_GET['del']) : NULL;
$req = mysql_query("SELECT * FROM `karma_users` WHERE `id`='$del' AND `karma_user` = '$id' LIMIT 1");
if (mysql_num_rows($req)) {
if (isset($_GET['yes'])) {
$res = mysql_fetch_assoc($req);
$user = mysql_fetch_assoc(mysql_query("SELECT `karma`, `plus_minus` FROM `users` WHERE `id` = '$id' LIMIT 1"));
$plm = explode('|', $user['plus_minus']);
if ($res['type']) {
$karma = $user['karma'] - $res['points'];
$plus_minus = ($plm[0] - $res['points']) . '|' . $plm[1];
} else {
$karma = $user['karma'] + $res['points'];
$plus_minus = $plm[0] . '|' . ($plm[1] - $res['points']);
}
mysql_query("DELETE FROM `karma_users` WHERE `id` = '$del' LIMIT 1");
mysql_query("UPDATE `users` SET `karma`='$karma', `plus_minus`='$plus_minus' WHERE `id` = '$id' LIMIT 1");
header('Location: karma.php?id=' . $id . '&type=' . $type);
} else {
echo '<p>Вы действительно хотите удалить отзыв?<br/>';
echo '<a href="karma.php?act=delete&id=' . $id . '&del='.$del.'&type=' . $type . '&yes">Удалить</a> | <a href="karma.php?id=' . $id . '&type=' . $type . '">Отмена</a></p>';
}
}
}
break;
case 'clean':
if ($id && $rights == 9) {
if (isset($_GET['yes'])) {
mysql_query("DELETE FROM `karma_users` WHERE `karma_user`='$id'");
mysql_query("UPDATE `users` SET `karma`='0', `plus_minus`='0|0' WHERE `id` = '$id' LIMIT 1");
header('Location: karma.php?id=' . $id);
} else {
echo '<p>Вы действительно хотите удалить все отзывы о пользователи?<br/>';
echo '<a href="karma.php?act=clean&id=' . $id . '&yes">Удалить</a> | <a href="karma.php?id='
. $id . '">Отмена</a></p>';
}
}
break;
case 'new':
echo '<div class="phdr"><b>Новые отзывы</b></div>';
$total = mysql_result(mysql_query("SELECT COUNT(*) FROM `karma_users` WHERE `karma_user` = '$user_id' AND `time` > "
. ($realtime - 86400)), 0);
if ($total) {
$req = mysql_query("SELECT * FROM `karma_users` WHERE `karma_user`='$user_id' AND `time` > "
. ($realtime - 86400) . " ORDER BY `time` DESC LIMIT $start, $kmess");
while ($res = mysql_fetch_assoc($req)) {
echo ($i % 2) ? '<div class="list2">' : '<div class="list1">';
echo $res['type'] ? '<span class="green">+' . $res['points'] . '</span> ' : '<span class="red">-' . $res['points'] . '</span> ';
echo $user_id == $res['user_id'] || !$res['user_id'] ? '<b>' . $res['name'] . '</b>' : '<a href="anketa.php?id=' . $res['user_id'] . '"><b>' . $res['name'] . '</b></a>';
echo ' <span class="gray">(' . date("d.m.y / H:i", $res['time'] + $set_user['sdvig'] * 3600) . ')</span>';
if (!empty($res['text']))
echo '<div class="sub">' . checkout($res['text']) . '</div>';
echo '</div>';
++$i;
}
} else {
echo '<div class="menu">Список пуст</div>';
}
echo '<div class="phdr">Новых отзывов: ' . $total . '</div>';
if ($total > $kmess) {
echo '<p>' . pagenav('karma.php?act=new&', $start, $total, $kmess) . '</p>';
echo '<p><form action="karma.php" method="get"><input type="hidden" name="act" value="new"/><input type="text" name="page" size="2"/><input type="submit" value="К странице >>"/></form></p>';
}
echo '<div class="list2"><a href="anketa.php?">Моя анкета</a></div>';
break;
default:
if ($id && $id != $user_id) {
$req = mysql_query("SELECT `name`, `karma`, `plus_minus` FROM `users` WHERE `id` = '$id' LIMIT 1");
if (!mysql_num_rows($req)) {
echo display_error('Пользователь не найден');
require_once('../incfiles/end.php');
exit;
}
$user = mysql_fetch_assoc($req);
} else {
$user = $datauser;
$id = $user_id;
}
$exp = explode('|', $user['plus_minus']);
echo '<p>';
$type = abs(intval($_GET['type']));
$sql = '';
switch ($type) {
case 2:
echo '<a href="karma.php?id=' . $id . '&type=0">Все</a> | <a href="karma.php?id=' . $id . '&type=1">Положительные</a> | Отрицательные';
$sql = ' AND `type` = 0';
break;
case 1:
echo '<a href="karma.php?id=' . $id . '&type=0">Все</a> | Положительные | <a href="karma.php?id=' . $id . '&type=2">Отрицательные</a>';
$sql = ' AND `type` = 1';
break;
default:
echo 'Все | <a href="karma.php?id=' . $id . '&type=1">Положительные</a> | <a href="karma.php?id=' . $id . '&type=2">Отрицательные</a>';
$type = 0;
}
echo '</p><div class="phdr"><b>Карма ' . $user['name'] . '</b> ' . $user['karma'] . ' (<span class="green">'
. $exp[0] . '</span>/<span class="red">' . $exp[1] . '</span>)</div>';
$total = mysql_result(mysql_query("SELECT COUNT(*) FROM `karma_users` WHERE `karma_user`='$id' $sql"), 0);
if ($total) {
$req = mysql_query("SELECT * FROM `karma_users` WHERE `karma_user`='$id' $sql ORDER BY `time` DESC LIMIT $start, $kmess");
while ($res = mysql_fetch_assoc($req)) {
echo ($i % 2) ? '<div class="list2">' : '<div class="list1">';
echo $res['type'] ? '<span class="green">+' . $res['points'] . '</span> ' : '<span class="red">-' . $res['points'] . '</span> ';
echo $user_id == $res['user_id'] || !$res['user_id'] ? '<b>' . $res['name'] . '</b>' : '<a href="anketa.php?id=' . $res['user_id'] . '"><b>' . $res['name'] . '</b></a>';
echo ' <span class="gray">(' . date("d.m.y / H:i", $res['time'] + $set_user['sdvig'] * 3600) . ')</span>';
if ($rights == 9)
echo ' <span class="red"><a href="karma.php?act=delete&id=' . $id . '&del=' . $res['id'] . '&type=' . $type . '">[X]</a></span>';
if (!empty($res['text']))
echo '<div class="sub">' . checkout($res['text']) . '</div>';
echo '</div>';
++$i;
}
} else {
echo '<div class="menu">Список пуст</div>';
}
echo '<div class="phdr">Всего отзывов: ' . $total . '</div>';
if ($total > $kmess) {
echo '<p>' . pagenav('karma.php?id=' . $id . '&type=' . $type . '&', $start, $total, $kmess) . '</p>';
echo '<p><form action="karma.php" method="get"><input type="hidden" name="id" value="' . $id . '"/><input type="hidden" name="type" value="' . $type
. '"/><input type="text" name="page" size="2"/><input type="submit" value="К странице >>"/></form></p>';
}
if ($rights == 9)
echo '<div class="func"><a href="karma.php?id=' . $id . '&act=clean">Сбросить карму</a></div>';
echo '<p><a href="anketa.php?id=' . $id . '">Анкета пользователя</a></p>';
}
}
require_once('../incfiles/end.php');
?>