Просмотр файла modules/forum/admin_forum.php

Размер файла: 21.16Kb
<?php

// Уведомление о закрытии форума
if ($system['forum_module'] == '2' && !user_access('view_closed_modules')) {
  # Шапка модуля
  require_once(HOME .'/incfiles/header.php');
  
  echo '<div class="title">Технические работы</div>
  <div class="menu">
  '. output($system['forum_module_about']) .'
  </div>';
  
  echo '<div class="block">
  &raquo; <a href="/">На главную</a>
  </div>';
  
  # Ноги модуля
  require_once(HOME .'/incfiles/footer.php');
}

/**
 * Проверка доступа
 */

# Запрос показа новости
if (!isset($user) || $user['level'] < 14) {
	# Переход на главную
	header('Location: /');
}

/**
 * Удаление раздела
 */
if (isset($user) && $user['level'] == '15' && isset($_GET['del']) && mysql_result(mysql_query("SELECT * FROM `forum_r` WHERE `id` = '". num($_GET['forum_r_id']) ."'"), 0) != 0 && isset($_POST['no']))
{
  # Возврат к списку
  header('Location: /forum/admin_forum.php');
}

/**
 * Удаление форума
 */
if (isset($user) && $user['level'] > '14' && isset($_GET['del_f']) && mysql_result(mysql_query("SELECT * FROM `forum_f` WHERE `id` = '". num($_GET['forum_f_id']) ."'"), 0) != 0 && isset($_POST['no']))
{
  # Возврат к списку
  header('Location: /forum/admin_forum.php');
}

# Заголовок модуля
$system['page_title'] = 'Список разделов';

# Шапка модуля
require_once(HOME .'/incfiles/header.php');

/**
 * Сохранение раздела
 */
if (isset($user) && $user['level'] == '15' && isset($_GET['create']) && isset($_POST['name']))
{
  # Название
  $name = txt($_POST['name']);

  # Проверка ввода названия
  if (empty($name)) $err .= 'Не введено название<br />';

  # Проверка длины логина
  if (!empty($name) && (strlen_rus($name) < 3 || strlen_rus($name) > 64)) $err .= 'Неверная длина названия. Допустимо от 3 до 64 символов<br />';

  # Проверка занятости названия
  if (mysql_num_rows(mysql_query("SELECT * FROM `forum_r` WHERE `name` = '". input($name) ."'")) != 0) $err .= 'Такой раздел уже существует<br />';

  if (!isset($err))
  {
    mysql_query("INSERT INTO `forum_r` SET `name` = '". input($name) ."'");

    echo '<div class="title">Создание раздела</div>
    <div class="menu">
    Раздел <b>'. output($name) .'</b> успешно создан.
    </div>';

    echo '<div class="block">
    &raquo; <a href="/forum/admin_forum.php?create">Создать еще</a><br />
    &raquo; <a href="/forum/admin_forum.php">Вернуться к списку</a><br />
    &raquo; <a href="/">На главную</a>
    </div>';

    # Ноги модуля
    require_once(HOME .'/incfiles/footer.php');
  }
}

/**
 * Сохранение форума
 */
if (isset($user) && $user['level'] > '14' && isset($_GET['create_f']) && isset($_POST['name']) && isset($_POST['forum_r']))
{
  # Название
  $name = txt($_POST['name']);

  # Проверка ввода названия
  if (empty($name)) $err .= 'Не введено название<br />';

  # Проверка длины логина
  if (!empty($name) && (strlen_rus($name) < 3 || strlen_rus($name) > 64)) $err .= 'Неверная длина названия. Допустимо от 3 до 64 символов<br />';

  # Проверка занятости названия
  if (mysql_num_rows(mysql_query("SELECT * FROM `forum_f` WHERE `name` = '". input($name) ."' AND `r_id` = '". num($_POST['forum_r']) ."'")) != 0) $err .= 'Такой форум уже существует<br />';

  if (!isset($err))
  {
    mysql_query("INSERT INTO `forum_f` SET `name` = '". input($name) ."', `r_id` = '". num($_POST['forum_r']) ."'");

    echo '<div class="title">Создание форум</div>
    <div class="menu">
    Форум <b>'. output($name) .'</b> успешно создан.
    </div>';

    echo '<div class="block">
    &raquo; <a href="/forum/admin_forum.php?create_f">Создать еще</a><br />
    &raquo; <a href="/forum/admin_forum.php">Вернуться к списку</a><br />
    &raquo; <a href="/">На главную</a>
    </div>';

    # Ноги модуля
    require_once(HOME .'/incfiles/footer.php');
  }
}

