<?php

/* DCMS Special
 * Дата последнего редактирования 10.10.2016
 * Модифицировал densnet
 */

foreach (array('start', 'compress', 'sess', 'settings', 'db_connect', 'ipua', 'fnc', 'user') as $inc) {
    require_once "../../sys/inc/$inc.php";
}

access('adm_news_edit', null, 'index.php?' . SID);

$news = $db->get_row($db->query("SELECT * FROM `news` WHERE `id` = '" . intval($_GET['edit']) . "' LIMIT 1"));

$q = $db->super_query("SELECT COUNT(*) as count FROM `news` WHERE `id` = '$news[id]' LIMIT 1");
if ($q['count'] == 0) {
    header("Location: ?" . SID);
    exit;
}

if (isset($_GET['img'])) {
    if (isset($_GET['save']) && isset($_POST['add'])) {
        if (isset($_FILES['file'])) {
            $type = $_FILES['file']['type'];
            if ($type !== 'image/jpeg' && $type !== 'image/jpg' && $type !== 'image/gif' && $type !== 'image/png') {
                $err = lang('Это не изображение');
            }
        }
        if (!isset($err)) {
            $tmp = $_FILES['file']['tmp_name'];
            unlink(H . 'modules/news/images/' . $news['id'] . '.png');
            move_uploaded_file($tmp, H . 'modules/news/images/' . $news['id'] . '.png');
            chmod(H . 'modules/news/images/' . $news['id'] . '.png', 0777);
            header("location: ?edit=$news[id]");
        }
    }
    err();

    #Навигация
    echo "<div class='list-group-item-null list-group-item-grey'><small>";
    echo "<a href='/' class='hint--right' data-hint='" . lang('На главную') . "'><i class='fa fa-home fa-lg'></i></a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo "<a href='" . DIR_NEWS . "'>" . lang('Новости') . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo "<a href='" . DIR_NEWS . "?news=$news[id]'>" . cutStr($news['title'], 30) . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo lang('Файл');
    echo "</small></div><br />";

    echo "<form method='post' class='list-group-item-null' action='?edit=$news[id]&amp;img&amp;save' enctype='multipart/form-data'>";

    $doc->File('file', 'Файл');

    $doc->Button('btn btn-success btn-sm', 'add', 'plus', 'Добавить');

    echo "</form>";
} else {
    if (isset($_POST['title']) && isset($_POST['msg']) && isset($_POST['link']) && isset($_POST['ok'])) {

        $title = esc($_POST['title'], 1);
        $link = esc($_POST['link'], 1);

        if ($link != NULL && !preg_match('#^https?://#i', $link) && !preg_match('#^/#', $link)) {
            $link = '/' . $link;
        }

        $msg = esc($_POST['msg']);

        if (utf8_strlen($title) > 250) {
            $err = lang('Заголовок длинее 250-ти символов');
        }

        if (utf8_strlen($title) < 3) {
            $err = lang('Заголовок короче 3-х символов');
        }

        $mat = antimat($title);

        if ($mat) {
            $err[] = lang("В заголовке обнаружен мат") . ": $mat";
        }

        if (utf8_strlen($msg) > 10024) {
            $err = lang('Содержание длинее 10024-х символов');
        }

        if (utf8_strlen($msg) < 5) {
            $err = lang('Содержание короче 5-ти символов');
        }

        $mat = antimat($msg);

        if ($mat) {
            $err[] = lang("В содержании обнаружен мат") . ": $mat";
        }

        if (isset($_POST['tags']) && $_POST['tags'] != NULL) {
            $tags = esc(stripcslashes(htmlspecialchars($_POST['tags'])));

            if (utf8_strlen($tags) < 2) {
                $err[] = lang('Слишком короткие теги');
            }
            if (utf8_strlen($tags) > 128) {
                $err[] = lang('Слишком длинные теги');
            }

            $mat = antimat($tags);

            if ($mat) {
                $err[] = lang('В тегах обнаружен мат') . ': ' . $mat;
            }
            $tags = $db->safesql($tags);
        } else {
            $tags = NULL;
        }

        $title = $db->safesql($_POST['title']);
        $msg = $db->safesql($_POST['msg']);

        $news['close'] = intval($_POST['close']);
        $db->query("UPDATE `news` SET `close` = '" . $news['close'] . "' WHERE `id` = '$news[id]' LIMIT 1");

        if (!isset($err)) {
            $ch = intval($_POST['ch']);
            $mn = intval($_POST['mn']);
            $main_time = time() + $ch * $mn * 60 * 60 * 24;

            if ($main_time <= time()) {
                $main_time = 0;
            }

            $db->query("UPDATE `news` SET `title` = '$title', `msg` = '$msg', `time_edit` = '$time', `link` = '$link', `tags` = '$tags', `avtor_edit` = '$user[nick]', `main_time` = '$main_time' WHERE `id` = '$news[id]' LIMIT 1");
            $_SESSION['message'] = lang('Изменения сохранены');
            header("Location: ?news=$news[id]");
            exit;
        }
    }

    $set['title'] = lang('Новости') . ' - ' . lang('Редактирование');

    require_once H . 'sys/inc/thead.php';

    err();

    if (isset($_GET['del_img']) && is_file(H . 'modules/news/images/' . $news['id'] . '.png')) {
        unlink(H . 'modules/news/images/' . $news['id'] . '.png');
        header("Location:?edit=$news[id]");
    }

    #Навигация
    echo "<div class='list-group-item-null list-group-item-grey'><small>";
    echo "<a href='/' class='hint--right' data-hint='" . lang('На главную') . "'><i class='fa fa-home fa-lg'></i></a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo "<a href='" . DIR_NEWS . "'>" . lang('Новости') . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo "<a href='" . DIR_NEWS . "?news=$news[id]'>" . cutStr($news['title'], 30) . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo lang('Редактирование');
    echo "</small></div><br />";

    echo "<form class='list-group-item-null' name='edit' method='POST' action='?edit=$news[id]'>\n";

    $doc->Input('title', 'Заголовок новости', 250, "$news[title]", 'form-control', 'text', 'required');
    $doc->Input('link', 'Ссылка на источник', 200, "$news[link]");

    echo lang('Содержание новости') . "<br />";
    echo auto_bb("edit", "msg");
    echo "<textarea name='msg' required class='form-control'>$news[msg]</textarea><br />";

    $doc->Input('tags', 'Метки', 128, "$news[tags]");

    echo "<br />";
    echo lang('Файл') . ": ";
    if (is_file(H . 'modules/news/images/' . $news['id'] . '.png')) {
        echo "<a href='?edit=$news[id]&amp;img'><small>" . lang('Заменить') . "</small></a> | ";
        echo "<a href='?edit=$news[id]&amp;del_img'><small>" . lang('Удалить') . "</small></a>";
    } else {
        echo "<a href='?edit=$news[id]&amp;img' title='" . lang('Прикрепить изображение') . "'><i class='fa fa-paperclip fa-fw'></i> " . lang('Прикрепить') . "</a>";
    }

    if (is_file(H . 'modules/news/images/' . $news['id'] . '.png')) {
        echo "<br /><img src='" . DIR_NEWS . "images/$news[id].png' style = 'border: 1px solid #CCDDED; padding: 2px; border-radius: 5px; max-width: 150px;' />";
    }

    echo "<hr>";

    echo "<b>" . lang('Кто может комментировать') . "</b><br />";
    $doc->Radio('close', 'Все', 0, "" . ($news['close'] == 0 ? ' checked="checked"' : null) . "", 'users');
    $doc->Radio('close', 'Никто', 1, "" . ($news['close'] == 1 ? ' checked="checked"' : null) . "", 'lock');

    echo "<br />";

    echo lang('Показывать');
    echo "<input name='ch' maxlength='64' type='number' value='" . (isset($_POST['ch']) ? intval($_POST['ch']) : '1') . "' class='form-control' style='width: 20%'><br />";

    echo "<select class='custom-select' name='mn'>";
    echo "<option value='0' " . (isset($_POST['mn']) && $_POST['mn'] == 0 ? "selected='selected'" : null) . ">" . lang('Не показывать') . "</option>";
    echo "<option value='1' " . (isset($_POST['mn']) && $_POST['mn'] == 1 ? "selected='selected'" : null) . ">" . lang('Дней') . "</option>";
    echo "<option value='7' " . (isset($_POST['mn']) && $_POST['mn'] == 7 ? "selected='selected'" : null) . ">" . lang('Недель') . "</option>";
    echo "<option value='31' " . (isset($_POST['mn']) && $_POST['mn'] == 31 ? "selected='selected'" : null) . ">" . lang('Месяцев') . "</option>";
    echo "</select>";

    echo "<br /><br />";

    $doc->Button('btn btn-success btn-sm', 'ok', 'save', 'Сохранить');

    echo "</form>";
}

require_once H . 'sys/inc/tfoot.php';
