View file votes/index.php

File size: 12.21Kb
<?php
#-----------------------------------------------------#
#          ********* ROTORCMS *********               #
#              Made by  :  VANTUZ                     #
#               E-mail  :  [email protected]         #
#                 Site  :  http://pizdec.ru           #
#             WAP-Site  :  http://visavi.net          #
#                  ICQ  :  36-44-66                   #
#  Вы не имеете право вносить изменения в код скрипта #
#        для его дальнейшего распространения          #
#-----------------------------------------------------#	
require_once ('../includes/start.php');
require_once ('../includes/functions.php');
require_once ('../includes/header.php');
include_once ('../themes/' . $config['themes'] . '/index.php');

if (isset($_GET['act'])) {
    $act = check($_GET['act']);
} else {
    $act = 'index';
} 
if (isset($_GET['id'])) {
    $id = abs(intval($_GET['id']));
} else {
    $id = 0;
} 

switch ($act):
# ###########################################################################################
# #                                    Главная страница                                    ##
# ###########################################################################################
case 'index':

    show_title('site.png', 'Голосования');
    $config['newtitle'] = 'Голосования';

    $queryvote = DB :: $dbh -> query("SELECT * FROM `vote` WHERE `vote_closed`=? ORDER BY `vote_time` DESC;", array(0));
    $votes = $queryvote -> fetchAll();

    if (count($votes) > 0) {
        foreach($votes as $valvote) {
            echo '<div class="b">';
            echo '<img src="../images/img/stat.gif" alt="image" /> <b><a href="index.php?act=poll&amp;id=' . $valvote['vote_id'] . '&amp;' . SID . '">' . $valvote['vote_title'] . '</a></b></div>';
            echo '<div>Создано: ' . date_fixed($valvote['vote_time']) . '<br />';
            echo 'Всего голосов: ' . $valvote['vote_count'] . '</div>';
        } 
        echo '<br />';
    } else {
        show_error('Открытых голосований еще нет!');
    } 
    break;
# ###########################################################################################
# #                                      Голосование                                       ##
# ###########################################################################################
case 'poll':
    show_title('site.png', 'Голосование');

    $queryvote = DB :: $dbh -> query("SELECT * FROM `vote` WHERE `vote_id`=? LIMIT 1;", array($id));
    $votes = $queryvote -> fetch();

    if (!empty($votes)) {
        if (empty($votes['vote_closed'])) {
            $config['newtitle'] = $votes['vote_title'];

            echo '<img src="../images/img/stat.gif" alt="image" /> <b>' . $votes['vote_title'] . '</b> (Голосов: ' . $votes['vote_count'] . ')<br /><br />';

            $queryanswer = DB :: $dbh -> query("SELECT * FROM `voteanswer` WHERE `answer_vote_id`=? ORDER BY `answer_id`;", array($id));
            $answer = $queryanswer -> fetchAll();

            $total = count($answer);
            if ($total > 0) {
                $polls = DB :: $dbh -> querySingle("SELECT `poll_id` FROM `votepoll` WHERE `poll_vote_id`=? AND `poll_user`=? LIMIT 1;", array($id, $log));

                if (is_user() && empty($polls)) {
                    echo '<form action="index.php?act=vote&amp;id=' . $id . '&amp;uid=' . $_SESSION['token'] . '&amp;' . SID . '" method="post">';

                    foreach($answer as $data) {
                        echo '<input name="poll" type="radio" value="' . $data['answer_id'] . '" /> ' . $data['answer_option'] . '<br />';
                    } 

                    echo '<br /><input type="submit" value="Голосовать" /></form><br />';

                    echo 'Всего вариантов: <b>' . $total . '</b><br /><br />';
                    echo '<img src="../images/img/history.gif" alt="image" /> <a href="index.php?act=result&amp;id=' . $id . '&amp;' . SID . '">Результаты</a><br />';
                    // ------------------------- Просмотр результатов ---------------------//
                } else {
                    $queryanswer = DB :: $dbh -> query("SELECT `answer_option`, `answer_result` FROM `voteanswer` WHERE `answer_vote_id`=? ORDER BY `answer_id`;", array($id));
                    $answer = $queryanswer -> fetchAssoc();

                    $sum = $votes['vote_count'];
                    $max = max($answer);

                    if (empty($sum)) {
                        $sum = 1;
                    } 
                    if (empty($max)) {
                        $max = 1;
                    } 

                    foreach($answer as $key => $data) {
                        $proc = round(($data * 100) / $sum, 1);
                        $maxproc = round(($data * 200) / $max);

                        echo '<b>' . $key . '</b> (Голосов: ' . $data . ')<br />';
                        echo '<img src="' . BASEDIR . 'gallery/graph.php?rat=' . $maxproc . '&amp;per=' . $proc . '" alt="' . $proc . '%" /><br /><br />';
                    } 

                    echo 'Вариантов: <b>' . $total . '</b><br /><br />';
                } 
            } else {
                show_error('Ошибка! Для данного голосования не созданы варианты ответов!');
            } 
        } else {
            show_error('Ошибка! Данный опрос закрыт для голосования!');
        } 
    } else {
        show_error('Ошибка! Данного голосования не существует!');
    } 

    echo '<img src="../images/img/reload.gif" alt="image" /> <a href="index.php?' . SID . '">К голосованиям</a><br />';
    break;
