Вход Регистрация
Файл: mpanel/votes.php
Строк: 271
<?php
include('../core/core.php');
include(
MAINDIR.'style/head.php');
function 
redirect($url$permanent false){

    if (
$permanent){
        
header('HTTP/1.1 301 Moved Permanently');
    }

    
header('Location: '.$url);
    exit();
}
function 
date_fixed($timestamp$format "d.m.y / H:i") {
    
//global $config;

    
if (!is_numeric($timestamp)) {
        
$timestamp time();
    } 
    
$shift 3600;
    
$datestamp date($format$timestamp $shift);

    
$today date("d.m.y"time() + $shift);
    
$yesterday date("d.m.y"strtotime("-1 day") + $shift);

    
$datestamp str_replace($today'Сегодня'$datestamp);
    
$datestamp str_replace($yesterday'Вчера'$datestamp);

    
$search = array('January''February''March''April''May''June''July''August''September''October''November''December');
    
$replace = array('Января''Февраля''Марта''Апреля''Мая''Июня''Июля''Августа''Сентября''Октября''Ноября''Декабря');
    
$datestamp str_replace($search$replace$datestamp);

    return 
$datestamp;


function 
show_error($error){
echo
'<div class="error">'.$error.'</div>';
}
if (isset(
$_GET['act'])) {
    
$act check($_GET['act']);
} else {
    
$act 'index';

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

if (isset(
$_GET['start'])) {
    
$start abs(intval($_GET['start']));
} else {
    
$start 0;


if (
is_admin(array(101102103))) {
    
title('Управление голосованием');

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

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

            if (
count($votes) > 0) {
                foreach(
$votes as $valvote) {
                    echo 
'<div class="menu">';
                    echo 
'<img src="../images/stat.gif" alt="image" /> <b><a href="../votes/index.php?act=poll&amp;id='.$valvote['vote_id'].'&amp;'.SID.'">'.$valvote['vote_title'].'</a></b><br />';
                    echo 
'<a href="votes.php?act=edit&amp;id='.$valvote['vote_id'].'&amp;'.SID.'">Изменить</a>';
            if(
$valvote['vote_closed'] == 0)    {    echo ' / <a href="votes.php?act=action&amp;do=close&amp;id='.$valvote['vote_id'].'&amp;uid='.$_SESSION['token'].'&amp;'.SID.'">Закрыть</a>';} else {
                    echo 
' / <a href="votes.php?act=action&amp;do=open&amp;id='.$valvote['vote_id'].'&amp;uid='.$_SESSION['token'].'&amp;'.SID.'">Открыть</a>';
}
                    if (
is_admin(array(101))) {
                        echo 
' / <a href="votes.php?act=del&amp;id='.$valvote['vote_id'].'&amp;uid='.$_SESSION['token'].'&amp;'.SID.'" onclick="return confirm('Вы подтверждаете удаление голосования?')">Удалить</a>';
                    } 

                    echo 
'</div>';

                    echo 
'<div><div class="menu">Создано: '.date_fixed($valvote['vote_time']).'<br />';
                    echo 
'Всего голосов: '.$valvote['vote_count'].'</div>';
                } 
                echo 
'';
            } else {
                
show_error('Открытых голосований еще нет!');
            } 
echo
'<div class="menu_2">';
            echo 
'<img src="../images/stat.gif" alt="image" /> <a href="votes.php?act=new&amp;'.SID.'">Создать голосование</a><br />';
            echo 
'<img src="../images/luggage.gif" alt="image" /> <a href="votes.php?act=history&amp;'.SID.'">История голосований</a><br />';

            if (
is_admin(array(101))) {
                echo 
'<img src="../images/reload.gif" alt="image" /> <a href="votes.php?act=rest&amp;uid='.$_SESSION['token'].'&amp;'.SID.'">Пересчитать</a><br />';
            } 
echo
'</div>';
        break; 

        
############################################################################################
        ##                                      Создание                                          ##
        ############################################################################################
        
case 'new':

            echo 
'<div class="menu">';
            echo 
'<form action="votes.php?act=add&amp;uid='.$_SESSION['token'].'&amp;'.SID.'" method="post">';

            echo 
'Вопрос:<br />';
            echo 
'<input type="text" name="title" size="50" maxlength="100" /><br />';
            echo 
'Ответ 1:<br /><input type="text" name="answer[]" maxlength="50" /><br />';
            echo 
'Ответ 2:<br /><input type="text" name="answer[]" maxlength="50" /><br />';
            echo 
'Ответ 3:<br /><input type="text" name="answer[]" maxlength="50" /><br />';
            echo 
'Ответ 4:<br /><input type="text" name="answer[]" maxlength="50" /><br />';
            echo 
'Ответ 5:<br /><input type="text" name="answer[]" maxlength="50" /><br />';
            echo 
'Ответ 6:<br /><input type="text" name="answer[]" maxlength="50" /><br />';
            echo 
'Ответ 7:<br /><input type="text" name="answer[]" maxlength="50" /><br />';
            echo 
'Ответ 8:<br /><input type="text" name="answer[]" maxlength="50" /><br />';
            echo 
'Ответ 9:<br /><input type="text" name="answer[]" maxlength="50" /><br />';
            echo 
'Ответ 10:<br /><input type="text" name="answer[]" maxlength="50" /><br />';
            echo 
'<input type="submit" value="Создать" /></form></div><br />';

            echo 
'<img src="../images/back.gif" alt="image" /> <a href="votes.php?'.SID.'">Вернуться</a><br />';
        break; 

        
############################################################################################
        ##                                      Создание                                          ##
        ############################################################################################
        
case 'add':

            
$uid check($_GET['uid']);
            
$title check($_POST['title']);
            
$answer check($_POST['answer']);

            if (
$uid == $_SESSION['token']) {
                if (
mb_strlen($title) >= && mb_strlen($title) <= 100) {
                    
$answer array_diff($answer, array(''));

                    if (
count($answer) > 0) {
                        
DB::run() -> query("INSERT INTO `vote` (`vote_title`, `vote_time`) VALUES (?, ?);", array($titletime()));
                        
$lastid DB::run() -> lastInsertId();

                        
$dbr DB::run() -> prepare("INSERT INTO `voteanswer` (`answer_vote_id`, `answer_option`) VALUES (?, ?);");

                        foreach (
$answer as $data) {
                            
$dbr -> execute($lastid$data);
                        } 

                        
$_SESSION['note'] = 'Голосование успешно создано!';
                        
redirect("votes.php?".SID);
                    } else {
                        
show_error('Ошибка! Отсутствуют варианты ответов!');
                    } 
                } else {
                    
show_error('Ошибка! Слишком длинный или короткий вопрос (от 3 до 100 символов)!');
                } 
            } else {
                
show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
            } 

            echo 
'<img src="../images/img/back.gif" alt="image" /> <a href="votes.php?act=new&amp;'.SID.'">Вернуться</a><br />';
            echo 
'<img src="../images/img/stat.gif" alt="image" /> <a href="votes.php?'.SID.'">К голосованиям</a><br />';
        break; 

        
############################################################################################
        ##                                   Редактирование                                       ##
        ############################################################################################
        
case 'edit':

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

            if (!empty(
$votes)) {
                echo 
'<div class="menu">';
                echo 
'<form action="votes.php?act=change&amp;id='.$id.'&amp;uid='.$_SESSION['token'].'&amp;'.SID.'" method="post">';

                echo 
'Вопрос:<br />';
                echo 
'<input type="text" name="title" size="50" maxlength="100" value="'.$votes['vote_title'].'" /><br />';

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

                for (
$i 0$i 10$i++) {
                    if (!empty(
$answer[$i])) {
                        echo 
'<span style="color:#ff0000">Ответ '.($i 1).':</span><br /><input type="text" name="answer['.$answer[$i]['answer_id'].']" maxlength="50" value="'.$answer[$i]['answer_option'].'" /><br />';
                    } else {
                        echo 
'Ответ '.($i 1).':<br /><input type="text" name="newanswer[]" maxlength="50" /><br />';
                    } 
                } 

                echo 
'<input type="submit" value="Изменить" /></form></div>';
echo
'<div class="menu_2">';
                echo 
'Поля отмеченные красным цветом обязательны для заполнения!<br />';
            } else {
                
show_error('Ошибка! Данного голосования не существует!');
            } 

            echo 
'<img src="../images/back.gif" alt="image" /> <a href="votes.php?'.SID.'">Вернуться</a></div>';
        break; 

        
############################################################################################
        ##                                   Редактирование                                       ##
        ############################################################################################
        
case 'change':

            
$uid check($_GET['uid']);
            
$title check($_POST['title']);
            
$answer check($_POST['answer']);

            if (
$uid == $_SESSION['token']) {
                if (
mb_strlen($title) >= && mb_strlen($title) <= 100) {
                    
$queryvote DB::run() -> querySingle("SELECT `vote_id` FROM `vote` WHERE `vote_id`=? LIMIT 1;", array($id));
                    if (!empty(
$queryvote)) {
                        if (!
in_array(''$answer)) {
                            
DB::run() -> query("UPDATE `vote` SET `vote_title`=? WHERE `vote_id`=?;", array($title$id));

                            
$dbr DB::run() -> prepare("UPDATE `voteanswer` SET `answer_option`=? WHERE `answer_id`=?;");
                            foreach (
$answer as $key => $data) {
                                
$dbr -> execute($data$key);
                            } 

                            if (isset(
$_POST['newanswer'])) {
                                
$newanswer check($_POST['newanswer']);
                                
$newanswer array_diff($newanswer, array(''));
                                if (
count($newanswer) > 0) {
                                    
$dbr DB::run() -> prepare("INSERT INTO `voteanswer` (`answer_vote_id`, `answer_option`) VALUES (?, ?);");
                                    foreach (
$newanswer as $data) {
                                        
$dbr -> execute($id$data);
                                    } 
                                } 
                            } 

                            
$_SESSION['note'] = 'Голосование успешно изменено!';
                            
redirect("votes.php?".SID);
                        } else {
                            
show_error('Ошибка! Не заполнены все обязательные поля с ответами!');
                        } 
                    } else {
                        
show_error('Ошибка! Данного голосования не существует!');
                    } 
                } else {
                    
show_error('Ошибка! Слишком длинный или короткий вопрос (от 3 до 100 символов)!');
                } 
            } else {
                
show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
            } 

            echo 
'<img src="../images/back.gif" alt="image" /> <a href="votes.php?act=edit&amp;id='.$id.'&amp;'.SID.'">Вернуться</a><br />';
            echo 
'<img src="../images/stat.gif" alt="image" /> <a href="votes.php?'.SID.'">К голосованиям</a>';
        break;

        
############################################################################################
        ##                                      Закрытие                                          ##
        ############################################################################################
        
case 'action':

            
$uid check($_GET['uid']);
            
$do check($_GET['do']);

            if (
$uid == $_SESSION['token']) {
                if (
$do == 'close' || $do == 'open') {
                    
$queryvote DB::run() -> querySingle("SELECT `vote_id` FROM `vote` WHERE `vote_id`=? LIMIT 1;", array($id));
                    if (!empty(
$queryvote)) {
                        if (
$do == 'close') {
                            
DB::run() -> query("UPDATE `vote` SET `vote_closed`=? WHERE `vote_id`=?;", array(1$id));
                            
DB::run() -> query("DELETE FROM `votepoll` WHERE `poll_vote_id`=?;", array($id));
                            
$_SESSION['note'] = 'Голосование успешно закрыто!';
                            
redirect("votes.php?".SID);
                        } 

                        if (
$do == 'open') {
                            
DB::run() -> query("UPDATE `vote` SET `vote_closed`=? WHERE `vote_id`=?;", array(0$id));
                            
$_SESSION['note'] = 'Голосование успешно открыто!';
                            
redirect("votes.php?act=index&".SID);
                        } 
                    } else {
                        
show_error('Ошибка! Данного голосования не существует!');
                    } 
                } else {
                    
show_error('Ошибка! Не выбрано действие для голосования!');
                } 
            } else {
                
show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
            } 

            echo 
'<img src="../images/img/back.gif" alt="image" /> <a href="votes.php?'.SID.'">Вернуться</a>';
        break; 

        
############################################################################################
        ##                                      Удаление                                          ##
        ############################################################################################
        
case 'del':

            
$uid check($_GET['uid']);

            if (
$uid == $_SESSION['token']) {
                if (
is_admin(array(101))) {
                    
$queryvote DB::run() -> querySingle("SELECT `vote_id` FROM `vote` WHERE `vote_id`=? LIMIT 1;", array($id));
                    if (!empty(
$queryvote)) {
                        
DB::run() -> query("DELETE FROM `vote` WHERE `vote_id`=?;", array($id));
                        
DB::run() -> query("DELETE FROM `voteanswer` WHERE `answer_vote_id`=?;", array($id));
                        
DB::run() -> query("DELETE FROM `votepoll` WHERE `poll_vote_id`=?;", array($id));

                        
$_SESSION['note'] = 'Голосование успешно удалено!';
                        
redirect("votes.php?".SID);
                    } else {
                        
show_error('Ошибка! Данного голосования не существует!');
                    } 
                } else {
                    
show_error('Ошибка! Удалять голосования могут только суперадмины!');
                } 
            } else {
                
show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
            } 

            echo 
'<img src="../images/back.gif" alt="image" /> <a href="votes.php?'.SID.'">Вернуться</a>';
        break; 

        
############################################################################################
        ##                                    Пересчет счетчиков                                  ##
        ############################################################################################
        
case 'rest':
            
$uid check($_GET['uid']);
            if (
$uid == $_SESSION['token']) {
                if (
is_admin(array(101))) {
                    
DB::run() -> query("UPDATE `vote` SET `vote_count`=(SELECT SUM(`answer_result`) FROM `voteanswer` WHERE `vote`.vote_id=`voteanswer`.`answer_vote_id`) WHERE `vote_closed`=?;", array(0));

                    
$_SESSION['note'] = 'Все данные успешно пересчитаны!';
                    
redirect("votes.php?".SID);
                } else {
                    
show_error('Ошибка! Пересчитывать голосования могут только суперадмины!');
                } 
            } else {
                
show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
            } 

            echo 
'<img src="../images/back.gif" alt="image" /> <a href="votes.php?'.SID.'">Вернуться</a>';
        break; 

        
############################################################################################
        ##                                          История                                      ##
        ############################################################################################
        /*case 'history':
function page_strnavigation($link, $posts, $start, $total, $range = 3){

    if ($total > 0) {

       $pg_cnt = ceil($total / $posts);
       $cur_page = ceil(($start + 1) / $posts);
        $idx_fst = max($cur_page - $range, 1);
        $idx_lst = min($cur_page + $range, $pg_cnt);

        $res = 'Страницы: ';

        if ($cur_page != 1) {
            $res .='<a href="'.$link.'start='.($cur_page - 2) * $posts.'&amp;'.SID.'" title="Назад">&laquo;</a> ';
        }  

       if (($start - $posts) >= 0) {
          if ($cur_page > ($range + 1)) {
             $res .= ' <a href="'.$link.'start=0&amp;'.SID.'">1</a> ';
             if ($cur_page != ($range + 2)) {
                $res .= ' ... ';
             }
          }
       }

        for ($i = $idx_fst; $i <= $idx_lst; $i++) {
            $offset_page = ($i - 1) * $posts;
            if ($i == $cur_page) {
                $res .= ' <span class="navcurrent">'.$i.'</span> ';
            } else {
                $res .= ' <a href="'.$link.'start='.$offset_page.'&amp;'.SID.'">'.$i.'</a> ';
            }
        }

       if (($start + $posts) < $total) {
          if ($cur_page < ($pg_cnt - $range)) {
             if ($cur_page != ($pg_cnt - $range - 1)) {
                $res .= ' ... ';
             }
             $res .= ' <a href="'.$link.'start='.($pg_cnt - 1) * $posts.'&amp;'.SID.'">'.$pg_cnt.'</a> ';
          }
       }

        if ($cur_page != $pg_cnt) {
            $res .= ' <a href="'.$link.'start='.($cur_page * $posts).'&amp;'.SID.'" title="Вперед">&raquo;</a>';
        }

        echo '<hr /><div class="nav">'.$res.'</div>';
    }
}


            $total = DB::run() -> querySingle("SELECT count(*) FROM `vote` WHERE `vote_closed`=? ORDER BY `vote_time`;", array(1));

            if ($total > 0) {
                if ($start >= $total) {
                    $start = 0;
                } 

                $queryvote = DB::run() -> query("SELECT * FROM `vote` WHERE `vote_closed`=? ORDER BY `vote_time` DESC LIMIT ".$start.", ".$config['allvotes'].";", array(1));

                while ($data = $queryvote -> fetch()) {
                    echo '<div class="menu">';
                    echo '<img src="../images/luggage.gif" alt="image" /> <b><a href="../votes/history.php?act=result&amp;id='.$data['vote_id'].'&amp;start='.$start.'&amp;'.SID.'">'.$data['vote_title'].'</a></b><br />';

                    echo '<a href="votes.php?act=action&amp;do=open&amp;id='.$data['vote_id'].'&amp;uid='.$_SESSION['token'].'&amp;'.SID.'">Открыть</a>';

                    if (is_admin(array(101))) {
                        echo ' / <a href="votes.php?act=del&amp;id='.$data['vote_id'].'&amp;uid='.$_SESSION['token'].'&amp;'.SID.'" onclick="return confirm('Вы подтверждаете удаление голосования?')">Удалить</a>';
                    } 

                    echo '</div>';
                    echo '<div>Создано: '.date_fixed($data['vote_time']).'<br />';
                    echo 'Всего голосов: '.$data['vote_count'].'</div>';
                } 

                page_strnavigation('votes.php?act=history&amp;', $config['allvotes'], $start, $total);
            } else {
                show_error('Голосований в архиве еще нет!');
            } 

            echo '<img src="../images/stat.gif" alt="image" /> <a href="votes.php?'.SID.'">Список голосований</a>';
        break;*/

    
default:
        
redirect("votes.php?".SID);
    endswitch;

    echo 
'<div class="menu_2"><img src="../images/panel.gif" alt="image" /> <a href="index.php?'.SID.'">В админку</a></div>';

} else {
    
redirect(BASEDIR.'index.php?'.SID);


include(
MAINDIR.'style/foot.php');
?>
Онлайн: 1
Реклама