Файл: CMS/gallery/battle.php
Строк: 391
<?php
define('CMS',TRUE);
define('ROOT','../');
include('../core/inc.php');
$is_admin = is_admin() ? true : false;
$error = '';
$id = !empty($_GET['id']) ? (int) $_GET['id'] : 0;
$mod = !empty($_GET['m']) ? (string) $_GET['m'] : '';
$page = !empty($_GET['page']) ? (int) $_GET['page'] : 1;
switch ($mod):
default:
show_header('Фото битвы');
$onpage = !empty($config['battle_num']) ? num($config['battle_num']) : 10;
if ($page > 1) $from = ($page - 1) * $onpage; else $from = 0;
$rows = $db->selectPage( $total, "SELECT * FROM ?_users_battle
ORDER BY `battle_time` DESC
LIMIT ?d, ?d", $from, $onpage);
if (!empty($rows) && $total > 0) {
foreach($rows as $row) {
?>
<div class="b">
<table width="100%" border="0">
<tr>
<td colspan="2">
Дуэль: <?=users_anketa($row['battle_user_1'])?> VS <?=users_anketa($row['battle_user_2'])?>
<div class="right"><?=get_date($row['battle_time'])?></div>
</td>
</tr>
<tr>
<td align="center" valign="middle">
<div id="gallery">
<a href="<?=gen_uri('battle', $row['battle_id'], 'page=' . $page . '&' . RND)?>">
<?=resize_image('upload/pictures/', $row['battle_link_1'], $config['preview_size'], '')?>
</a>
</div>
</td>
<td align="center" valign="middle">
<div id="gallery">
<a href="<?=gen_uri('battle', $row['battle_id'], 'page=' . $page . '&' . RND)?>">
<?=resize_image('upload/pictures/', $row['battle_link_2'], $config['preview_size'], '')?>
</a>
</div>
</td>
</tr>
<tr>
<td align="center" valign="middle">
<a href="<?=gen_uri('battle', $row['battle_id'], 'user=1&vote=down&rnd=' . $_SESSION['token'] . '&' . RND)?>">
<img src="../images/icons/1_14_down.png" class="icon" alt="Минус" />
</a> <big><b><?=format_num($row['battle_rating_1'])?></b></big>
<a href="<?=gen_uri('battle', $row['battle_id'], 'user=1&vote=up&rnd=' . $_SESSION['token'] . '&' . RND)?>">
<img src="../images/icons/1_14_up.png" class="icon" alt="Плюс" />
</a><br />
</td>
<td align="center" valign="middle">
<a href="<?=gen_uri('battle', $row['battle_id'], 'user=2&vote=down&rnd=' . $_SESSION['token'] . '&' . RND)?>">
<img src="../images/icons/1_14_down.png" class="icon" alt="Минус" />
</a> <big><b><?=format_num($row['battle_rating_2'])?></b></big>
<a href="<?=gen_uri('battle', $row['battle_id'], 'user=2&vote=up&rnd=' . $_SESSION['token'] . '&' . RND)?>">
<img src="../images/icons/1_14_up.png" class="icon" alt="Плюс" />
</a><br />
</td>
</tr>
<tr>
<td colspan="2">
<img src="../images/icons/comment.png" class="icon" alt="" />
<a href="<?=gen_uri('battle', $row['battle_id'], 'page=' . $page . '#comm')?>">Комментарии</a> (<?=num($row['battle_comm'])?>)
</td>
</tr>
</table>
</div>
<?php
}
}
else show_error('Дуэлей пока нет!');
$count = (int) $db->selectCell("SELECT COUNT(1) FROM ?_users_photos WHERE `photo_battle` = 1");
echo '<div class="b">';
echo '<a href="#up">' . icon('up.png') . '</a> ';
echo '<a href="' . gen_uri('battle_all', '', RND) . '">Желающие сразиться</a> (' . $count . ') / ';
echo '<a href="' . gen_uri('addphoto', '', RND) . '">Добавить фото</a><br /></div>';
break;
case 'battle':
$prs = parse_url($_SERVER['REQUEST_URI']);
$row = $db->selectRow("SELECT *,
(SELECT COUNT(1) FROM ?_users_bookmarks WHERE `book_path` = ?) AS `bookmarks`
FROM ?_users_battle WHERE `battle_id` = ? LIMIT 1;", $prs['path'], $id);
if (!empty($row)) {
if (!empty($_GET['vote'])) {
if ($is_logged || $config['photos_vote_guest'] == 1) {
$vote = check($_GET['vote']);
$user = !empty($_GET['user']) ? num($_GET['user']) : 0;
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if ($vote == 'up' || $vote == 'down') {
if ($user == 1 || $user == 2) {
$score = ($vote == 'up') ? 1 : -1;
if ($row['battle_user_1'] != $log && $row['battle_user_2'] != $log) {
$_IP = check( $_SERVER['REMOTE_ADDR'] );
if ($is_logged) {
$is_rated = (int) $db->selectCell("SELECT `rated_id` FROM ?_users_battle_rated
WHERE `rated_photo` = ? AND `rated_user` = ? LIMIT 1;", $id, $log);
$nick = check($log);
}
else {
$is_rated = (int) $db->selectCell("SELECT `rated_id` FROM ?_users_battle_rated
WHERE `rated_photo` = ? AND `rated_ip` = ? LIMIT 1;", $id, $_IP);
$nick = $config['guest_name'];
}
if ($is_rated < 1) {
$expiresrated = SITE_TIME + 3600 * $config['photos_exprated'];
$db->query("DELETE FROM ?_users_battle_rated WHERE `rated_time` < ?;", SITE_TIME);
$db->query("INSERT INTO ?_users_battle_rated (`rated_photo`, `rated_user`, `rated_ip`, `rated_time`)
VALUES (?, ?, ?, ?);", $id, $nick, $_IP, $expiresrated);
$result1 = ($row['battle_rating_1'] + $score);
$result2 = ($row['battle_rating_2'] + $score);
if ($user == 1) {
if ($result1 >= $config['battle_sum_votes']) {
$priv = "Поздравляем с победой в фото-дуэли против " . nickname($row['battle_user_2']);
$priv .= "nВаш приз составляет " . moneys($config['battle_add_money']) . ", а также ваш авторитет увеличен на ";
$priv .= num2name($config['battle_add_point'], $config['score_name']);
$priv .= "nЭто уведомление создано автоматически и отвечать на него не нужно.";
$db->query("UPDATE ?_users SET `users_point` = (`users_point` + ?), `users_money` = (`users_money` + ?), `users_newprivat` = (`users_newprivat` + 1) WHERE `users_login` = ? LIMIT 1;", $config['battle_add_point'], $config['battle_add_money'], $row['battle_user_1']);
$db->query("INSERT INTO ?_users_inbox (`inbox_user`, `inbox_author`, `inbox_text`, `inbox_time`)
VALUES (?, ?, ?, ?);", $row['battle_user_1'], $config['login'], $priv, SITE_TIME);
$db->query("DELETE FROM ?_users_battle WHERE `battle_id` = ?", $row['battle_id']);
$db->query("DELETE FROM ?_users_battle_rated WHERE `rated_photo` = ?", $row['battle_id']);
$inSes->addMessage('Ваш голос стал завершающим! Фотография победила на дуэли! Владелец получил приз!', 'ok');
}
else {
$db->query("UPDATE ?_users_battle SET `battle_rating_1` = (`battle_rating_1` + ?) WHERE `battle_id` = ?;", $score, $id);
$inSes->addMessage('Ваша оценка принята! Рейтинг фотографии: ' . format_num($result1), 'ok');
}
}
else if ($user == 2) {
if ($result2 >= $config['battle_sum_votes']) {
$priv = "Поздравляем с победой в фото-дуэли против " . nickname($row['battle_user_1']);
$priv .= "nВаш приз составляет " . moneys($config['battle_add_money']) . ", а также ваш авторитет увеличен на ";
$priv .= num2name($config['battle_add_point'], $config['score_name']);
$priv .= "nЭто уведомление создано автоматически и отвечать на него не нужно.";
$db->query("UPDATE ?_users SET `users_point` = (`users_point` + ?), `users_money` = (`users_money` + ?), `users_newprivat` = (`users_newprivat` + 1) WHERE `users_login` = ? LIMIT 1;", $config['battle_add_point'], $config['battle_add_money'], $row['battle_user_2']);
$db->query("INSERT INTO ?_users_inbox (`inbox_user`, `inbox_author`, `inbox_text`, `inbox_time`)
VALUES (?, ?, ?, ?);", $row['battle_user_2'], $config['login'], $priv, SITE_TIME);
$db->query("DELETE FROM ?_users_battle WHERE `battle_id` = ?", $row['battle_id']);
$db->query("DELETE FROM ?_users_battle_rated WHERE `rated_photo` = ?", $row['battle_id']);
$inSes->addMessage('Ваш голос стал завершающим! Фотография победила на дуэли! Владелец получил приз!', 'ok');
}
else {
$db->query("UPDATE ?_users_battle SET `battle_rating_2` = (`battle_rating_2` + ?) WHERE `battle_id` = ?;", $score, $id);
$inSes->addMessage('Ваша оценка принята! Рейтинг фотографии: ' . format_num($result2), 'ok');
}
}
else $inSes->addMessage('Ошибка! Неверно указан пользователь фотографии!');
}
else $inSes->addMessage('Ошибка! Вы уже оценивали данную битву!');
}
else $inSes->addMessage('Ошибка! Нельзя голосовать за свои фотографии!');
}
else $inSes->addMessage('Ошибка! Неверно указан пользователь фотографии!');
}
else $inSes->addMessage('Ошибка! Необходимо проголосовать за или против фотографии!');
}
else $inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
else $inSes->addMessage('Ошибка! Вы не авторизованы! Голосовать могут только обитатели сайта!');
gen_red('battle', $id, RND);
}
if ($is_logged) {
if (!empty($_POST['submit'])) {
$msg = !empty($_POST['text']) ? check($_POST['text']) : '';
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if (cms_strlen(trim($msg)) >= 5 && cms_strlen($msg) < 1000) {
if (is_quarantine($log)) {
if (is_flood($log)) {
$msg = antimat($msg);
$msg = smiles($msg);
$date = date('Y-m-d H:i:s', SITE_TIME);
$db->query("INSERT INTO ?_comments SET `comm_post` = ?, `comm_text` = ?, `comm_author` = ?, `comm_type` = 'battle', `comm_date` = ?, `comm_ip` = ?, `comm_ua` = ?", $id, $msg, $log, $date, $ip, $brow);
$db->query("UPDATE ?_users_battle SET `battle_comm` = (`battle_comm` + 1) WHERE `battle_id` = ?;", $id);
$db->query("UPDATE ?_users SET `users_allcomments` = (`users_allcomments` + 1), `users_point` = (`users_point` + ?), `users_money` = (`users_money` + ?) WHERE `users_login` = ?", $config['comm_add_point'], $config['comm_add_money'], $log);
$inSes->addMessage('Комментарий успешно добавлен!', 'ok');
gen_red('battle', $id, RND);
}
else $inSes->addMessage('Антифлуд! Разрешается отправлять сообщения раз в ' . flood_period() . ' секунд!');
}
else $inSes->addMessage('Карантин! Вы не можете писать в течении ' . round($config['karantin'] / 3600) . ' часов!');
}
else $inSes->addMessage('Ошибка! Слишком длинное или короткое сообщение!');
}
else $inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
if (!empty($_POST['del'])) {
if (is_admin()) {
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
$del = intar($_POST['del']);
if (!empty($del)) {
$del = is_array($del) ? $del : array($del);
$del = implode(',', $del);
$delcom = (int) $db->query("DELETE FROM ?_comments WHERE `comm_type` = 'battle'
AND `comm_id` IN (" . $del . ") AND `comm_post` = ?", $id);
$db->query("UPDATE ?_users_battle SET `battle_comm` = (`battle_comm` - ?) WHERE `battle_id` = ?;",$delcom, $id);
$inSes->addMessage('Выбранные комментарии успешно удалены!', 'ok');
gen_red('battle', $id, RND);
}
else $inSes->addMessage('Ошибка! Отстутствуют выбранные комментарии для удаления!');
}
else $inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
else $inSes->addMessage('Ошибка! Удалять комментарии могут только модераторы!');
}
}
show_header('Дуэль: ' . $row['battle_user_1'] . ' VS ' . $row['battle_user_2'] . ' - Фото битвы на ' . $config['site_name']);
?>
<div class="b">
<table width="100%" border="0">
<tr>
<td colspan="2">
Дуэль: <?=users_anketa($row['battle_user_1'])?> VS <?=users_anketa($row['battle_user_2'])?>
<div class="right"><?=get_date($row['battle_time'])?></div>
</td>
</tr>
<tr>
<td align="center" valign="middle">
<div id="gallery">
<a href="<?=gen_uri('battle', $row['battle_id'], 'page=' . $page . '&' . RND)?>">
<?=resize_image('upload/pictures/', $row['battle_link_1'], $config['preview_size'], '')?>
</a>
</div>
</td>
<td align="center" valign="middle">
<div id="gallery">
<a href="<?=gen_uri('battle', $row['battle_id'], 'page=' . $page . '&' . RND)?>">
<?=resize_image('upload/pictures/', $row['battle_link_2'], $config['preview_size'], '')?>
</a>
</div>
</td>
</tr>
<tr>
<td align="center" valign="middle">
<a href="<?=gen_uri('battle', $id, 'user=1&vote=down&rnd=' . $_SESSION['token'] . '&' . RND)?>">
<img src="../images/icons/1_14_down.png" class="icon" alt="Минус" />
</a> <big><b><?=format_num($row['battle_rating_1'])?></b></big>
<a href="<?=gen_uri('battle', $id, 'user=1&vote=up&rnd=' . $_SESSION['token'] . '&' . RND)?>">
<img src="../images/icons/1_14_up.png" class="icon" alt="Плюс" />
</a><br />
</td>
<td align="center" valign="middle">
<a href="<?=gen_uri('battle', $id, 'user=2&vote=down&rnd=' . $_SESSION['token'] . '&' . RND)?>">
<img src="../images/icons/1_14_down.png" class="icon" alt="Минус" />
</a> <big><b><?=format_num($row['battle_rating_2'])?></b></big>
<a href="<?=gen_uri('battle', $id, 'user=2&vote=up&rnd=' . $_SESSION['token'] . '&' . RND)?>">
<img src="../images/icons/1_14_up.png" class="icon" alt="Плюс" />
</a><br />
</td>
</tr>
</table>
</div>
<?php
echo show_bookmarks('Дуэль: ' . $row['battle_user_1'] . ' VS ' . $row['battle_user_2'], '', $row['bookmarks']);
$comm_type = 'battle';
$comm_url = 'battle';
// Подключили комменты
include( MODULES_PATH . 'comments.inc.php' );
if ($is_logged) {
$form = new cmsForm(gen_uri('battle', $id, 'rnd=' . $_SESSION['token']), 'post');
$form->addTextarea('Напишите комментарий:', 'text', request('text'));
echo $form->Submit('Добавить', 'submit');
unset($form);
}
else {
show_login('Вы не авторизованы, для комментирования, необходимо');
}
echo '<div class="b">' . icon('return.png');
echo '<a href="' . gen_uri('battles', '', RND) . '">Фото-Битвы</a> | ';
echo '<a href="' . gen_uri('addphoto', '', RND) . '">Добавить фото</a> | ';
echo '<a href="' . gen_uri('index', '', RND) . '">Галерея</a><br /></div>';
}
else {
$inSes->addMessage('Ошибка! Данного изображения нет в базе');
gen_red('index', '', RND);
}
break;
case 'battle_all':
show_header('Фото битвы - Желающие сразиться');
echo '<div class="b">';
echo '<a href="#down">' . icon('down.png') . '</a> ';
if ($is_logged) {
echo '<a href="' . gen_users($log, 'album', '', RND) . '">Мои фото</a> | ';
}
echo '<a href="' . gen_uri('albums', '', RND) . '">Все альбомы</a>';
if (is_admin()) {
echo ' | <a href="' . gen_admin('?m=gallery&page=' . $page . '&' . RND) . '">Управление</a>';
}
echo '<br /></div>';
$onpage = !empty($config['photos_num']) ? num($config['photos_num']) : 10;
if ($page > 1) $from = ($page - 1) * $onpage; else $from = 0;
if ($is_logged) {
$rows = $db->selectPage( $total, "SELECT * FROM ?_users_photos
WHERE `photo_user` != ? AND `photo_battle` = '1'
ORDER BY `photo_time` DESC
LIMIT ?d, ?d", $log, $from, $onpage);
}
else {
$rows = $db->selectPage( $total, "SELECT * FROM ?_users_photos
WHERE `photo_battle` = '1'
ORDER BY `photo_time` DESC
LIMIT ?d, ?d", $from, $onpage);
}
if (!empty($rows) && $total > 0) {
foreach($rows as $row) {
$size = read_file( ROOTPATH . '/upload/pictures/' . $row['photo_link'] );
echo '<div class="b"><table><tr>';
echo '<td width="30%"><div id="gallery"><a href="' . gen_uri('photo', $row['photo_id'], 'page=' . $page . '&' . RND) . '">';
echo resize_image('upload/pictures/', $row['photo_link'], $config['preview_size'], $row['photo_title']) . '</a></div></td>';
echo '<td valign="top" width="70%" style="padding:5px;">' . icon('photos.png', 'icons');
echo '<b><a href="' . gen_uri('photo', $row['photo_id'], 'page=' . $page . '&' . RND) . '">'.$row['photo_title'].'</a></b> (' . $size . ') (' . format_num($row['photo_rating']) . ')<br />';
if (!empty($row['photo_text'])) {
echo bb_code($row['photo_text']).'<br />';
}
echo 'Добавлено: ' . users_anketa($row['photo_user']) . ' (' . get_date($row['photo_time']) . ')<br />';
echo '<a href="' . gen_uri('photo', $row['photo_id'], 'page=' . $page . '#comm') . '">Комментарии</a> (' . $row['photo_comments'] . ')';
//if ($is_logged && $log <> $row['photo_user']) {
echo '<br /><a href="' . gen_uri('add_battle', $row['photo_id'], RND) . '">Вызвать на дуэль »</a>';
//}
echo '</td></tr></table></div>';
}
echo show_pages('battle_all', RND, 'p');
echo '<div class="b">Всего фотографий: <b>' . $total . '</b><br /></div>';
}
else {
show_error('Фотографий нет, будь первым!');
}
echo '<div class="b">' . icon('return.png');
echo '<a href="' . gen_uri('battles', '', RND) . '">Фото-Битвы</a> | ';
echo '<a href="' . gen_uri('addphoto', '', RND) . '">Добавить фото</a> | ';
echo '<a href="' . gen_uri('index', '', RND) . '">Галерея</a><br /></div>';
break;
case 'add_battle':
if ($is_logged) {
if (!empty($id)) {
$data = $db->selectRow("SELECT * FROM ?_users_photos WHERE `photo_battle` = '1' AND `photo_id` = ?", $id);
if (!empty($data)) {
if ($data['photo_user'] <> $log) {
if (!empty($_GET['add_photo'])) {
$add = num($_GET['add_photo']);
$is_battle = (int) $db->selectCell("SELECT 1 FROM ?_users_battle
WHERE (`battle_photo_1` = ? AND `battle_photo_2` = ?)
OR (`battle_photo_1` = ? AND `battle_photo_2` = ?);", $add, $id, $id, $add);
if ($is_battle < 1) {
$user = $db->selectRow("SELECT * FROM ?_users_photos WHERE `photo_user` = ? AND `photo_id` = ?", $log, $add);
if (!empty($user)) {
//$time = (86400 * $config['battle_days']) + SITE_TIME; // Макс. время жизни дуэли
$lastid = (int) $db->query("INSERT INTO ?_users_battle SET `battle_time` = ?, `battle_photo_1` = ?, `battle_user_1` = ?, `battle_link_1` = ?, `battle_photo_2` = ?, `battle_user_2` = ?, `battle_link_2` = ?", SITE_TIME, $id, $data['photo_user'], $data['photo_link'], $add, $user['photo_user'], $user['photo_link']);
$inSes->addMessage('', 'ok');
gen_red('battle', $lastid, RND);
}
else $inSes->addMessage('Ошибка! Неверно указано фото!');
}
else $inSes->addMessage('Ошибка! Выбранное фото уже участвует в битве!');
}
show_header('Мои фото');
echo '<div class="b">Выберите свою фотографию из списка:</div>';
$onpage = !empty($config['photos_num']) ? num($config['photos_num']) : 10;
if ($page > 1) $from = ($page - 1) * $onpage; else $from = 0;
$rows = $db->selectPage( $total, "SELECT * FROM ?_users_photos
WHERE `photo_user` = ?
ORDER BY `photo_time` DESC
LIMIT ?d, ?d", $log, $from, $onpage);
if (!empty($rows) && $total > 0) {
foreach($rows as $row) {
$size = read_file( ROOTPATH . '/upload/pictures/' . $row['photo_link'] );
echo '<div class="b"><table><tr>';
echo '<td width="30%"><div id="gallery"><a href="/gallery/' . gen_uri('photo', $row['photo_id'], 'page=' . $page . '&' . RND) . '">';
echo resize_image('upload/pictures/', $row['photo_link'], $config['preview_size'], $row['photo_title']) . '</a></div></td>';
echo '<td valign="top" width="70%" style="padding:5px;">' . icon('photos.png', 'icons');
echo '<b><a href="/gallery/' . gen_uri('photo', $row['photo_id'], 'page=' . $page . '&' . RND) . '">'.$row['photo_title'].'</a></b> (' . $size . ') (' . format_num($row['photo_rating']) . ')<br />';
if (!empty($row['photo_text'])) {
echo bb_code($row['photo_text']).'<br />';
}
echo 'Добавлено: ' . users_anketa($row['photo_user']) . ' (' . get_date($row['photo_time']) . ')<br />';
echo '<a href="/gallery/' . gen_uri('photo', $row['photo_id'], 'page=' . $page . '#comm') . '">Комментарии</a> (' . $row['photo_comments'] . ')';
echo '<br /><a href="' . gen_uri('add_battle', $id, 'add_photo=' . $row['photo_id'] . '&' . RND) . '">Выбрать для дуэли »</a>';
echo '</td></tr></table></div>';
}
echo show_pages('albums', RND, 'p');
echo '<div class="b">Всего фотографий: <b>' . $total . '</b><br /></div>';
}
else {
show_error('Фотографий в альбоме еще нет!');
}
}
else {
$inSes->addMessage('Ошибка! Вы не можете состязаться с собой!');
gen_red('battles', '', RND);
}
}
else {
$inSes->addMessage('Ошибка! Выбранное фото противника не найдено!');
gen_red('battles', '', RND);
}
}
else {
$inSes->addMessage('Ошибка! Выбранное фото противника не найдено!');
gen_red('battles', '', RND);
}
}
else {
show_header('Фото битвы');
show_login('Вы не авторизованы, чтобы принять участие в фото-битвах, необходимо');
}
echo '<div class="b">' . icon('return.png');
echo '<a href="' . gen_uri('battles', '', RND) . '">Фото-Битвы</a> | ';
echo '<a href="' . gen_uri('addphoto', '', RND) . '">Добавить фото</a> | ';
echo '<a href="' . gen_uri('index', '', RND) . '">Галерея</a><br /></div>';
break;
endswitch;
show_footer();
?>