Вход Регистрация
Файл: CMS/core/admin/votes.php
Строк: 214
<?php

if (!defined('CMS')) { die('Access Denied!'); }

if (
is_admin(array(101102103))) {

    if (!empty(
$_GET['del'])) {

        if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

            if (
is_admin(array(101))) {

                
$vote_id = (int) $db->selectCell("SELECT `vote_id` FROM ?_vote WHERE `vote_id` = ? LIMIT 1;"num($_GET['del']));

                if (
$vote_id 0) {

                    
$db->query"DELETE FROM ?_vote WHERE `vote_id` = ?;"$vote_id );
                    
$db->query"DELETE FROM ?_vote_answer WHERE `answer_vote_id` = ?;"$vote_id );
                    
$db->query"DELETE FROM ?_vote_poll WHERE `poll_vote_id` = ?;"$vote_id );
                    
$db->query"OPTIMIZE TABLE ?_vote, ?_vote_answer, ?_vote_poll");
                    
$inSes->addMessage('Голосование успешно удалено!''ok');
                    
redirect('?m=votes&' RND);
                }
                else 
$inSes->addMessage('Ошибка! Данного голосования не существует!');
            }
            else 
$inSes->addMessage('Ошибка! Удалять голосования могут только суперадмины!');
        }
        else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
    }

    if (!empty(
$_GET['do'])) {

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

        if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

            
$vote_id = (int) $db->selectCell"SELECT `vote_id` FROM ?_vote WHERE `vote_id` = ? LIMIT 1;"$id );

            if (
$vote_id 0) {

                if (
$do == 'close') {

                    
$db->query"UPDATE ?_vote SET `vote_closed` = '1' WHERE `vote_id` = ?;"$id );
                    
$db->query"DELETE FROM ?_vote_poll WHERE `poll_vote_id` = ?;"$id );
                    
$inSes->addMessage('Голосование успешно закрыто!''ok');
                    
redirect('?m=history_votes&' RND);
                }
                else if (
$do == 'open') {

                    
$db->query("UPDATE ?_vote SET `vote_closed` = '0' WHERE `vote_id` = ?;"$id );
                    
$inSes->addMessage('Голосование успешно открыто!''ok');
                    
redirect('?m=votes&' RND);
                }
                else 
$inSes->addMessage('Ошибка! Не выбрано действие для голосования!');
            }
            else 