/**
 * Изменение раздела
 */
if (isset($user) && $user['level'] == '15' && isset($_GET['edit']) && isset($_POST['name']) && mysql_result(mysql_query("SELECT * FROM `forum_r` WHERE `id` = '". num($_GET['forum_r_id']) ."'"), 0) != 0)
{
  # Название
  $name = txt($_POST['name']);

  # Проверка ввода названия
  if (empty($name)) $err .= 'Не введено название<br />';

  # Проверка длины логина
  if (!empty($name) && (strlen_rus($name) < 3 || strlen_rus($name) > 64)) $err .= 'Неверная длина названия. Допустимо от 3 до 64 символов<br />';

  # Проверка занятости названия
  if (mysql_num_rows(mysql_query("SELECT * FROM `forum_r` WHERE `name` = '". input($name) ."'")) != 0) $err .= 'Такой раздел уже существует<br />';

  if (!isset($err))
  {
    mysql_query("UPDATE `forum_r` SET `name` = '". input($name) ."' WHERE `id` = '". num($_GET['forum_r_id']) ."'");

    echo '<div class="title">Изменение раздела</div>
    <div class="menu">
    Раздел <b>'. output($name) .'</b> успешно изменен.
    </div>';

    echo '<div class="block">
    &raquo; <a href="/forum/admin_forum.php">Вернуться к списку</a><br />
    &raquo; <a href="/">На главную</a>
    </div>';

    # Ноги модуля
    require_once(HOME .'/incfiles/footer.php');
  }
}

/**
 * Изменение форума
 */
if (isset($user) && $user['level'] > '14' && isset($_GET['edit_f']) && isset($_POST['name']) && isset($_POST['forum_r']) && mysql_result(mysql_query("SELECT * FROM `forum_f` WHERE `id` = '". num($_GET['forum_f_id']) ."'"), 0) != 0)
{
  # Название
  $name = txt($_POST['name']);

  # Проверка ввода названия
  if (empty($name)) $err .= 'Не введено название<br />';

  # Проверка длины логина
  if (!empty($name) && (strlen_rus($name) < 3 || strlen_rus($name) > 64)) $err .= 'Неверная длина названия. Допустимо от 3 до 64 символов<br />';

  if (!isset($err))
  {
    mysql_query("UPDATE `forum_f` SET `name` = '". input($name) ."', `r_id` = '". num($_POST['forum_r']) ."' WHERE `id` = '". num($_GET['forum_f_id']) ."'");

    echo '<div class="title">Изменение форума</div>
    <div class="menu">
    Форум <b>'. output($name) .'</b> успешно изменен.
    </div>';

    echo '<div class="block">
    &raquo; <a href="/forum/admin_forum.php">Вернуться к списку</a><br />
    &raquo; <a href="/">На главную</a>
    </div>';

    # Ноги модуля
    require_once(HOME .'/incfiles/footer.php');
  }
}

/**
 * Удаление раздела
 */
