Файл: adm_redit.php
Строк: 181
<?php
/**
* @author [FaNiska]
* @copyright 2009
* Загруз центр
* Предложения, идеи, вопросы и об ошибках писать в icq 65-64-538 или на mobi-m-ru@ya.ru
*/
include 'inc/db_connect.php';
include 'inc/function.php';
include 'inc/set.php';
include 'inc/adm_head.php';
require 'inc/adm.php';
if (isset($_GET['act']) && $_GET['act'] == 'new')
{
if (isset($_POST['name']) && isset($_POST['ok']))
{
if ($_POST['name'] == null)
{
echo '<div>Ошибка. Нужно ввести название папки раздела, т.к. пустое имя недопустимо.</div>';
} else
{
$newdir_serv = retranslit(esc($_POST['name'], 1));
$newdir_serv = ereg_replace('^(([0-9]{1,3}))_(.*)', '\1_\2', $newdir_serv);
if (@mkdir('files/' . $newdir_serv, 0777))
{
@chmod('files/' . $newdir_serv, 0777);
$name = esc($_POST['name'], 1);
$name = ereg_replace('^(([0-9]{1,3}))_(.*)', '\2', $name);
mysql_query("INSERT INTO `category` (`r_name`, `s_name`, `folder`) VALUES ('$name', 'files/$newdir_serv', 'files/');");
$sql = 'CREATE TABLE IF NOT EXISTS `' . $newdir_serv . '` (
`id` int(11) NOT NULL auto_increment,
`id_p` int(11) NOT NULL,
`type` set('1','2') NOT NULL,
`r_name` varchar(255) NOT NULL,
`s_name` varchar(255) NOT NULL,
`f_ras` varchar(16) NOT NULL,
`folder` varchar(255) NOT NULL,
`url_link` varchar(255) NOT NULL,
`scr_link` varchar(255) NOT NULL,
`ico` TINYINT(4) NOT NULL,
`about` text NOT NULL,
`s_about` text NOT NULL,
`size` bigint(20) NOT NULL,
`p_i_f` varchar(32) NOT NULL,
`lastload` int(11) NOT NULL,
`up_time` int(11) NOT NULL,
`sizetime` int(11) NOT NULL,
`plus` int(5) NOT NULL,
`minus` int(5) NOT NULL,
`por` int(11) NOT NULL,
`gr_id` int(11) NOT NULL,
`count` int(11) NOT NULL,
PRIMARY KEY (`id`),
INDEX `id_p` (`id_p`),
UNIQUE KEY `s_name` (`s_name`),
INDEX `folder` (`folder`),
INDEX `up_time` (`up_time`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;';
$res = mysql_query($sql);
echo "Раздел $name ($newdir_serv) успешно создана!";
} else
{
echo "Ошибка при создании раздела $name ($newdir_serv)";
}
}
} else
{
echo '<form action="" method="post">
<b>Название новой папки</b> (можно на русском, при создании <b>желательно использовать только буквы, цифры и знак подчеркивания _</b>. Позже имя раздела можно переименовать в любое.):<br />
<input type="text" value="" name="name" /><br />
<input type="submit" value="Создать" name="ok" />
</form>';
}
} elseif (isset($_GET['act']) && $_GET['act'] == 'link')
{
if (isset($_POST['ok']) && isset($_POST['c']))
{
if ($_POST['c'] == null || valid_int($_POST['id']) == 0)
{
echo '<div>Ошибка. Пустое имя и ID не допустимы</div>';
} else
{
$c = clean($_POST['c']);
$query = mysql_query("SELECT * FROM `$c` WHERE `id`='" . valid_int($_POST['id']) . "' && `type`='1' LIMIT 1");
if (mysql_num_rows($query) == 1)
{
$result = mysql_fetch_array($query);
$name = $result['r_name'];
if (mysql_query("INSERT INTO `category` (`r_name`, `s_name`, `folder`) VALUES (" . quote_smart($name) . ", 'link', '$c|" . valid_int($_POST['id']) . "');"))
{
echo '<div>ПодРаздел, Ссылка <b>' . $name . ' успешно созданы</b></div>';
} else
{
echo '<div>ПодРаздел, Ссылка <b>' . $name . ' не созданы</b></div>';
}
} else
{
echo '<div>Папка с указанным ID <b>' . valid_int($_POST['id']) . ' не найдена</b></div>';
}
}
} else
{
echo '<form action="" method="post">
выберите категорию:<br />
<select name="c">';
$category = mysql_query("SELECT * FROM `category` WHERE `s_name`!='vlink' && `s_name`!='vrazdel' && `s_name`!='link' ORDER BY `por`;");
while ($cat = mysql_fetch_array($category))
{
$table = str_replace('files/', '', $cat['s_name']);
$table = strtok($table, '/');
echo '
<option value="' . $table . '">' . $cat['r_name'] . '</option>
';
}
echo '</select><br />
Укажите ID папки <br />
<input type="text" name="id" value=""/><br />
(название и счетчик папки, id которой вы укажете будут выводится на главную страницу ЗЦ)<br />
<input type="submit" value="Создать" name="ok" />
</form>';
}
} elseif (isset($_GET['act']) && $_GET['act'] == 'vlink')
{
if (isset($_POST['ok']) && isset($_POST['name']) && isset($_POST['link']))
{
if ($_POST['name'] == null || strlen($_POST['name']) <= 3 || $_POST['link'] == null)
{
echo '<div>Ошибка. Нужно ввести название ссылки и адрес, т.к. пустые значения или значения длиной меньше 3 символов недопустимо.</div>';
} else
{
$name = esc($_POST['name'], 1);
$link = esc($_POST['link'], 1);
if (mysql_query("INSERT INTO `category` (`r_name`, `s_name`, `folder`) VALUES (" . quote_smart($name) . ", 'vlink', " . quote_smart($link) . ");"))
{
echo '<div>Ссылка <b>' . $name . ' успешно создана</b></div>';
} else
{
echo '<div>Ссылка <b>' . $name . ' не создана</b></div>';
}
}
} else
{
echo '<form action="" method="post">
<b>Название ссылки</b>:<br />
<input type="text" value="" name="name" /><br />
<b>Адрес ссылки</b>:<br />
<input type="text" value="" name="link" /><br />
<input type="submit" value="Создать" name="ok" />
</form>';
}
} elseif (isset($_GET['act']) && $_GET['act'] == 'raz')
{
if (isset($_POST['ok']) && isset($_POST['name']))
{
if ($_POST['name'] == null || strlen($_POST['name']) <= 3)
{
echo '<div>Ошибка. Нужно ввести название папки раздела, т.к. пустое имя или имя длиной меньше 3 символов недопустимо.</div>';
} else
{
$name = esc($_POST['name'], 1);
if (mysql_query("INSERT INTO `category` (`r_name`, `s_name`, `folder`) VALUES (" . quote_smart($name) . ", 'vrazdel', 'files/');"))
{
echo '<div>Раздел <b>' . $name . ' успешно создан</b></div>';
} else
{
echo '<div>Раздел <b>' . $name . ' не создан</b></div>';
}
}
} else
{
echo '<form action="" method="post">
<b>Название нового раздела</b> (Это не каталог, это просто текстовый раздел для визуального оформления сайта. Позже имя раздела можно переименовать в любое.):<br />
<input type="text" value="" name="name" /><br />
<input type="submit" value="Создать" name="ok" />
</form>';
}
} elseif (isset($_GET['act']) && isset($_GET['cat_id']) && $_GET['act'] == 'rename')
{
$cat_id = valid_int($_GET['cat_id']);
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `category` WHERE `id` = '$cat_id'"), 0) == 0)
{
echo '<div>Произошла ошибка при выборе раздела. Раздела с ID=' . $cat_id . ' не существует</div>';
} elseif (isset($_POST['cat_id']) && isset($_POST['name']))
{
$cat_id = valid_int($_POST['cat_id']);
mysql_query("UPDATE `category` SET `r_name`=" . quote_smart($_POST['name']) . " WHERE `id`=$cat_id;");
echo '<div>Категория ID=' . $cat_id . ' переименована и имеет название ' . $_POST['name'] . '</div><br />';
} else
{
$cat = mysql_fetch_array(mysql_query('SELECT * FROM `category` WHERE `id`=' . $cat_id . ' LIMIT 1;'));
echo '<form action="?act=rename&cat_id=' . $cat['id'] . '" method="post">
<input type="hidden" value="' . $cat_id . '" name="cat_id" />
Название раздела:
<input type="text" value="' . $cat['r_name'] . '" name="name" />
<input type="submit" value="Изменить" />
</form>';
}
} elseif (isset($_GET['act']) && isset($_GET['cat_id']) && $_GET['act'] == 'ico')
{
$cat_id = valid_int($_GET['cat_id']);
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `category` WHERE `id` = '$cat_id'"), 0) == 0)
{
echo '<div>Произошла ошибка при выборе раздела. Раздела с ID=' . $cat_id . ' не существует</div>';
} elseif (isset($_GET['i']))
{
$cat = mysql_fetch_array(mysql_query('SELECT * FROM `category` WHERE `id`=' . $cat_id . ' LIMIT 1;'));
echo '<div>Выбор иконки для раздела <b>' . $cat['r_name'] . '</b></div><div>';
$i = valid_int($_GET['i']);
if (is_file('ico/' . $i . '.gif'))
{
mysql_query("UPDATE `category` SET `ico`='$i' WHERE `id`='$cat[id]';");
echo '<div>Иконка обновлена</div>';
} else
{
echo '<div>Ошибка. Выбранная иконка не найдена.</div>';
}
echo '</div>';
} else
{
$cat = mysql_fetch_array(mysql_query('SELECT * FROM `category` WHERE `id`=' . $cat_id . ' LIMIT 1;'));
echo '<div>Выбор иконки для раздела <b>' . $cat['r_name'] . '</b></div><div>';
$k_post = 100;
$k_page = k_page($k_post, $step);
$page = page($k_page);
$start = $step * $page - $step;
for ($i = $start; $i < ($start + $step); $i++)
{
echo '<a href="?act=ico&cat_id=' . $cat['id'] . '&i=' . $i . '"><img src="ico/' . $i . '.gif" alt="' . $i . '" width="16" height="16" /></a> ';
}
echo '</div>';
$str = str("?act=ico&cat_id=$cat_id&step=$step&", $k_page, $page); // Вывод страниц
echo $str;
}
} elseif (isset($_GET['act']) && isset($_GET['cat_id']) && $_GET['act'] == 'delete')
{
$cat_id = valid_int($_GET['cat_id']);
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `category` WHERE `id` = '$cat_id'"), 0) == 0)
{
echo '<div>Произошла ошибка при выборе раздела. Раздела с ID=' . $cat_id . ' не существует</div>';
} else
{
$cat = mysql_fetch_array(mysql_query('SELECT * FROM `category` WHERE `id`=' . $cat_id . ' LIMIT 1;'));
$cat['s_name'] = str_replace('files/', '', $cat['s_name']);
if (isset($_GET['yes']) && $_GET['yes'] == 'yes')
{
mysql_query("DELETE FROM `category` WHERE `id` = $cat_id LIMIT 1;");
mysql_query("DROP TABLE `$cat[s_name]`;");
mysql_query("OPTIMIZE TABLE `category`;");
echo '<div>Раздел успешно удален!</div>';
} else
{
echo '<div>Внимание. Данное удаление никак не коснется файлов на сервере. Однако если вы удаляете категорию файлов, то описания и названия будут стерты из бд. Подтвердите свой выбор.<br />
<a href="?act=delete&cat_id=' . $cat['id'] . '&yes=yes">Подтверждаю. Удалить!</a> | <a href="?">Отмена</a></div>';
}
}
} elseif (isset($_GET['act']) && isset($_GET['cat_id']) && $_GET['act'] == 'up')
{
$cat_id = valid_int($_GET['cat_id']);
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `category` WHERE `id` = '$cat_id'"), 0) == 0)
{
echo '<div>Произошла ошибка при выборе раздела. Раздела с ID=' . $cat_id . ' не существует</div>';
} else
{
$cat = mysql_fetch_array(mysql_query('SELECT * FROM `category` WHERE `id`=' . $cat_id . ' LIMIT 1;'));
mysql_query("UPDATE `category` SET `por`=`por`-1 WHERE `id`=$cat[id];");
}
} elseif (isset($_GET['act']) && isset($_GET['cat_id']) && isset($_GET['act']) == 'down')
{
$cat_id = valid_int($_GET['cat_id']);
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `category` WHERE `id` = '$cat_id'"), 0) == 0)
{
echo '<div>Произошла ошибка при выборе раздела. Раздела с ID=' . $cat_id . ' не существует</div>';
} else
{
$cat = mysql_fetch_array(mysql_query('SELECT * FROM `category` WHERE `id`=' . $cat_id . ' LIMIT 1;'));
mysql_query("UPDATE `category` SET `por`=`por`+1 WHERE `id`=$cat[id];");
}
}
mysql_query("OPTIMIZE TABLE `category`;");
echo '<div class="title">Управление разделами</div>';
$query = mysql_query('SELECT * FROM `category` ORDER BY `por`;');
echo '<table border="1" width="100%">';
while ($spisok = mysql_fetch_array($query))
{
echo '<tr><td><img src="ico/' . $spisok['ico'] . '.gif" alt="+" width="16" height="16" /> <b>' . $spisok['r_name'] . '</b> </td><td> <a href="?act=rename&cat_id=' . $spisok['id'] . '">переим.</a> : <a href="?act=ico&cat_id=' . $spisok['id'] . '">иконка</a> : <a href="?act=delete&cat_id=' . $spisok['id'] . '">удалить</a> : [<a href="?act=up&cat_id=' . $spisok['id'] . '">up</a> (' . $spisok['por'] . ') <a href="?act=down&cat_id=' . $spisok['id'] . '">down</a>] </td></tr>';
}
echo '</table>';
echo '<br />
<div>
<b>[1]</b><a href="?act=new">Создать категорию файлов</a><br />
<b>[2]</b><a href="?act=raz">Создать раздел ЗЦ</a><br />
<b>[3]</b><a href="?act=vlink">Создать ссылку</a><br />
<b>[4]</b><a href="?act=link">вывести ссылку папки зц на главную</a></div>';
echo '<div><img src="ext/back.gif" alt="|_" width="16" height="16" /> <a href="adm_index.php">Админка ЗЦ</a></div>';
echo '<div><img src="ext/back.gif" alt="|_" width="16" height="16" /> <a href="adm_redit.php">Разделы ЗЦ</a></div><hr />';
include 'inc/adm_foot.php';
?>