File size: 8.42Kb
<?php
include '../engine/includes/start.php';
if (!$creator)
Core::stop();
$set['title']='Экспресс-панель';
include incDir.'head.php';
if (empty($_SESSION['entry_admin']))
{
$_SESSION['entry_admin'] = 1;
$query = mysqli_query($sql->db, 'select `file` from `module_services` where `use_in`="enrty_admin"');
while($file = $sql->result($query))
{
include_once H . $file;
}
}
function WordCut($words)
{
$word = explode(' ', (string) $words);
if (count($word) > 1)
{
$tmp = $word[0] . ' ' . $word[1] . (!empty($word[2]) ? ' ' . $word[2] : '');
if (mb_strlen($tmp) > 11)
{
return $word[0] . '.. ';
}
}
return $words;
}
//Прошу прощения за следующие html / php - быдлокоды, я далеко не знаток css, html. Буду благодарен за подсказки на счет упрощения верстки :)
if (isset($_GET['move']))
{
$sql->query('SELECT `name`, `pos` FROM `speed_dial` WHERE `id` = '.$id);
if ($sql->num_rows() == 0)
{
Core::msg_show('Пункт с id '.$id.' не найден');
include incDir.'foot.php';
}
$menu = $sql->fetch();
$new_pos = $_GET['move'] == 'up' ? $menu['pos'] - 1 : $menu['pos'] + 1;
$sql->query('UPDATE `speed_dial` set `pos` = '.$menu['pos'].' WHERE `pos` = '.$new_pos);
$sql->query('UPDATE `speed_dial` set `pos` = '.$new_pos.' WHERE `id` = '.$id);
Core::msg_show('Пункт '.$menu['name'].' перемещен', 'msg');
}
switch($act)
{
case 'add':
if (isset($_POST['name']))
{
$icon = Core::form('icon');
$host = parse_url(Core::form('link'), PHP_URL_HOST);
if ($host != $_SERVER['SERVER_NAME'])
{
$icon = 'http://www.google.com/s2/favicons?domain=' . $host;
}
$sql->query("INSERT INTO `speed_dial` SET
`name` = '".Core::form('name')."',
`link` = '".Core::form('link')."',
`icon` = '".$icon."',
`new_line` = '".(!empty($_POST['new_line']) ? 1 : 0)."',
`pos` = '".($sql->query('SELECT max(`pos`) FROM `speed_dial`')->result() + 1)."'");
Core::msg_show('Пункт добавлен', 'msg');
}
else
{
?>
<form action="?act=add" method="post">
Название:<br />
<input type="text" name="name" value=""/><br />
Ссылка: (оставить пустым для разделителя)<br />
<input type="text" name="link" value="http://"/><br />
Иконка:<br />
<input type="text" name="icon" value=""/><br />
С новой строки:<br />
<select name="new_line">
<option value="0">Нет</option>
<option value="1">Да</option>
</select><br />
<input type="submit" value="Добавить"/>
</form>
<?php
}
echo '<a href="./panel.php" class="link">Админка</a>';
break;
case 'edit':
$sql->query('SELECT * FROM `speed_dial` WHERE `id` = '.$id);
if ($sql->num_rows() == 0)
{
Core::msg_show('Пункт с id '.$id.' не найден');
include incDir.'foot.php';
}
$menu = $sql->fetch();
if (isset($_POST['name']))
{
$sql->query("UPDATE `speed_dial` SET
`name` = '".Core::form('name')."',
`link` = '".Core::form('link')."',
`icon` = '".Core::form('icon')."',
`new_line` = '".(!empty($_POST['new_line']) ? 1 : 0)."'
WHERE `id` = $id");
Core::msg_show('Пункт отредактирован', 'msg');
}
else
{
?>
<form action="?act=edit&id=<?=$id?>" method="post">
Название:<br />
<input type="text" name="name" value="<?=$menu['name']?>"/><br />
Ссылка: (оставить пустым для разделителя)<br />
<input type="text" name="link" value="<?=$menu['link']?>"/><br />
Иконка:<br />
<input type="text" name="icon" value="<?=$menu['icon']?>"/><br />
С новой строки:<br />
<select name="new_line">
<option value="0">Нет</option>
<?=$menu['new_line'] == '1' ? '<option value="1" selected="selected">' : '<option value="1">'?>Да</option>
</select><br />
<input type="submit" value="Изменить"/>
</form>
<?php
}
echo '<a href="./panel.php" class="link">Админка</a>';
break;
case 'editing':
echo '<div class="menu_razd">Редактирование экспресс-панели</div>';
$pos = $sql->query('SELECT max(`pos`) from `speed_dial`')->result();
$sql->query('SELECT `id`, `name`, `pos` FROM `speed_dial` ORDER BY `pos`');
while ($menu = $sql->fetch())
{
echo
'<div class="post">'.$menu['pos'] . ') '.$menu['name'], '<br />',
($menu['pos'] > 1 ? '<a href="?act=editing&move=up&id='.$menu['id'].'">[ ↑ ]</a> ' : ''),
'[ <a href="?act=edit&id='.$menu['id'].'">изменить</a> ] | [ <a href="?act=delete&id='.$menu['id'].'">удалить</a> ]',
($menu['pos'] < $pos ? ' <a href="?act=editing&move=down&id='.$menu['id'].'">[ ↓ ]</a>' : ''),
'</div>';
}
echo '<a href="./panel.php" class="link">Админка</a>';
break;
case 'delete':
$sql->query('SELECT `name`, `pos` FROM `speed_dial` WHERE `id` = '.$id);
if ($sql->num_rows() == 0)
{
Core::msg_show('Пункт с id '.$id.' не найден');
include incDir.'foot.php';
}
$menu = $sql->fetch();
if (isset($_GET['confirm']))
{
if (empty($_SESSION['main_menu_confirm_delete']) || $_SESSION['main_menu_confirm_delete'] != $_GET['confirm'])
{
Core::msg_show('Удаление не подтверждено, попробуйте еще раз');
}
else
{
$sql->query('DELETE FROM `speed_dial` WHERE `id` = '.$id);
$sql->query('UPDATE `speed_dial` SET `pos` = `pos` - 1 WHERE `pos` > '.$menu['pos']);
Core::msg_show('Пункт удален', 'msg');
}
}
else
{
$_SESSION['main_menu_confirm_delete'] = uniqid();
echo '
Вы действительно хотите удалить этот пункт ('.$menu['name'].')?<br />
<a href="?act=delete&id='.$id.'&confirm='.$_SESSION['main_menu_confirm_delete'].'">Да, удалить</a>';
}
echo '<a href="?" class="link">Вернутся в "админку"</a>';
break;
default:
echo '<div class="menu_razd">Экспресс-панель</div><table><tr>';
$sql->query('SELECT * FROM `speed_dial` ORDER BY `pos`');
while ($menu = $sql->fetch())
{
if (empty($menu['link']))
{
echo '</tr></table><div class="menu_razd">'.$menu['name'].'</div><table><tr>';
}
else
{
if ($menu['new_line'] == 1)
echo '</tr><tr>';
echo '<td><a title="'.$menu['name'].'" href="'.$menu['link'].'"><img width="48px" src="'.$menu['icon'].'"/></a><br /><span class="status">'.WordCut($menu['name']).'</span></td>';
}
}
echo '</tr></table><a href="." class="link">Расширенный вид админки</a>';
break;
}
echo '<a href="/" class="link">Главная</a>';
include incDir.'foot.php';