if (isset($user) && $user['level'] == '15' && isset($_GET['del']) && mysql_result(mysql_query("SELECT * FROM `forum_r` WHERE `id` = '". num($_GET['forum_r_id']) ."'"), 0) != 0 && isset($_POST['yes']))
{
  mysql_query("DELETE FROM `forum_r` WHERE `id` = '". num($_GET['forum_r_id']) ."'");

  $sql_forum_f = mysql_query("SELECT * FROM `forum_f` WHERE `r_id` = '". num($_GET['forum_r_id']) ."'");

  while ($forum_f = mysql_fetch_assoc($sql_forum_f))
  {
    mysql_query("DELETE FROM `forum_f` WHERE `id` = '$forum_f[id]'");
    mysql_query("DELETE FROM `forum_p` WHERE `f_id` = '$forum_f[id]'");
    mysql_query("DELETE FROM `forum_t` WHERE `f_id` = '$forum_f[id]'");
  }

  echo '<div class="title">Удаление раздела</div>
  <div class="menu">
  Раздел успешно удален.
  </div>';

  echo '<div class="block">
  &raquo; <a href="/forum/admin_forum.php">Вернуться к списку</a><br />
  &raquo; <a href="/">На главную</a>
  </div>';

  # Ноги модуля
  require_once(HOME .'/incfiles/footer.php');
}

/**
 * Удаление форума
 */
if (isset($user) && $user['level'] > '14' && isset($_GET['del_f']) && mysql_result(mysql_query("SELECT * FROM `forum_f` WHERE `id` = '". num($_GET['forum_f_id']) ."'"), 0) != 0 && isset($_POST['yes']))
{
  mysql_query("DELETE FROM `forum_f` WHERE `id` = '". num($_GET['forum_f_id']) ."'");
  mysql_query("DELETE FROM `forum_p` WHERE `f_id` = '". num($_GET['forum_f_id']) ."'");
  mysql_query("DELETE FROM `forum_t` WHERE `f_id` = '". num($_GET['forum_f_id']) ."'");

  echo '<div class="title">Удаление форума</div>
  <div class="menu">
  Форум успешно удален.
  </div>';

  echo '<div class="block">
  &raquo; <a href="/forum/admin_forum.php">Вернуться к списку</a><br />
  &raquo; <a href="/">На главную</a>
  </div>';

  # Ноги модуля
  require_once(HOME .'/incfiles/footer.php');
}

/**
 * Раздел вверх
 */
if (isset($user) && $user['level'] == '15' && isset($_GET['plus_r']) && mysql_result(mysql_query("SELECT * FROM `forum_r` WHERE `id` = '". num($_GET['forum_r_id']) ."'"), 0) != 0)
{
  $pos = mysql_result(mysql_query("SELECT `pos` FROM `forum_r` WHERE `id` = '". num($_GET['forum_r_id']) ."'"), 0) + 1;

  mysql_query("UPDATE `forum_r` SET `pos` = '$pos' WHERE `id` = '". num($_GET['forum_r_id']) ."'");

  echo '<div class="title">Изменение позиции</div>
  <div class="menu">
  Позиция раздела успешно увеличена.
  </div>';

  echo '<div class="block">
  &raquo; <a href="/forum/admin_forum.php">Вернуться к списку</a><br />
  &raquo; <a href="/">На главную</a>
  </div>';

  # Ноги модуля
  require_once(HOME .'/incfiles/footer.php');
}

/**
 * Раздел вниз
 */
if (isset($user) && $user['level'] == '15' && isset($_GET['minus_r']) && mysql_result(mysql_query("SELECT * FROM `forum_r` WHERE `id` = '". num($_GET['forum_r_id']) ."'"), 0) != 0)
{
  $pos = mysql_result(mysql_query("SELECT `pos` FROM `forum_r` WHERE `id` = '". num($_GET['forum_r_id']) ."'"), 0) - 1;

  mysql_query("UPDATE `forum_r` SET `pos` = '$pos' WHERE `id` = '". num($_GET['forum_r_id']) ."'");

  echo '<div class="title">Изменение позиции</div>
  <div class="menu">
  Позиция раздела успешно уменьшена.
  </div>';

  echo '<div class="block">
  &raquo; <a href="/forum/admin_forum.php">Вернуться к списку</a><br />
  &raquo; <a href="/">На главную</a>
  </div>';

  # Ноги модуля
  require_once(HOME .'/incfiles/footer.php');
}

