Файл: CMS/votes/index.php
Строк: 138
<?php
define('CMS',TRUE);
include('cfg.php');
if (!empty($_POST['poll'])) {
$poll = num($_POST['poll']);
if ($is_logged) {
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if (!empty($poll)) {
$votes = $db->selectRow("SELECT * FROM ?_vote WHERE `vote_id` = ? LIMIT 1;", $id);
if (!empty($votes)) {
if (empty($votes['vote_closed'])) {
$is_answer = (int) $db->selectCell("SELECT `answer_vote_id` FROM ?_vote_answer
WHERE `answer_id` = ? AND `answer_vote_id` = ? LIMIT 1;", $poll, $id);
if ($is_answer > 0) {
$is_poll = (int) $db->selectCell("SELECT `poll_id` FROM ?_vote_poll
WHERE `poll_vote_id` = ? AND `poll_user` = ? LIMIT 1;", $id, $log);
if ($is_poll < 1) {
$db->query("UPDATE ?_vote SET `vote_count` = (`vote_count` + 1) WHERE `vote_id` = ?;", $id);
$db->query("UPDATE ?_vote_answer SET `answer_result` = (`answer_result` + 1) WHERE `answer_id` = ?;", $poll);
$db->query("INSERT INTO ?_vote_poll (`poll_vote_id`, `poll_user`) VALUES (?, ?);", $id, $log);
$inSes->addMessage('Ваш голос успешно принят!', 'ok');
gen_red('poll', $id, RND);
}
else $inSes->addMessage('Ошибка! Вы уже проголосовали в этом опросе!');
}
else $inSes->addMessage('Ошибка! Для данного голосования не созданы варианты ответов!');
}
else $inSes->addMessage('Ошибка! Данный опрос закрыт для голосования!');
}
else $inSes->addMessage('Ошибка! Данного голосования не существует!');
}
else $inSes->addMessage('Ошибка! Вы не выбрали вариант ответа!');
}
else $inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
else $inSes->addMessage('Вы не авторизованы, голосовать могут только обитатели сайта!');
}
switch($mod):
default:
show_header('Голосования');
$rows = $db->select("SELECT * FROM ?_vote WHERE `vote_closed` = '0' ORDER BY `vote_time` DESC;");
if (!empty($rows) && count($rows) > 0) {
foreach($rows as $row) {
echo '<div class="b">' . icon('stat.png');
echo ' <a href="' . gen_uri('poll', $row['vote_id'], RND) . '"><b>' . $row['vote_title'] . '</b></a><br />';
echo '- Создано: ' . get_date($row['vote_time']) . '<br />';
echo '- Всего голосов: ' . $row['vote_count'] . '</div>';
}
}
else {
show_error('Открытых голосований еще нет!');
}
break;
case 'history':
show_header('История голосований');
$onpage = !empty($config['votes_num']) ? num($config['votes_num']) : 10;
if ($page > 1) $from = ($page - 1) * $onpage; else $from = 0;
$rows = $db->selectPage( $total, "SELECT * FROM ?_vote WHERE `vote_closed` = '1' ORDER BY `vote_time` DESC LIMIT ?d, ?d", $from, $onpage );
if (!empty($rows) && $total > 0) {
foreach($rows as $row) {
echo '<div class="b">' . icon('stat.png');
echo ' <a href="' . gen_uri('history_result', $row['vote_id'], RND) . '"><b>' . $row['vote_title'] . '</b></a><br />';
echo '- Создано: ' . get_date($row['vote_time']) . '<br />';
echo '- Всего голосов: <b>' . $row['vote_count'] . '</b></div>';
}
echo show_pages('history', RND, 'p');
}
else {
show_error('Голосований в архиве еще нет!');
}
echo '<div class="b">' . icon('return.png');
echo ' <a href="' . gen_uri('index', '', RND) . '">К голосованиям</a><br /></div>';
break;
case 'history_result':
$votes = $db->selectRow("SELECT * FROM ?_vote WHERE `vote_id` = ? LIMIT 1;", $id);
if (!empty($votes)) {
if (!empty($votes['vote_closed'])) {
show_header('Результаты голосований - ' . $votes['vote_title'], '', '', 'L');
echo icon('stat.png') . ' <b>' . $votes['vote_title'] . '</b> (Голосов: ' . $votes['vote_count'] . ')<br /></div>';
$answer = $db->selectPage( $total, "SELECT * FROM ?_vote_answer WHERE `answer_vote_id` = ? ORDER BY `answer_id`;", $id );
if ($total > 0) {
echo '<div class="b">' . show_votes($id, $votes['vote_count']) . '<br />';
echo '- Вариантов: <b>' . $total . '</b><br /></div>';
}
else {
show_error('Ошибка! Для данного голосования не созданы варианты ответов!');
}
echo '<div class="b">' . icon('return.png');
echo ' <a href="' . gen_uri('index', '', RND) . '">К голосованиям</a><br /></div>';
}
else {
$inSes->addMessage('Ошибка! Данный опрос закрыт для голосования!');
gen_red('index', '', RND);
}
}
else {
$inSes->addMessage('Ошибка! Данного голосования не существует!');
gen_red('index', '', RND);
}
break;
case 'poll':
$votes = $db->selectRow("SELECT * FROM ?_vote WHERE `vote_id` = ? LIMIT 1;", $id);
if (!empty($votes)) {
if (empty($votes['vote_closed'])) {
show_header('Голосование - ' . $votes['vote_title']);
echo '<div class="b">';
echo icon('stat.png') . ' <b>' . $votes['vote_title'] . '</b> (Голосов: ' . $votes['vote_count'] . ')<br /></div>';
$answer = $db->selectPage( $total, "SELECT * FROM ?_vote_answer WHERE `answer_vote_id` = ? ORDER BY `answer_id`;", $id );
if (!empty($answer) && $total > 0) {
$polls = $db->selectCell("SELECT `poll_id` FROM ?_vote_poll WHERE `poll_vote_id` = ? AND `poll_user` = ? LIMIT 1;", $id, $log);
if ($is_logged && empty($polls)) {
$v = '<div class="b">';
$v .= '<form action="' . gen_uri('poll', $id, 'rnd=' . $_SESSION['token'] . '&' . RND) . '" method="post">';
foreach($answer as $data) {
$v .= '<input name="poll" type="radio" value="' . $data['answer_id'] . '" /> ' . $data['answer_option'] . '<br />';
}
$v .= '<br /><input type="submit" class="btns" value="Голосовать" /></form></div>';
echo $v . '<div class="b">';
echo '- Всего вариантов: <b>' . $total . '</b><br /></div>';
echo '<div class="b">' . icon('return.png');
echo ' <a href="' . gen_uri('result', $id, RND) . '">Результаты</a> | ';
echo ' <a href="' . gen_uri('index', '', RND) . '">К голосованиям</a><br /></div>';
}
else { // Просмотр результатов
echo '<div class="b">' . show_votes($id, $votes['vote_count']) . '<br />';
echo '- Вариантов: <b>' . $total . '</b><br /></div>';
echo '<div class="b">' . icon('return.png');
echo ' <a href="' . gen_uri('index', '', RND) . '">К голосованиям</a><br /></div>';
}
}
else {
show_error('Ошибка! Для данного голосования не созданы варианты ответов!');
echo '<div class="b">' . icon('return.png');
echo ' <a href="' . gen_uri('index', '', RND) . '">К голосованиям</a><br /></div>';
}
}
else {
$inSes->addMessage('Ошибка! Данный опрос закрыт для голосования!');
gen_red('index', '', RND);
}
}
else {
$inSes->addMessage('Ошибка! Данного голосования не существует!');
gen_red('index', '', RND);
}
break;
case 'result':
$votes = $db->selectRow("SELECT * FROM ?_vote WHERE `vote_id` = ? LIMIT 1;", $id);
if (!empty($votes)) {
if (empty($votes['vote_closed'])) {
show_header('Результаты голосований - ' . $votes['vote_title']);
echo '<div class="b">' . icon('stat.png');
echo ' <b>' . $votes['vote_title'] . '</b> (Голосов: ' . $votes['vote_count'] . ')<br /></div>';
$answer = $db->selectPage( $total, "SELECT * FROM ?_vote_answer WHERE `answer_vote_id` = ? ORDER BY `answer_id`;", $id );
if ($total > 0) {
echo '<div class="b">' . show_votes($id, $votes['vote_count']) . '<br />';
echo '- Вариантов: <b>' . $total . '</b><br /></div>';
}
else {
show_error('Ошибка! Для данного голосования не созданы варианты ответов!');
}
echo '<div class="b">' . icon('return.png');
echo ' <a href="' . gen_uri('poll', $id, RND) . '">К вариантам</a> | ';
echo ' <a href="' . gen_uri('index', '', RND) . '">К голосованиям</a><br /></div>';
}
else {
$inSes->addMessage('Ошибка! Данный опрос закрыт для голосования!');
gen_red('index', '', RND);
}
}
else {
$inSes->addMessage('Ошибка! Данного голосования не существует!');
gen_red('index', '', RND);
}
break;
endswitch;
if (!empty($mod) && $mod != 'history') {
echo '<div class="b">' . icon('search.png');
echo ' <a href="' . gen_uri('history', '', RND) . '">История голосований</a><br /></div>';
}
show_footer();
?>