<?php
/**
 * Created by PhpStorm.
 * @author: Valeriy Shikuta aka Str@nnik
 * Time: 30.06.16 14:43
 * File: send_mail.php
 */

defined('_IN_JOHNADM') or die('Error: restricted access');

// Проверка на права
if ($rights < 7) {
    header('Location: http://johncms.com/?err');
    exit;
}

echo '<div class="phdr"><a href="index.php"><b>Админ панель</b></a>&nbsp;|&nbsp;Рассылка почты</div>';

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $msg = isset($_POST['msg']) ? functions::checkin(mb_substr(trim($_POST['msg']), 0, 5000)) : '';
    $me = isset($_POST['me']) ? abs(intval($_POST['me'])) : 0;
    $author = isset($_POST['author']) ? abs(intval($_POST['author'])) : 0;
    $who = isset($_POST['who']) ? $_POST['who'] : '';

    $error = array();
    if (empty($msg))
        $error[] = 'Введите текст сообщения!';
    if (empty($who))
        $error[] = 'Вы не выбрали адресатов!';
    if (in_array('all', $who) && (in_array('only_adm', $who) || in_array('only_usr', $who) || in_array('only_mans', $who) || in_array('only_girls', $who)))
        $error[] = 'Некоректный выбор адресатов! Нельзя одновременно выбирать всех пользователей и разные "касты" пользователей сайта!';
    if ((in_array('only_adm', $who) && in_array('only_usr', $who)) || (in_array('only_mans', $who) && in_array('only_girls', $who)))
        $error[] = 'Некоректный выбор адресатов! Нельзя одновременно выбирать юзеров и админов или парней и девушек!';

    if (!$error) {
        if (in_array('all', $who)) // Все пользователи
            $sql = "SELECT id FROM users WHERE id != $user_id";
        elseif (in_array('only_adm', $who)) // Только администарации
            $sql = "SELECT id FROM users WHERE rights > 0 AND id != $user_id";
        elseif (in_array('only_adm', $who) && in_array('only_mans', $who)) //Только администрации с уточнением только парням
            $sql = "SELECT id FROM users WHERE rights > 0 AND sex = 'm' AND id != $user_id";
        elseif (in_array('only_adm', $who) && in_array('only_girls', $who)) //Только администрации с уточнением только девушкам
            $sql = "SELECT id FROM users WHERE rights > 0 AND sex = 'zh' AND id != $user_id";
        elseif (in_array('only_usr', $who)) // Только простым юзерам
            $sql = "SELECT id FROM users WHERE rights = 0 AND id != $user_id";
        elseif (in_array('only_usr', $who) && in_array('only_mans', $who)) // Только простым юзерам с уточнением только парням
            $sql = "SELECT id FROM users WHERE rights = 0 AND sex = 'm' AND id != $user_id";
        elseif (in_array('only_usr', $who) && in_array('only_girls', $who)) // Только простым юзерам с уточнением только девушкам
            $sql = "SELECT id FROM users WHERE rights = 0 AND sex = 'zh' AND id != $user_id";
        elseif (in_array('only_mans', $who)) // Только парням
            $sql = "SELECT id FROM users WHERE sex = 'm' AND id != $user_id";
        elseif (in_array('only_girls', $who)) // Только девушкам
            $sql = "SELECT id FROM users WHERE sex = 'zh' AND id != $user_id";
        else
            echo functions::display_error('Допущена еще какая-то ошибка...', '<a href="?act=send_mail">Попробовать еще раз</a>');

        $req = mysql_query($sql) or die(mysql_error());
        while ($res = mysql_fetch_assoc($req))
            $arr_des[] = $res['id'];
        if ($me == 1)
            $arr_des[] = $user_id;

        if (!empty($arr_des)) {
            if ($author == 1)
                $msg .= "\n\nС уважением, [b]$login [/b]";
            foreach ($arr_des as $des) {
                $sql = "INSERT INTO `cms_mail` SET
                    `user_id` =  0,
                    `from_id` = $des,
                    `text` = '" . mysql_real_escape_string($msg) . "',
                    `time` = " . time() . ",
                    `sys` = 1,
                    `them` = 'Рассылка почты'";
                mysql_query($sql) or die(mysql_error());
            }
            echo '<div class="gmenu">Письма получили ' . count($arr_des) . ' пользователя/ей сайта!</div>';
            header('Refresh:3; url=?act=send_mail');
        }
        else {
            echo functions::display_error('К сожалению, выбранных адресатов не существует...', '<a href="?act=send_mail">Попробовать еще раз</a>');
        }
    }
    else {
        echo functions::display_error($error, '<a href="?act=send_mail">Попробовать еще раз</a>');
    }
}
else {
    echo '<div class="gmenu"><form name="form" action="?act=send_mail" method="post">' .
        '<p><b>Текст сообщения (5000):</b></p>' . bbcode::auto_bb('form', 'msg') .
        '<textarea name="msg" rows="' . $set_user['field_h'] . '"></textarea>' .
        '<p><b>Кому отправлять (по умолчанию автору рассылки письмо не приходит):</b></p>' .
        '<input type="checkbox" name="me" value="1">&nbsp;Отправить письмо автору рассылки<br>' .
        '<input type="checkbox" name="who[]" value="only_adm">&nbsp;Рассылка только администрации<br>' .
        '<input type="checkbox" name="who[]" value="only_usr">&nbsp;Рассылка только простым юзерам<br>' .
        '<input type="checkbox" name="who[]" value="all">&nbsp;Рассылка всем пользователям сайта<br>' .
        '<input type="checkbox" name="who[]" value="only_mans">&nbsp;Рассылка только парням<br>' .
        '<input type="checkbox" name="who[]" value="only_girls">&nbsp;Рассылка только девушкам' .
        '<p><i>* Пункты "Рассылка только парням" и "Рассылка только девушкам" также можно использовать как уточнение пунктам "Рассылка только администрации" и "Рассылка только простым юзерам"</i></p>' .
        '<p><b>Настройки (по умолчанию включено отображение автора рассылки):</b></p>' .
        '<input type="checkbox" name="author" value="1" checked>&nbsp;Указать автора рассылки' .
        '<p><input type="submit" value="Отправить рассылку"></p>' .
        '</form></div>';
}

echo '<div class="phdr"><a href="index.php">Назад</a></div>';