$inSes->addMessage('Ошибка! Данного голосования не существует!');
        }
        else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
    }

    if (!empty(
$_GET['restatement'])) {

        if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

            if (
is_admin(array(101))) {

                
$db->query("UPDATE ?_vote SET `vote_count` = (SELECT SUM(`answer_result`) FROM ?_vote_answer
                            WHERE ?_vote.`vote_id` = ?_vote_answer.`answer_vote_id`) WHERE `vote_closed` = '0';"
);

                
$inSes->addMessage('Все данные успешно пересчитаны!''ok');
            }
            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)) {

            foreach(
$rows as $row) {

                echo 
'<div class="b"><div class="right">';
                echo 
'<a href="?m=edit_votes&amp;id=' $row['vote_id'] . '&amp;' RND '">Изменить</a>';
                echo 
' | <a href="?m=votes&amp;do=close&amp;id=' $row['vote_id'] . '&amp;rnd=' $_SESSION['token'] . '&amp;' RND '">Закрыть</a>';

                if (
is_admin(array(101))) {

                    echo 
' | <a href="?m=votes&amp;del=' $row['vote_id'] . '&amp;rnd=' $_SESSION['token'] . '&amp;' RND '" onclick="return confirm('Вы подтверждаете удаление голосования?')">Удалить</a>';
                }
                echo 
'</div>' icon('stat.png');
                echo 
'<a href="/votes/' 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('Открытых голосований еще нет!');
        }

        echo 
'<div class="b">' icon('add.png');
        echo 
'<a href="?m=new_votes&amp;' RND '">Создать голосование</a> | ';
        echo 
'<a href="?m=history_votes&amp;' RND '">История голосований</a><br /></div>';

        if (
is_admin(array(101))) {

            echo 
'<div class="b">' icon('mail.png');
            echo 
' <a href="?m=votes&amp;restatement=1&amp;rnd=' $_SESSION['token'] . '">Пересчитать</a></div>';
        }

    break;
    case 
'new_votes':

        if (!empty(
$_POST['cancel'])) {

            
redirect('?m=votes&' RND);
        }

        if (!empty(
$_POST['submit'])) {

            
$title  = !empty($_POST['title'])  ? check($_POST['title'])  : '';
            
$answer = !empty($_POST['answer']) ? check($_POST['answer']) : '';

            if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

                if (
cms_strlen($title) >= && cms_strlen($title) <= 100) {

                    
$answer array_diff($answer, array(''));

                    if (
count($answer) > 0) {

                        
$lastid = (int) $db->query("INSERT INTO ?_vote (`vote_title`, `vote_time`) VALUES (?, ?);"$titleSITE_TIME);

                        foreach(
$answer as $data) {

                            
$db->query("INSERT INTO ?_vote_answer (`answer_vote_id`, `answer_option`) VALUES (?, ?);"$lastid$data);
                        }

                        
$inSes->addMessage('Голосование успешно создано!''ok');

                        
redirect('?m=votes&' RND);
                    }
                    else 
$inSes->addMessage('Ошибка! Отсутствуют варианты ответов!');
                }
                else 
$inSes->addMessage('Ошибка! Слишком длинный или короткий вопрос (от 3 до 100 символов)!');
            }
            else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
        }

        
show_header('Новый опрос');

        
$form = new cmsForm('?m=new_votes&amp;rnd=' $_SESSION['token'] . '&amp;' RND'post');
        
$form->addText(blink('*') . 'Вопрос:''title'request('title'), ' style="width:98%"');
        
$text  '<a href="#fl" onclick="set_vote(1);">[+]</a> | ';
        
$text .= '<a href="#fl" onclick="set_vote(0);">[-]</a><br/>';
        
$text .= '<div id="fl"><input type="text" name="answer[]" style="width:98%" /><br/></div>';
        
$form->addCode('Ответ:' $text);
        echo 
$form->Submit(array('Создать','Отмена'), array('submit','cancel'));
        echo <<<HTML

<script language="javascript" type="text/javascript">
<!--
function set_vote(type) {
  var f = document.createElement("input");
  f.setAttribute("name","answer[]");
  f.setAttribute("type","text");
  f.setAttribute("style","width:98%");
  var fl=document.getElementById("fl");
  if(type==1) {
    fl.insertBefore(f,null);
    fl.appendChild(document.createElement("br"));
  } else {
    var input=fl.getElementsByTagName("input");
    var br=fl.getElementsByTagName("br");

    if(input.length>0) {

      var el=input[input.length-1];
      el.parentNode.removeChild(el);
      var el2=br[br.length-1];
      el2.parentNode.removeChild(el2);
    }
  }
}
//-->
</script>
HTML;

    break;
    case 
