View file board/admin.php

File size: 11.81Kb
<?php
define('_IN_JOHNCMS', 1);
$headmod = 'board';
$textl = 'Доска объявлений | Админка';
require_once '../incfiles/core.php';
require_once '../incfiles/head.php';

if ($rights >= 7)
{
    $req = mysql_query("SELECT * FROM `board_settings`");
    while ($res = mysql_fetch_row($req)) $set_board[$res[0]] = $res[1];

    echo '<div class="phdr"><a href="./">Доска объявлений</a>&nbsp;|&nbsp;Админка</div>';

    switch ($act)
    {
        case 'new_cat';
            if (isset($_POST['submit']))
            {
                $name = isset($_POST['name']) ? mb_substr(functions::checkin($_POST['name']), 0, 30) : null;
                $cat_id = isset($_POST['cat_id']) ? abs(intval($_POST['cat_id'])) : 0;
                if (!empty($name))
                {
                    mysql_query("INSERT INTO `board_categories` SET
                      `cat_id` = " . $cat_id . ",
                      `name` = '" . mysql_real_escape_string($name) . "'");
                    echo '<div class="gmenu">Категория успешно добавлена! <a href="' . ($id ? './?id=' . $id : './') . '">Продолжить</a></div>';
                }
                else
                {
                    echo '<div class="rmenu">Пустое название категории!&nbsp;<a href="' . $_SERVER['HTTP_REFERER'] . '">Повторить</a></div>';
                }
            }
            else
            {
                echo '<div class="gmenu"><form action="' . ($id ? '?act=new_cat&amp;id=' . $id : '?act=new_cat') . '" method="post">'
                    . '<p>Название (max 30):</p>'
                    . '<input type="text" name="name">';
                if ($id)
                {
                    echo '<p>Категория:</p><select name="cat_id">';
                    $req = mysql_query("SELECT * FROM `board_categories` WHERE `cat_id` = 0");
                    while ($res = mysql_fetch_assoc($req))
                    {
                        echo '<option value="' . $res['id'] . '" ' . ($id && $id ==  $res['id'] ? 'selected' : '') . '>' . $res['name'] . '</option>';
                    }
                    echo '</select>';
                }
                echo '<p><input type="submit" name="submit" value="Добавить"></p>'
                    . '</form></div>';
            }
            break;

        case 'edit_cat':
            $res = mysql_fetch_assoc(mysql_query("SELECT * FROM `board_categories` WHERE `id` = $id"));
            if (isset($_POST['submit']))
            {
                $name = isset($_POST['name']) ? mb_substr(functions::checkin($_POST['name']), 0, 30) : null;
                $cat_id = isset($_POST['cat_id']) ? abs(intval($_POST['cat_id'])) : 0;
                if (!empty($name))
                {
                    mysql_query("UPDATE `board_categories` SET
                      `cat_id` = " . $cat_id . ",
                      `name` = '" . mysql_real_escape_string($name) . "' WHERE `id` = $id");
                    echo '<div class="gmenu">Категория успешно изменена! <a href="./?id=' . $res['cat_id'] . '">Продолжить</a></div>';
                }
            }
            else
            {
                echo '<div class="gmenu"><form action="?act=edit_cat&amp;id=' . $id . '" method="post">'
                    . '<p>Название (max 30):</p>'
                    . '<input type="text" name="name" value="' . $res['name'] . '">';
                if ($res['cat_id'] != 0)
                {
                    echo '<p>Категория:</p><select name="cat_id">';
                    $req = mysql_query("SELECT * FROM `board_categories` WHERE `cat_id` = 0");
                    while ($res_cat = mysql_fetch_assoc($req))
                    {
                        echo '<option value="' . $res_cat['id'] . '" ' . ($res['cat_id'] ==  $res_cat['id'] ? 'selected' : '') . '>' . $res_cat['name'] . '</option>';
                    }
                    echo '</select>';
                }
                echo '<p><input type="submit" name="submit" value="Сохранить"></p>'
                    . '</form></div>';
            }
            echo '<div class="menu"><a href="./?id=' . $res['cat_id'] . '">В категорию</a></div>';
            break;

        case 'del_cat':
            if (isset($_GET['yes']))
            {
                mysql_query("DELETE FROM `board_categories` WHERE `id` = $id");
                $total_cats = mysql_result(mysql_query("SELECT COUNT(*) FROM `board_categories` WHERE `cat_id` = $id"), 0);
                if ($total_cats)
                {
                    $req = mysql_query("SELECT `id` FROM `board_categories` WHERE `cat_id` = $id");
                    while ($res = mysql_fetch_assoc($req))
                    {
                        $array[] = $res['id'];
                    }
                    foreach ($array as $value)
                    {
                        mysql_query("DELETE FROM `board_categories` WHERE `id` = $value");
                        mysql_query("DELETE FROM `board_ads` WHERE `cat_id` = $value");
                    }
                }
                header('location: ./');
            }
            else
            {
                echo '<div class="rmenu">'
                    . '<p>Вы уверенны в том, что желаете удалить данную категорию/подкатегорию? Все вложенные записи будут удалены!</p>'
                    . '<a href="?act=del_cat&amp;id=' . $id . '&amp;yes">Да</a>&nbsp;|&nbsp;<a href="./">Передумал(а)</a>'
                    . '</div>';
            }
            break;

        case 'mod':
            if (isset($_GET['yes']))
            {
                if ($set_board['mail'] == 1)
                {
                    $ad = mysql_fetch_assoc(mysql_query("SELECT * FROM `board_ads` WHERE `id` = $id"));
                    $text = 'Уважаемый, Ваше объявление было успешно промодерировано! Перейти к нему можно по [url=' . $home . '/board/?act=view&id=' . $id . ']ссылке[/url]';
                    mysql_query("INSERT INTO `cms_mail` SET
					  `user_id` =  0,
					  `from_id` = " . $ad['user_id'] . ",
					  `text` = '" . mysql_real_escape_string($text) . "',
					  `time` = " . time() . ",
					  `sys` = '1',
					  `them` = 'Доска объявлений'");
                }
                if (!empty($ad['img']))
                {
                    unlink($home . '/images/board/' . $ad['img'] . '.png');
                    unlink($home . '/images/board/small/' . $ad['img'] . '.png');
                }
                mysql_query("UPDATE `board_ads` SET `status` = 1 WHERE `id` = $id");
                header('location: ?act=mod');
            }
            elseif (isset($_GET['no']))
            {
                if ($set_board['mail'] == 1)
                {
                    $ad = mysql_fetch_assoc(mysql_query("SELECT * FROM `board_ads` WHERE `id` = $id"));
                    $text = 'Уважаемый, Ваше объявление не пройшло модерацию! Скорее всего, оно нарушило правила сайта :(';
                    mysql_query("INSERT INTO `cms_mail` SET
					  `user_id` =  0,
					  `from_id` = " . $ad['user_id'] . ",
					  `text` = '" . mysql_real_escape_string($text) . "',
					  `time` = " . time() . ",
					  `sys` = '1',
					  `them` = 'Доска объявлений'");
                }
                if (!empty($ad['img']))
                {
                    unlink($home . '/images/board/' . $ad['img'] . '.png');
                    unlink($home . '/images/board/small/' . $ad['img'] . '.png');
                }
                mysql_query("DELETE FROM `board_ads` WHERE `id` = $id");
                header('location: ?act=mod');
            }
            else
            {
                $total = mysql_result(mysql_query("SELECT COUNT(*) FROM `board_ads` WHERE `status` = 0"), 0);
                if ($total)
                {
                    $req = mysql_query("SELECT * FROM `board_ads` WHERE `status` = 0 ORDER BY `time` DESC LIMIT $start, $kmess");
                    while ($res = mysql_fetch_assoc($req))
                    {
                        $i = 0;
                        echo ($i % 2) ? '<div class="list1">' : '<div class="list2">';
                        echo (!empty($res['img'])) ? '<img src="../images/board/small/' . $res['img'] . '.png" align="middle" alt="' . $res['img'] . '">' : '<img src="../images/no_board.png" width="25" height="25" align="middle" alt="' . $res['img'] . '">';
                        echo '&nbsp;<a href="./?act=view&amp;id=' . $res['id'] . '">' . $res['name'] . '</a>'
                            . '&nbsp;(<a href="?act=mod&amp;id=' . $res['id'] . '&amp;yes"><span class="green">[Принять]</span></a>'
                            . '&nbsp;|&nbsp;<a href="?act=mod&amp;id=' . $res['id'] . '&amp;no"><span class="red">[Отклонить]</span></a>)'
                            . '</div>';
                        $i++;
                    }
                }
                else
                {
                    echo '<div class="menu">Нету объявлений на модерации</div>';
                }
                echo '<div class="phdr">Всего:&nbsp;' . $total . '</div>';

                if ($total > $kmess)
                    echo '<div class="topmenu">' . functions::display_pagination('?act=mod&amp;', $start, $total, $kmess) . '</div>';
            }
            break;

        case 'settings':
            if (isset($_POST['submit']))
            {
                mysql_query("UPDATE `board_settings` SET `val` = " . abs(intval($_POST['moderation'])) . " WHERE `key` = 'moderation'");
                mysql_query("UPDATE `board_settings` SET `val` = " . abs(intval($_POST['pay'])) . " WHERE `key` = 'pay'");
                mysql_query("UPDATE `board_settings` SET `val` = " . abs(intval($_POST['price'])) . " WHERE `key` = 'price'");
                mysql_query("UPDATE `board_settings` SET `val` = " . abs(intval($_POST['free_days'])) . " WHERE `key` = 'free_days'");
                mysql_query("UPDATE `board_settings` SET `val` = " . abs(intval($_POST['mail'])) . " WHERE `key` = 'mail'");
                header('location: ?act=settings');
            }
            else
            {
                echo '<div class="gmenu"><form action="?act=settings" method="post">'
                    . '<p><input type="checkbox" name="moderation" value="1" ' . ($set_board['moderation'] == 1 ? 'checked' : '') . '>&nbsp;Модерация объявлений</p>'
                    . '<p><input type="checkbox" name="pay" value="1" ' . ($set_board['pay'] == 1 ? 'checked' : '') . '>&nbsp;Платные объявления (не считая бесплатных)</p>'
                    . '<p><input type="checkbox" name="mail" value="1" ' . ($set_board['mail'] == 1 ? 'checked' : '') . '>&nbsp;Уведомлять по почте</p>'
                    . '<p><input type="text" size="2" name="price" value="' . $set_board['price'] . '">&nbsp;Цена (баллов/день)</p>'
                    . '<p><input type="text" size="2" name="free_days" value="' . $set_board['free_days'] . '">&nbsp;Бесплатных дней</p>'
                    . '<p><input type="submit" name="submit" value="Сохранить"></p>'
                    . '</form></div>';
            }
            break;
    }

    echo '<div class="menu"><a href="./">К доске</a></div>';
}
else
{
   header('location: ?');
}
require_once '../incfiles/end.php';