Файл: forum/action/edit_vote.php
Строк: 162
<?php
if (isset($_POST['save'])) {
    $name = trim($_POST['name']);
    if ($_POST['time_end'] == 1 || ($_POST['time_end'] != 1 && $_POST['time_end'] != 2 && $_POST['time_end'] != 3 && $_POST['time_end'] != 4 && $_POST['time_end'] != 5 && $_POST['time_end'] != 6)) {
        $time_end = 0;
    } elseif ($_POST['time_end'] == 1) {
        $time_end = 0;
    } elseif ($_POST['time_end'] == 2) {
        $time_end = ($vote->time_end < time()) ? $vote->time_end+time()+60*60*24 : time()+60*60*24;
    } elseif ($_POST['time_end'] == 3) {
        $time_end = ($vote->time_end < time()) ? $vote->time_end+time()+60*60*72 : time()+60*60*72;
    } elseif ($_POST['time_end'] == 4) {
        $time_end = ($vote->time_end < time()) ? $vote->time_end+time()+60*60*24*7 : time()+60*60*24*7;
    } elseif ($_POST['time_end'] == 5) {
        $time_end = ($vote->time_end < time()) ? $vote->time_end+time()+60*60*24*30 : time()+60*60*24*30;
    } elseif ($_POST['time_end'] == 6) {
        $time_end = ($vote->time_end < time()) ? $vote->time_end+time()+60*60*24*90 : time()+60*60*24*90;
    }
    if (preg_match("/[^(w)|(x7F-xFF)|(s)|(:,.-?)]/", $_POST['name'], $m)) {
        ?>
<div class = 'err'>
    В поле «Название опроса» присутствуют запрещенные <span style="font-weight: bold; color: red;"><?php echo  $m[0]?></span> символы!.
</div>
            <?php
    } elseif (mb_strlen($name) < 5) {
        ?>
        <div class = 'err'>Слишком короткое содержание опроса.</div>
        <?php
    } else {
        unset($_SESSION['name']);
        unset($_SESSION['time_end']);
        $var = $_POST['var'];
        $count_var = count($var);
        $check = 0;
        for ($i = 0; $i < $count_var; $i++) {
            unset($_SESSION['var'][$i]);
            if (preg_match("/[^(w)|(x7F-xFF)|(s)|(:,.-?)]/", $var[$i])) {
                echo '<div class = "err">Ошибка в описании вариантов!</div>';
                break;
            }
            if (!$id = $db->query('SELECT `id` FROM `forum_votes_var` WHERE `id_vote` = ?i AND `variant` = ?', [$vote->id, $var[$i]])->el()) {
                $db->query('INSERT INTO `forum_votes_var` (`variant`, `id_vote`, `id_theme`) VALUES( ?, ?i, ?i)', [$var[$i], $vote->id, $theme->id]);
            } else {
                $db->query('UPDATE `forum_votes_var` SET `variant`=? WHERE `id`=?i', [$var[$i], $id]);
            }
        }
        $db->query('DELETE FROM `forum_votes_var` WHERE `id_theme`=?i AND `variant`=?', [$theme->id, ""]);
        $_SESSION['success'] = '<div class = "msg">Опрос успешно изменён.</div>';
        $db->query('UPDATE `forum_votes` SET  `name` = ?, `time_end` = ?i WHERE `id_theme` = ?i', [$name, $time_end, $theme->id]);
        header('Location: '.FORUM.'/'.$forum->id.'/'.$razdel->id.'/'.$theme->id.'.html');
        exit;
    }
} elseif (isset($_POST['add_var']) && $vars < 9) {
    $_SESSION['name'] = $_POST['name'];
    $_SESSION['time_end'] = $_POST['time_end'];
    $var = $_POST['var'];
    $count_var = count($var);
    for ($i = 0; $i < $count_var; $i++) {
        $_SESSION['var'][$i] = trim($var[$i]);
    }// `id_theme` = '.$theme->id.', `id_vote` = '.$vote->id.', `variant` = ""
    $db->query('INSERT INTO `forum_votes_var` (`id_theme`, `id_vote`, `variant`) VALUES( ?i, ?i, ?)', [$theme->id, $vote->id, ""]);
    header('Location: '.FORUM.'/'.$forum->id.'/'.$razdel->id.'/'.$theme->id.'/edit_vote.html');
    exit;
} elseif (isset($_POST['delete_var']) && $vars > 2) {
    $_SESSION['name'] = $_POST['name'];
    $_SESSION['time_end'] = $_POST['time_end'];
    $var = $_POST['var'];
    $count_var = count($var)-1;
    unset($_SESSION['var'][$count_var]);
    $variant = $db->query('SELECT MAX(`id`) FROM `forum_votes_var` WHERE `id_theme` = '.$theme->id)->el();
    $db->query('DELETE FROM `forum_votes_var` WHERE `id_theme` = ?i AND `id` = ?i', [$theme->id, $variant]);
    $db->query('DELETE FROM `forum_vote_voices` WHERE `id_variant` = ?i', [$variant]);
    header('Location: '.FORUM.'/'.$forum->id.'/'.$razdel->id.'/'.$theme->id.'/edit_vote.html');
    exit;
} elseif (isset($_POST['cancel']) && ($theme->type == 0 || ($theme->type == 1 && user_access('forum_post_close')))) {
    $_SESSION['success'] = '<div class = "msg">Редактирование успешно отменено.</div>';
    $var = $_POST['var'];
    $count_var = count($var);
    for ($i = 0; $i < $count_var; $i++) {
        unset($_SESSION['var'][$i]);
    }
    unset($_SESSION['name']);
    unset($_SESSION['time_end']);
    $db->query('DELETE FROM `forum_votes_var` WHERE `id_theme` = '.$theme->id.' AND `variant` = ""');
    header('Location: '.FORUM.'/'.$forum->id.'/'.$razdel->id.'/'.$theme->id.'.html');
    exit;
} elseif (isset($_POST['delete'])) {
    $_SESSION['success'] = '<div class = "msg">Голосование успешно удалено.</div>';
    $var = $_POST['var'];
    $count_var = count($var);
    for ($i = 0; $i < $count_var; $i++) {
        unset($_SESSION['var'][$i]);
    }
    unset($_SESSION['name']);
    unset($_SESSION['time_end']);
    $db->query('DELETE FROM `forum_vote_voices` WHERE `id_vote` = '.$vote->id);
    $db->query('DELETE FROM `forum_votes_var` WHERE `id_theme` = '.$theme->id);
    $db->query('DELETE FROM `forum_votes` WHERE `id_theme` = '.$theme->id);
    header('Location: '.FORUM.'/'.$forum->id.'/'.$razdel->id.'/'.$theme->id.'.html');
    exit;
}
?>
<div class = 'menu_razd'>Редактирование опроса в теме</div>
<form action = '<?php echo  FORUM.'/'.$forum->id.'/'.$razdel->id.'/'.$theme->id ?>/edit_vote.html' method = 'post' class="p_m">
    <b>Содержание опроса:</b><br />
    <textarea name = 'name' style = 'width: 96%'><?php echo  (isset($_SESSION['name'])) ? htmlspecialchars($_SESSION['name']) : $vote->name; ?></textarea><br /><br />
    <b>Варианты ответов:</b><br />
    <?php
    $i = 0;
    $all_vars = $db->query('SELECT `variant` FROM `forum_votes_var` WHERE `id_vote` = '.$vote->id.' ORDER BY `id` ASC');
    while ($var = $all_vars->object()) {
        ?>
        <input type = 'text' name = 'var[]' value = '<?php echo  (isset($_SESSION['var'][$i])) ? htmlspecialchars($_SESSION['var'][$i]) : $var->variant; ?>' style = 'width: 96%;'><br />
        <?php
        $i++;
    }
    ?>
    <input type = 'submit' name = 'add_var' value = 'Ещё вариант' <?php echo  ($vars > 7) ? 'disabled = "disabled"' : null ?> /> <input type = 'submit' name = 'delete_var' value = 'Убрать вариант' <?php echo  ($vars < 3) ? 'disabled = "disabled"' : null ?> /><br />
    <br />
    <b><?php echo  ($vote->time_end < time()) ? 'Продлить на:' : 'Дата окончания через:' ?></b><br />
    <select name = 'time_end'>
        <?php
        if ($vote->time_end < time()) {
            ?>
            <option value = "0">Без изменений</option>
            <?php
        }
        ?>
        <option value = "1" <?php echo  (isset($_SESSION['time_end']) && $_SESSION['time_end'] == 1) ? 'selected = "selected"' : null ?>>Бессрочно</option>
        <option value = "2" <?php echo  (isset($_SESSION['time_end']) && $_SESSION['time_end'] == 2) ? 'selected = "selected"' : null ?>>1 День</option>
        <option value = "3" <?php echo  (isset($_SESSION['time_end']) && $_SESSION['time_end'] == 3) ? 'selected = "selected"' : null ?>>3 Дня</option>
        <option value = "4" <?php echo  (isset($_SESSION['time_end']) && $_SESSION['time_end'] == 4) ? 'selected = "selected"' : null ?>>1 Неделю</option>
        <option value = "5" <?php echo  (isset($_SESSION['time_end']) && $_SESSION['time_end'] == 5) ? 'selected = "selected"' : null ?>>1 месяц</option>
        <option value = "6" <?php echo  (isset($_SESSION['time_end']) && $_SESSION['time_end'] == 6) ? 'selected = "selected"' : null ?>>3 месяца</option>
    </select><br />
    <input type = 'submit' name = 'save' value = 'Сохранить' /> <input type = 'submit' name = 'delete' value = 'Удалить' /> <input type = 'submit' name = 'cancel' value = 'Отменить' /><br />
</form>
<?php
include_once '../sys/inc/tfoot.php';
exit;
?>