# ###########################################################################################
# #                                      Голосование                                       ##
# ###########################################################################################
case 'vote':
    show_title('site.png', 'Голосование');

    $uid = check($_GET['uid']);
    if (isset($_POST['poll'])) {
        $poll = abs(intval($_POST['poll']));
    } else {
        $poll = 0;
    } 

    if (is_user()) {
        if ($uid == $_SESSION['token']) {
            if (!empty($poll)) {
                $queryvote = DB :: $dbh -> query("SELECT * FROM `vote` WHERE `vote_id`=? LIMIT 1;", array($id));
                $votes = $queryvote -> fetch();
                if (!empty($votes)) {
                    if (empty($votes['vote_closed'])) {
                        $queryanswer = DB :: $dbh -> querySingle("SELECT `answer_vote_id` FROM `voteanswer` WHERE `answer_id`=? AND `answer_vote_id`=?  LIMIT 1;", array($poll, $id));
                        if (!empty($queryanswer)) {
                            $polls = DB :: $dbh -> querySingle("SELECT `poll_id` FROM `votepoll` WHERE `poll_vote_id`=? AND `poll_user`=? LIMIT 1;", array($id, $log));
                            if (empty($polls)) {
                                DB :: $dbh -> query("UPDATE `vote` SET `vote_count`=`vote_count`+1 WHERE `vote_id`=?;", array($id));
                                DB :: $dbh -> query("UPDATE `voteanswer` SET `answer_result`=`answer_result`+1 WHERE `answer_id`=?;", array($poll));
                                DB :: $dbh -> query("INSERT INTO `votepoll` (`poll_vote_id`, `poll_user`) VALUES (?, ?);", array($id, $log));

                                $_SESSION['note'] = 'Ваш голос успешно принят!';
                                header ("Location: index.php?act=poll&id=$id&" . SID);
                                exit;
                            } else {
                                show_error('Ошибка! Вы уже проголосовали в этом опросе!');
                            } 
                        } else {
                            show_error('Ошибка! Для данного голосования не созданы варианты ответов!');
                        } 
                    } else {
                        show_error('Ошибка! Данный опрос закрыт для голосования!');
                    } 
                } else {
                    show_error('Ошибка! Данного голосования не существует!');
                } 
            } else {
                show_error('Ошибка! Вы не выбрали вариант ответа!');
            } 
        } else {
            show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
        } 
    } else {
        show_login('Вы не авторизованы, чтобы участвовать в голосованиях, необходимо');
    } 

    echo '<img src="../images/img/back.gif" alt="image" /> <a href="index.php?act=poll&amp;id=' . $id . '&amp;' . SID . '">Вернуться</a><br />';
    echo '<img src="../images/img/reload.gif" alt="image" /> <a href="index.php?' . SID . '">К голосованиям</a><br />';
    break;
# ###########################################################################################
# #                                      Голосование                                       ##
# ###########################################################################################
case 'result':
    show_title('site.png', 'Результаты голосований');

    $queryvote = DB :: $dbh -> query("SELECT * FROM `vote` WHERE `vote_id`=? LIMIT 1;", array($id));
    $votes = $queryvote -> fetch();

    if (!empty($votes)) {
        if (empty($votes['vote_closed'])) {
            $config['newtitle'] = $votes['vote_title'];

            echo '<img src="../images/img/stat.gif" alt="image" /> <b>' . $votes['vote_title'] . '</b> (Голосов: ' . $votes['vote_count'] . ')<br /><br />';

            $queryanswer = DB :: $dbh -> query("SELECT `answer_option`, `answer_result` FROM `voteanswer` WHERE `answer_vote_id`=? ORDER BY `answer_id`;", array($id));
            $answer = $queryanswer -> fetchAssoc();

            $total = count($answer);

            if ($total > 0) {
                $sum = $votes['vote_count'];
                $max = max($answer);

                if (empty($sum)) {
                    $sum = 1;
                } 
                if (empty($max)) {
                    $max = 1;
                } 

                foreach($answer as $key => $data) {
                    $proc = round(($data * 100) / $sum, 1);
                    $maxproc = round(($data * 200) / $max);

                    echo '<b>' . $key . '</b> (Голосов: ' . $data . ')<br />';
                    echo '<img src="' . BASEDIR . 'gallery/graph.php?rat=' . $maxproc . '&amp;per=' . $proc . '" alt="' . $proc . '%" /><br /><br />';
                } 

                echo 'Вариантов: <b>' . $total . '</b><br /><br />';

                echo '<img src="../images/img/stat.gif" alt="image" /> <a href="index.php?act=poll&amp;id=' . $id . '&amp;' . SID . '">К вариантам</a><br />';
            } else {
                show_error('Ошибка! Для данного голосования не созданы варианты ответов!');
            } 
        } else {
            show_error('Ошибка! Данный опрос закрыт для голосования!');
        } 
    } else {
        show_error('Ошибка! Данного голосования не существует!');
    } 

    echo '<img src="../images/img/reload.gif" alt="image" /> <a href="index.php?' . SID . '">К голосованиям</a><br />';
    break;

default:
    header("location: index.php?" . SID);
    endswitch;

    echo '<img src="../images/img/luggage.gif" alt="image" /> <a href="history.php?' . SID . '">История голосований</a><br />';
    echo '<img src="../images/img/homepage.gif" alt="image" /> <a href="../index.php?' . SID . '">На главную</a>';

    include_once ('../themes/' . $config['themes'] . '/foot.php');

    ?>