/**
 * Форум вверх
 */
if (isset($user) && $user['level'] >= '14' && isset($_GET['plus_f']) && mysql_result(mysql_query("SELECT * FROM `forum_f` WHERE `id` = '". num($_GET['forum_f_id']) ."'"), 0) != 0)
{
  $pos = mysql_result(mysql_query("SELECT `pos` FROM `forum_f` WHERE `id` = '". num($_GET['forum_f_id']) ."'"), 0) + 1;

  mysql_query("UPDATE `forum_f` SET `pos` = '$pos' WHERE `id` = '". num($_GET['forum_f_id']) ."'");

  echo '<div class="title">Изменение позиции</div>
  <div class="menu">
  Позиция форума успешно увеличена.
  </div>';

  echo '<div class="block">
  &raquo; <a href="/forum/admin_forum.php">Вернуться к списку</a><br />
  &raquo; <a href="/">На главную</a>
  </div>';

  # Ноги модуля
  require_once(HOME .'/incfiles/footer.php');
}

/**
 * Форум вниз
 */
if (isset($user) && $user['level'] >= '14' && isset($_GET['minus_f']) && mysql_result(mysql_query("SELECT * FROM `forum_f` WHERE `id` = '". num($_GET['forum_f_id']) ."'"), 0) != 0)
{
  $pos = mysql_result(mysql_query("SELECT `pos` FROM `forum_f` WHERE `id` = '". num($_GET['forum_f_id']) ."'"), 0) - 1;

  mysql_query("UPDATE `forum_f` SET `pos` = '$pos' WHERE `id` = '". num($_GET['forum_f_id']) ."'");

  echo '<div class="title">Изменение позиции</div>
  <div class="menu">
  Позиция форума успешно уменьшена.
  </div>';

  echo '<div class="block">
  &raquo; <a href="/forum/admin_forum.php">Вернуться к списку</a><br />
  &raquo; <a href="/">На главную</a>
  </div>';

  # Ноги модуля
  require_once(HOME .'/incfiles/footer.php');
}


error($err);



/**
 * Создание раздела
 */
if (isset($user) && $user['level'] == '15' && isset($_GET['create']))
{
  echo '<div class="title">Создание раздела</div>
  <form method="post" action="/forum/admin_forum.php?create">
  <div class="menu">
  Название:<br />
  <input type="text" name="name" /><br />
  <input type="submit" value="Добавить" />
  </div>
  </form>';

  echo '<div class="block">
  &raquo; <a href="/forum/admin_forum.php">Отменить действие</a><br />
  &raquo; <a href="/">На главную</a>
  </div>';

  # Ноги модуля
  require_once(HOME .'/incfiles/footer.php');
}

/**
 * Создание форума
 */
if (isset($user) && $user['level'] > '14' && isset($_GET['create_f']))
{
  echo '<div class="title">Создание форума</div>
  <form method="post" action="/forum/admin_forum.php?create_f">
  <div class="menu">
  Название:<br />
  <input type="text" name="name" /><br />
  Раздел:<br />
  <select name="forum_r" size="1">';

  $sql_forum_r = mysql_query("SELECT * FROM `forum_r` ORDER BY id");

  while ($forum_r = mysql_fetch_assoc($sql_forum_r))
  {
      echo '<option value="'. $forum_r['id'] .'">'. $forum_r['name'] .'</option>';
  }

  echo '</select><br />
  <input type="submit" value="Добавить" />
  </div>
  </form>';

  echo '<div class="block">
  &raquo; <a href="/forum/admin_forum.php">Отменить действие</a><br />
  &raquo; <a href="/">На главную</a>
  </div>';

  # Ноги модуля
  require_once(HOME .'/incfiles/footer.php');
}

/**
 * Изменение раздела
 */
