Вход Регистрация
Файл: 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'] . '&amp;' . 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();

?>
Онлайн: 0
Реклама