Файл: adm_panel/menu.php
Строк: 229
<?php
require( '../sys/inc/core.php' );
user_access( 'adm_menu', null, 'index.php?' . SID );
$set[ 'title' ] = 'Главное меню';
$opendiricon = opendir( H.'style/icons' );
while ( $icons = readdir( $opendiricon ) ) {
if ( preg_match( '#^.|default.png#', $icons ) )
continue;
$icon[ ] = $icons;
}
closedir( $opendiricon );
if ( isset( $_POST[ 'add' ] ) && isset( $_POST[ 'name' ] ) && $_POST[ 'name' ] != NULL && isset( $_POST[ 'url' ] ) && $_POST[ 'url' ] != NULL && isset( $_POST[ 'counter' ] ) ) {
$name = esc( stripcslashes( htmlspecialchars( $_POST[ 'name' ] ) ) );
$url = esc( stripcslashes( htmlspecialchars( $_POST[ 'url' ] ) ) );
$counter = esc( stripcslashes( htmlspecialchars( $_POST[ 'counter' ] ) ) );
$pos = db::count("SELECT MAX(`pos`) FROM `menu`") + 1;
$icon = preg_replace( '#[^a-z0-9 _-.]#i', null, $_POST[ 'icon' ] );
db::query("INSERT INTO `menu` (`name`, `url`, `counter`, `pos`, `icon`) VALUES ('$name', '$url', '$counter', '$pos', '$icon')");
msg( 'Ссылка успешно добавлена' );
}
if ( isset( $_POST[ 'add' ] ) && isset( $_POST[ 'name' ] ) && $_POST[ 'name' ] != NULL && isset( $_POST[ 'counter' ] ) && isset( $_POST[ 'type' ] ) && $_POST[ 'type' ] == 'razd' ) {
$name = esc( stripcslashes( htmlspecialchars( $_POST[ 'name' ] ) ) );
$url = esc( stripcslashes( htmlspecialchars( $_POST[ 'url' ] ) ) );
$counter = esc( stripcslashes( htmlspecialchars( $_POST[ 'counter' ] ) ) );
$pos = db::count("SELECT MAX(`pos`) FROM `menu`") + 1;
$icon = preg_replace( '#[^a-z0-9 _-.]#i', null, $_POST[ 'icon' ] );
db::query("INSERT INTO `menu` (`type`, `name`, `url`, `counter`, `pos`, `icon`) VALUES ('razd', '$name', '$url', '$counter', '$pos', '$icon')");
msg( 'Ссылка успешно добавлена' );
}
if ( isset( $_POST[ 'change' ] ) && isset( $_GET[ 'id' ] ) && isset( $_POST[ 'name' ] ) && $_POST[ 'name' ] != NULL && isset( $_POST[ 'url' ] ) && isset( $_POST[ 'counter' ] ) ) {
$id = intval( $_GET[ 'id' ] );
$name = esc( stripcslashes( htmlspecialchars( $_POST[ 'name' ] ) ) );
$url = esc( stripcslashes( htmlspecialchars( $_POST[ 'url' ] ) ) );
$counter = esc( stripcslashes( htmlspecialchars( $_POST[ 'counter' ] ) ) );
$icon = preg_replace( '#[^a-z0-9 _-.]#i', null, $_POST[ 'icon' ] );
db::query("UPDATE `menu` SET `name` = '$name', `url` = '$url', `counter` = '$counter', `icon` = '$icon' WHERE `id` = '$id' LIMIT 1");
msg( 'Пункт меню успешно изменен' );
}
if ( isset( $_GET[ 'id' ] ) && isset( $_GET[ 'act' ] ) && db::count("SELECT COUNT(*) FROM `menu` WHERE `id` = '" . intval( $_GET[ 'id' ] ) . "'") ) {
$menu = db::fetch("SELECT * FROM `menu` WHERE `id` = '" . intval( $_GET[ 'id' ] ) . "' LIMIT 1", ARRAY_A);
if ( $_GET[ 'act' ] == 'up' ) {
db::query("UPDATE `menu` SET `pos` = '" . ( $menu[ 'pos' ] ) . "' WHERE `pos` = '" . ( $menu[ 'pos' ] - 1 ) . "' LIMIT 1");
db::query("UPDATE `menu` SET `pos` = '" . ( $menu[ 'pos' ] - 1 ) . "' WHERE `id` = '" . intval( $_GET[ 'id' ] ) . "' LIMIT 1");
msg( 'Пункт меню сдвинут на позицию вверх' );
}
if ( $_GET[ 'act' ] == 'down' ) {
db::query("UPDATE `menu` SET `pos` = '" . ( $menu[ 'pos' ] ) . "' WHERE `pos` = '" . ( $menu[ 'pos' ] + 1 ) . "' LIMIT 1");
db::query("UPDATE `menu` SET `pos` = '" . ( $menu[ 'pos' ] + 1 ) . "' WHERE `id` = '" . intval( $_GET[ 'id' ] ) . "' LIMIT 1");
msg( 'Пункт меню сдвинут на позицию вниз' );
}
if ( $_GET[ 'act' ] == 'del' ) {
db::query("DELETE FROM `menu` WHERE `id` = '" . intval( $_GET[ 'id' ] ) . "' LIMIT 1");
msg( 'Пункт меню удален' );
}
}
get_header_admin();
echo "<table class='post'>n";
$q = db::query("SELECT * FROM `menu` ORDER BY `pos` ASC");
while ( $post = $q->fetch_assoc() ) {
echo " <tr>n";
if ( !isset( $post[ 'icon' ] ) )
db::query('ALTER TABLE `menu` ADD `icon` VARCHAR( 32 ) NULL DEFAULT NULL');
if ( !isset( $post[ 'type' ] ) )
db::query("ALTER TABLE `menu` ADD `type` ENUM('link', 'razd') NOT NULL DEFAULT 'link' AFTER `id`");
echo " <td class='p_t'>n";
echo "$post[pos]) $post[name] " . ( $post[ 'type' ] == 'link' ? "($post[url])" : null );
echo " </td>n";
echo " </tr>n";
echo " <tr>n";
echo " <td class='p_m'>n";
if ( isset( $_GET[ 'id' ] ) && $_GET[ 'id' ] == $post[ 'id' ] && isset( $_GET[ 'act' ] ) && $_GET[ 'act' ] == 'edit' ) {
echo "<form action="?id=$post[id]" method="post">";
echo "Тип: " . ( $post[ 'type' ] == 'link' ? 'Ссылка' : 'Разделитель' ) . "<br />n";
echo "Название:<br />n";
echo "<input type='text' name='name' value="$post[name]" /><br />n";
if ( $post[ 'type' ] == 'link' ) {
echo "Ссылка:<br />n";
echo "<input type='text' name='url' value='$post[url]' /><br />n";
} else
echo "<input type='hidden' name='url' value='' />n";
echo "Счетчик:<br />n";
echo "<input type='text' name='counter' value='$post[counter]' /><br />n";
if ( $post[ 'type' ] == 'link' ) {
echo "Иконка:<br />n";
echo "<select name='icon'>n";
echo "<option value='default.png'>По умолчанию</option>n";
for ( $i = 0; $i < sizeof( $icon ); $i++ ) {
echo "<option value='$icon[$i]'" . ( $post[ 'icon' ] == $icon[ $i ] ? " selected='selected'" : null ) . ">$icon[$i]</option>n";
}
echo "</select><br />n";
} else
echo "<input type='hidden' name='icon' value='$post[icon]' />n";
echo "<input class="submit" name="change" type="submit" value="Изменить" /><br />n";
echo "</form>";
echo "<a href='?'>Отмена</a><br />";
} else {
echo "Счетчик: " . ( $post[ 'counter' ] == null ? 'отсутствует' : $post[ 'counter' ] ) . "<br />n";
echo "<a href='?id=$post[id]&act=up'>Выше</a> | ";
echo "<a href='?id=$post[id]&act=down'>Ниже</a> | ";
echo "<a href='?id=$post[id]&act=del'>Удалить </a><br />";
echo "<a href='?id=$post[id]&act=edit'>Редактировать </a><br />";
}
echo " </td>n";
echo " </tr>n";
}
echo "</table>n";
if ( isset( $_GET[ 'add' ] ) ) {
echo "<form action='?add=' method="post">";
echo "Тип:<br />n";
echo "<select name='type'>n";
echo "<option value='link'>Ссылка (1)</option>n";
echo "<option value='razd'>Раздел (2)</option>n";
echo "</select><br />n";
echo "Название (1,2):<br />n";
echo "<input type="text" name="name" value=""/><br />n";
echo "Ссылка(1):<br />n";
echo "<input type="text" name="url" value=""/><br />n";
echo "Счетчик (1,2):<br />n";
echo "<input type="text" name="counter" value=""/><br />n";
echo "Иконка (1):<br />n";
echo "<select name='icon'>n";
echo "<option value='default.png'>По умолчанию</option>n";
for ( $i = 0; $i < sizeof( $icon ); $i++ ) {
echo "<option value='$icon[$i]'>$icon[$i]</option>n";
}
echo "</select><br />n";
echo "<input class='submit' name='add' type='submit' value='Добавить' /><br />n";
echo "<a href='?'>Отмена</a><br />n";
echo "</form>";
} else
echo "<div class='foot'><a href='?add='>Добавить пункт</a></div>n";
if ( user_access( 'adm_panel_show' ) ) {
echo "<div class='foot'>n";
echo "«<a href='/adm_panel/'>В админку</a><br />n";
echo "</div>n";
}
get_footer_admin();