if (isset($user) && $user['level'] == '15' && isset($_GET['edit']) && mysql_result(mysql_query("SELECT * FROM `forum_r` WHERE `id` = '". num($_GET['forum_r_id']) ."'"), 0) != 0)
{
  echo '<div class="title">Изменение раздела</div>
  <form method="post" action="/forum/admin_forum.php?edit&amp;forum_r_id='. num($_GET['forum_r_id']) .'">
  <div class="menu">
  Название:<br />
  <input type="text" name="name" value="'. output(mysql_result(mysql_query("SELECT `name` FROM `forum_r` WHERE `id` = '". num($_GET['forum_r_id']) ."'"), 0)) .'" /><br />
  <input type="submit" value="Сохранить" />
  </div>
  </form>';

  echo '<div class="block">
  &raquo; <a href="/forum/admin_forum.php">Отменить действие</a><br />
  &raquo; <a href="/">На главную</a>
  </div>';

  # Ноги модуля
  require_once(HOME .'/incfiles/footer.php');
}

/**
 * Изменение форума
 */
if (isset($user) && $user['level'] >= '14' && isset($_GET['edit_f']) && mysql_result(mysql_query("SELECT * FROM `forum_f` WHERE `id` = '". num($_GET['forum_f_id']) ."'"), 0) != 0)
{
  echo '<div class="title">Изменение форума</div>
  <form method="post" action="/forum/admin_forum.php?edit_f&amp;forum_f_id='. num($_GET['forum_f_id']) .'">
  <div class="menu">
  Название:<br />
  <input type="text" name="name" value="'. output(mysql_result(mysql_query("SELECT `name` FROM `forum_f` WHERE `id` = '". num($_GET['forum_f_id']) ."'"), 0)) .'" /><br />
  Раздел:<br />
  <select name="forum_r" size="1">';

  $sql_forum_r = mysql_query("SELECT * FROM `forum_r` ORDER BY id");

  while ($forum_r = mysql_fetch_assoc($sql_forum_r))
  {
      echo '<option value="'. $forum_r['id'] .'"'. ($forum_r['id'] == mysql_result(mysql_query("SELECT `r_id` FROM `forum_f` WHERE `id` = '". num($_GET['forum_f_id']) ."'"), 0)?' selected="selected"':NULL) .'>'. $forum_r['name'] .'</option>';
  }

  echo '</select><br />
  <input type="submit" value="Сохранить" />
  </div>
  </form>';

  echo '<div class="block">
  &raquo; <a href="/forum/admin_forum.php">Отменить действие</a><br />
  &raquo; <a href="/">На главную</a>
  </div>';

  # Ноги модуля
  require_once(HOME .'/incfiles/footer.php');
}

/**
 * Удаление раздела
 */
if (isset($user) && $user['level'] == '15' && isset($_GET['del']) && mysql_result(mysql_query("SELECT * FROM `forum_r` WHERE `id` = '". num($_GET['forum_r_id']) ."'"), 0) != 0)
{
  echo '<div class="title">Удаление раздела</div>
  <form method="post" action="/forum/admin_forum.php?del&amp;forum_r_id='. num($_GET['forum_r_id']) .'">
  <div class="menu">
  Подтверждаете удаление раздела?<br />
  <input type="submit" name="yes" value="Да, удалить" /> <input type="submit" name="no" value="Нет, вернуться назад" />
  </div>
  </form>';

  echo '<div class="block">
  &raquo; <a href="/forum/admin_forum.php">Отменить действие</a><br />
  &raquo; <a href="/">На главную</a>
  </div>';

  # Ноги модуля
  require_once(HOME .'/incfiles/footer.php');
}

/**
 * Удаление форума
 */