'edit_votes':

        
$row $db->selectRow"SELECT * FROM ?_vote WHERE `vote_id` = ? LIMIT 1;"$id );

        if (!empty(
$row)) {

            if (!empty(
$_POST['cancel'])) {

                
redirect('?m=votes&' RND);
            }
            if (!empty(
$_POST['submit'])) {

                
$title  = !empty($_POST['title'])  ? check($_POST['title'])  : '';
                
$answer = !empty($_POST['answer']) ? check($_POST['answer']) : '';

                if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

                    if (
cms_strlen($title) >= && cms_strlen($title) <= 100) {

                        if (!
in_array(''$answer)) {

                            
$db->query("UPDATE ?_vote SET `vote_title` = ? WHERE `vote_id` = ?;"$title$id );

                            foreach(
$answer as $key => $data) {

                                
$db->query("UPDATE ?_vote_answer SET `answer_option` = ? WHERE `answer_id` = ?;"$data$key );
                            }

                            if (!empty(
$_POST['newanswer'])) {

                                
$newanswer check($_POST['newanswer']);
                                
$newanswer array_diff($newanswer, array(''));

                                if (
count($newanswer) > 0) {

                                    foreach (
$newanswer as $data) {

                                        
$db->query"INSERT INTO ?_vote_answer (`answer_vote_id`, `answer_option`) VALUES (?, ?);"$id$data );
                                    }
                                }
                            }

                            
$inSes->addMessage('Голосование успешно изменено!''ok');

                            
redirect('?m=votes&' RND);
                        }
                        else 
$inSes->addMessage('Ошибка! Не заполнены все обязательные поля с ответами!');
                    }
                    else 
$inSes->addMessage('Ошибка! Слишком длинный или короткий вопрос (от 3 до 100 символов)!');
                }
                else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
            }

            
show_header('Редактирование');

            
$form = new cmsForm('?m=edit_votes&amp;id=' $id '&amp;rnd=' $_SESSION['token'] . '&amp;' RND'post');
            
$form->addText('Вопрос:''title'$row['vote_title'], ' style="width:98%"');

            
$answer $db->select("SELECT * FROM ?_vote_answer WHERE `answer_vote_id` = ? ORDER BY `answer_id`;"$id);
            
$v '';
            for (
$i 0$i 10$i++) {

                if (!empty(
$answer[$i])) {

                    
$v .= '<span style="color:#ff0000">Ответ ' . ($i 1) . ':</span><br />';
                    
$v .= '<input type="text" name="answer[' $answer[$i]['answer_id'] . ']"  style="width:98%" value="' $answer[$i]['answer_option'] . '" /><br />';
                }
                else {

                    
$v .= 'Ответ ' . ($i 1) . ':<br /><input type="text" name="newanswer[]"  style="width:98%" /><br />';
                }
            }
            
$form->addCode($v);
            echo 
$form->Submit(array('Изменить''Отмена'), array('submit','cancel'));
            unset(
$form);
            echo 
'<div class="b">' blink('[!]') . ' Поля отмеченные красным цветом обязательны для заполнения!</div>';
        }
        else {

            
$inSes->addMessage('Ошибка! Данного голосования не существует!');
            
redirect('?m=votes&' RND);
        }
    break;
    case 
'history_votes':

        
show_header('История голосований');

        
$onpage = !empty($config['forumpost']) ? (int) $config['forumpost'] : 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"><div class="right">';
                echo 
'<a href="?m=votes&amp;do=open&amp;id=' $row['vote_id'] . '&amp;rnd=' $_SESSION['token'] . '&amp;' RND '">Открыть</a>';
                if (
is_admin(array(101))) {
                    echo 
' | <a href="?m=votes&amp;id=' $row['vote_id'] . '&amp;rnd=' $_SESSION['token'] . '&amp;' RND '" onclick="return confirm('Вы подтверждаете удаление голосования?')">Удалить</a>';
                }
                echo 
'</div>' icon('stat.png');
                echo 
'<b><a href="/votes/' gen_uri('historyr'$row['vote_id'], RND) . '">' $row['vote_title'] . '</a></b><br />';
                echo 
'- Создано: ' get_date($row['vote_time']) . '<br />';
                echo 
'- Всего голосов: <b>' $row['vote_count'] . '</b></div>';
            }

            echo 
show_pages('?m=history_votes');
        }
        else {

            
show_error('Голосований в архиве еще нет!');
        }

        echo 
'<div class="b">' icon('return.png');
        echo 
' <a href="?m=votes&' RND '">Список голосований</a><br /></div>';

    break;

    endswitch;

    echo 
'<div class="b">' icon('return.png') . ' <a href="?' RND '">В админку</a><br /></div>';

    
show_footer();
}
else {

    
redirect('/?' RND);
}

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