if (isset($user) && $user['level'] > '14' && isset($_GET['del_f']) && mysql_result(mysql_query("SELECT * FROM `forum_f` WHERE `id` = '". num($_GET['forum_f_id']) ."'"), 0) != 0)
{
  echo '<div class="title">Удаление форума</div>
  <form method="post" action="/forum/admin_forum.php?del_f&amp;forum_f_id='. num($_GET['forum_f_id']) .'">
  <div class="menu">
  Подтверждаете удаление форума?<br />
  <input type="submit" name="yes" value="Да, удалить" /> <input type="submit" name="no" value="Нет, вернуться назад" />
  </div>
  </form>';

  echo '<div class="block">
  &raquo; <a href="/forum/admin_forum.php">Отменить действие</a><br />
  &raquo; <a href="/">На главную</a>
  </div>';

  # Ноги модуля
  require_once(HOME .'/incfiles/footer.php');
}

# Кол-во пользователей
$k_forum_r = mysql_result(mysql_query("SELECT COUNT(*) FROM `forum_r`"), 0);

# Старт навигации
nav_start($k_forum_r, 100);

if ($k_forum_r == 0)
{
    echo '<div class="title">Список разделов</div>
    <div class="menu">Разделов нет</div>';
}
else
{
    $sql_forum_r = mysql_query("SELECT * FROM `forum_r` ORDER BY pos DESC, name ASC");

    while ($forum_r = mysql_fetch_assoc($sql_forum_r))
    {
        echo '<div class="title">'. output($forum_r['name']) . ($user['level'] == '15'?' [<a href="/forum/admin_forum.php?forum_r_id='. $forum_r['id'] .'&amp;plus_r">+</a>|<a href="/forum/admin_forum.php?forum_r_id='. $forum_r['id'] .'&amp;minus_r">-</a>] [<a href="/forum/admin_forum.php?edit&amp;forum_r_id='. $forum_r['id'] .'">изм</a>] [<a href="/forum/admin_forum.php?del&amp;forum_r_id='. $forum_r['id'] .'">уд</a>]':NULL) .'</div>';

        if (mysql_result(mysql_query("SELECT COUNT(*) FROM `forum_f` WHERE `r_id` = '". $forum_r['id'] ."'"), 0) != 0)
        {
            $sql_forum_f = mysql_query("SELECT * FROM `forum_f` WHERE `r_id` = '". $forum_r['id'] ."' ORDER BY pos DESC, name ASC LIMIT $start, 100");

            while ($forum_f = mysql_fetch_assoc($sql_forum_f))
            {

                echo '<div class="menu">
                &raquo; <a href="/forum/forum.php?forum_f_id='. $forum_f['id'] .'">'. $forum_f['name'] .'</a> ('. mysql_result(mysql_query("SELECT COUNT(*) FROM `forum_t` WHERE `f_id` = '$forum_f[id]'"), 0) .') '. ($user['level'] >= '14'?' [<a href="/forum/admin_forum.php?forum_f_id='. $forum_f['id'] .'&amp;plus_f">+</a>|<a href="/forum/admin_forum.php?forum_f_id='. $forum_f['id'] .'&amp;minus_f">-</a>] [<a href="/forum/admin_forum.php?edit_f&amp;forum_f_id='. $forum_f['id'] .'">изм</a>] [<a href="/forum/admin_forum.php?del_f&amp;forum_f_id='. $forum_f['id'] .'">уд</a>]':NULL) .'
                </div>';
            }

                # Вывод навигации
                view_nav();
        }
        else
        {
            echo '<div class="menu">Форумов нет</div>';
        }
    }

    # Вывод навигации
    view_nav();
}

echo '<div class="block">
'. ($user['level'] == '15'?'&raquo; <a href="/forum/admin_forum.php?create">Создать раздел</a><br />':NULL) .'
'. ($user['level'] > '14' && mysql_result(mysql_query("SELECT COUNT(*) FROM `forum_r`"), 0) != 0?'&raquo; <a href="/forum/admin_forum.php?create_f">Создать форум</a><br />':NULL) .'
&raquo; <a href="/">На главную</a>
</div>';

# Ноги модуля
require_once(HOME .'/incfiles/footer.php');

?>