• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь Динамическое меню 1.0 для DLE 9.7

alukart

Постоялец
Регистрация
31 Дек 2006
Сообщения
77
Реакции
4
Приветствую,
Дано бвл очень хороший модуль для организации меню на сайте вот ссылка
Для просмотра ссылки Войди или Зарегистрируйся

модуль отлично работает и на версии 9.7 НО есть проблема в том что нельзя удалить категорию Тоесть нажимаем на Удалить Пишет что удалилась а в результате категория осталась.
Пожалуйста помогите подредактировать код чтобы запрос на удаление был правильным сам смотрел вроде все правильно но не удаляется категория.
Вот код фалйа inc/menu.php

PHP:
<?PHP
/*
=====================================================
Невенчанный Пётр Андреевич - Integral +
-----------------------------------------------------
http://www.integral.kz/
-----------------------------------------------------
Copyright (c) 2007 Невенчанный Пётр Андреевич
=====================================================
Данный код защищен авторскими правами
=====================================================
Файл: menu.php
-----------------------------------------------------
Назначение: Администрирование меню сайта
=====================================================
*/
 
if(!defined('DATALIFEENGINE'))
{
  die("Hacking attempt!");
}
 
 
 
function ShowTree($select = -1)
{
    global $db;
   
    $res = '';
    $result = $db->query("SELECT id, title FROM ".PREFIX."_menu_top ORDER BY pos ASC");
    if ($db->num_rows($result) > 0)
    {
        while ($row = $db->get_row($result))
        {
            $res .= '<option value="'.$row['id'].'"';
            if (($select != -1) && ($select == $row['id'])){
                $res .= ' selected="selected"';
            }
            $res .= '>'.$row['title'].'</option>';
        }
    }
 
    return $res;
}
 
function page_create($title, $text, $button, $colspan, $ajax=''){
echoheader("menu","menu");
 
if ($ajax != ''){
    echo $ajax;
}
 
echo <<<HTML
<div style="padding-top:5px;padding-bottom:2px;">
<table width="100%">
    <tr>
        <td width="4"><img src="engine/skins/images/tl_lo.gif" width="4" height="4" border="0"></td>
        <td background="engine/skins/images/tl_oo.gif"><img src="engine/skins/images/tl_oo.gif" width="1" height="4" border="0"></td>
        <td width="6"><img src="engine/skins/images/tl_ro.gif" width="6" height="4" border="0"></td>
    </tr>
    <tr>
        <td background="engine/skins/images/tl_lb.gif"><img src="engine/skins/images/tl_lb.gif" width="4" height="1" border="0"></td>
        <td style="padding:5px;" bgcolor="#FFFFFF">
<table width="100%">
    <tr>
        <td bgcolor="#EFEFEF" height="29" style="padding-left:10px;"><div class="navigation">$title</div></td>
    </tr>
</table>
<div class="unterline"></div>
<table width="100%">
    $text
HTML;
 
echo <<<HTML
</table>
    $button
    <div class="hr_line"></div>
    <center><a href="admin.php?mod=menu">Настройка меню сайта</a></center>
    <div class="hr_line"></div>
    </td>
        <td background="engine/skins/images/tl_rb.gif"><img src="engine/skins/images/tl_rb.gif" width="6" height="1" border="0"></td>
    </tr>
    <tr>
        <td><img src="engine/skins/images/tl_lu.gif" width="4" height="6" border="0"></td>
        <td background="engine/skins/images/tl_ub.gif"><img src="engine/skins/images/tl_ub.gif" width="1" height="6" border="0"></td>
        <td><img src="engine/skins/images/tl_ru.gif" width="6" height="6" border="0"></td>
    </tr>
</table>
</div>
HTML;
 
echofooter();
}
 
function clear_post($text=''){
    $res = $text;
    $res = htmlspecialchars($res);
    $res = trim($res);
 
    return $res;
}
 
if ($action == "delete_top"){
   
    $id = clear_post($id);
 
    $db->query("DELETE FROM ".PREFIX."_menu_top WHERE id='".$id."'");
    $db->free();
    msg("info", 'Удаление граппы меню.', 'Группа меню удалена.', "$PHP_SELF?mod=menu");
 
}elseif ($action == "delete_menu"){
 
    $id = clear_post($id);
 
    $db->query("DELETE FROM ".PREFIX."_menu WHERE id='".$id."'");
    $db->free();
    msg("info", 'Удаление пункта меню.', 'Пункт меню удален.', "$PHP_SELF?mod=menu");
 
}elseif ($action == "menu_sort"){
 
    $menu = '';
    $top = '';
    print "<pre>";
    foreach ($_POST as $key => $value){
        $key = clear_post($key);
        $value = clear_post($value);
        if (substr($key,0,3) == "top"){
            $id = trim(substr($key,3,strlen($key)));
            $db->query("UPDATE ".PREFIX."_menu_top SET pos='".$value."' WHERE id='$id'");
//            print "UPDATE ".PREFIX."_menu_top SET pos='".$value."' WHERE id='$id'\n";
        }
        if (substr($key,0,4) == "menu"){
            $id = trim(substr($key,4,strlen($key)));
            $db->query("UPDATE ".PREFIX."_menu SET pos='".$value."' WHERE id='$id'");
//            print "UPDATE ".PREFIX."_menu SET pos='".$value."' WHERE id='$id'\n";
        }
    }
    print "</pre>";
    msg("info", 'Сортировка меню.', 'Сортировка меню окончена успешно.', "$PHP_SELF?mod=menu");
 
}elseif ($action == "new_top"){
 
    $pos_query = $db->query("SELECT count(*) as pos FROM ".PREFIX."_menu_top");
    $pos_row = $db->get_row($pos_query);
    $db->free();
    $title = clear_post($_POST['menu_top']);
    if ($title == ""){
        msg("error",$lang['menu_top_error'],$lang['menu_top_ertitle'], "javascript:history.go(-1)");
    }
    $pos = $pos_row['pos']+1;
    $db->query("INSERT INTO ".PREFIX."_menu_top (title, pos) VALUES ('".$title."', '".$pos."')");
    $db->free();
    msg("info", 'Создание новой группы меню.', 'Новая группа меню была успешно добавлена.', "$PHP_SELF?mod=menu");
 
}elseif ($action == "top_save"){
 
    $top_id        =    clear_post($_POST['menu_top_id']);
    $top_title    =    clear_post($_POST['menu_top']);
    $top_pos    =    clear_post($_POST['menu_top_pos']);
   
    $test = $db->query("SELECT id FROM ".PREFIX."_menu_top WHERE id='".$top_id."'");
 
    if ($db->num_rows($test) == 0){
        msg("error",$lang['menu_top_edit_error'],$lang['menu_top_not_found'], "j+avascript:history.go(-1)");
    }
 
    $db->free();
 
    if ($top_title == ""){
        msg("error",$lang['menu_top_edit_error'],$lang['menu_top_edit_ertitle'], "javascript:history.go(-1)");
    }
 
    if ($top_pos == ""){
        msg("error",$lang['menu_top_edit_error'],$lang['menu_top_edit_erpos'], "javascript:history.go(-1)");
    }
 
    $pos = $pos_row['pos']+1;
    $db->query("UPDATE ".PREFIX."_menu_top SET title='".$top_title."' , pos='".$top_pos."' WHERE id='".$top_id."'");
    $db->free();
    msg("info", 'Редактирование группы меню.', 'Группа меню успешно отредактирована.', "$PHP_SELF?mod=menu");
 
}elseif ($action == "new_menu"){
 
    $title        =    clear_post($_POST['menu_title']);
    $menu_top    =    clear_post($_POST['menu_top']);
    $menu_link    =    clear_post($_POST['menu_link']);
    $menu_jlink    =    clear_post($_POST['menu_jlink']);
 
    $pos_query = $db->query("SELECT count(*) as pos FROM ".PREFIX."_menu WHERE top='".$menu_top."'");
    $pos_row = $db->get_row($pos_query);
    $db->free();
 
    if ($title == ""){
        msg("error",$lang['menu_error'],$lang['menu_title_ertitle'], "javascript:history.go(-1)");
    }
 
    if ($menu_link == ""){
        msg("error",$lang['menu_error'],$lang['menu_link_ertitle'], "javascript:history.go(-1)");
    }
 
    $pos = $pos_row['pos']+1;
    $db->query("INSERT INTO ".PREFIX."_menu (menu_title, link_ajax, menu_link, top, pos) VALUES ('".$title."', '".$menu_jlink."', '".$menu_link."', '".$menu_top."', '".$pos."')");
    $db->free();
    msg("info", 'Создание нового пункта меню.', 'Новый пункт меню успешно создан.', "$PHP_SELF?mod=menu");
 
}elseif ($action == "menu_save"){
 
    $menu_id        =    clear_post($_POST['id']);
    $menu_title        =    clear_post($_POST['menu_title']);
    $menu_top        =    clear_post($_POST['menu_top']);
    $menu_link        =    clear_post($_POST['menu_link']);
    $menu_jlink        =    clear_post($_POST['menu_jlink']);
    $menu_pos        =    clear_post($_POST['menu_pos']);
 
    $test = $db->query("SELECT id FROM ".PREFIX."_menu WHERE id='".$menu_id."'");
 
    if ($db->num_rows($test) == 0){
        msg("error",$lang['menu_pt_edit_error'],$lang['menu_pt_not_found'], "j+avascript:history.go(-1)");
    }
 
    $db->free();
   
    if ($menu_title == ""){
        msg("error",$lang['menu_pt_edit_error'],$lang['menu_pt_edit_ertitle'], "javascript:history.go(-1)");
    }
 
    if ($menu_link == ""){
        msg("error",$lang['menu_pt_edit_error'],$lang['menu_pt_edit_erlink'], "javascript:history.go(-1)");
    }
 
    if ($menu_pos == ""){
        msg("error",$lang['menu_pt_edit_error'],$lang['menu_pt_edit_erpos'], "javascript:history.go(-1)");
    }
 
    $db->query("UPDATE ".PREFIX."_menu SET menu_title='".$menu_title."', link_ajax='".$menu_jlink."', menu_link='".$menu_link."', top='".$menu_top."', pos='".$menu_pos."' WHERE id='".$menu_id."'");
    $db->free();
    msg("info", 'Редактирование пункта меню.', 'Пункт меню успешно отредактирован.', "$PHP_SELF?mod=menu");
 
}elseif ($action == "add_new_top"){
$text = "<form method=\"post\" action=\"admin.php\"><tr>
        <td width=\"150\">
            {$lang['menu_top_title']}
        </td>
        <td>
            <input class=\"edit\" type=\"text\" name=\"menu_top\">
            <a href=\"#\" class=\"hintanchor\" onMouseover=\"showhint('{$lang['menu_top_stitle']}', this, event, '250px')\">[?]</a>
        </td>
    </tr>";
 
$button = "<input type=\"submit\" class=\"buttons\" value=\"Добавить\">
<input type=\"hidden\" name=\"mod\" value=\"menu\">
<input type=\"hidden\" name=\"action\" value=\"new_top\"></form>";
 
    page_create($lang['menu_top_new'], $text, $button, 2);
}elseif ($action == "edit_top"){
 
$id = clear_post($id);
$res = $db->query("SELECT * FROM ".PREFIX."_menu_top WHERE id='".$id."'");
if ($db->num_rows($res) > 0){
 
    $row = $db->get_row($res);
    $text = "<form method=\"post\" action=\"admin.php\">
        <tr>
            <td width=\"150\">
                {$lang['menu_top_title']}
            </td>
            <td>
                <input class=\"edit\" type=\"text\" name=\"menu_top\" value=\"".$row['title']."\">
                <a href=\"#\" class=\"hintanchor\" onMouseover=\"showhint('{$lang['menu_top_stitle']}', this, event, '250px')\">[?]</a>
            </td>
        </tr>
        <tr>
            <td width=\"150\">
                {$lang['menu_top_pos']}
            </td>
            <td>
                <input class=\"edit\" type=\"text\" name=\"menu_top_pos\" value=\"".$row['pos']."\">
            </td>
        </tr>";
 
    $button = "<input type=\"submit\" class=\"buttons\" value=\"Сохранить\">
    <input type=\"hidden\" name=\"mod\" value=\"menu\">
    <input type=\"hidden\" name=\"action\" value=\"top_save\">
    <input type=\"hidden\" name=\"menu_top_id\" value=\"".$id."\"></form>";
}else{
    msg("error",$lang['menu_top_edit_error'],$lang['menu_top_not_found'], "javascript:history.go(-1)");
}
 
    page_create($lang['menu_top_new'], $text, $button, 2);
}elseif ($action == "add_new_menu"){
$text = "<form method=\"post\" action=\"admin.php\">
    <tr>
        <td width=\"150\">
            {$lang['menu_pt_title']}
        </td>
        <td>
            <input class=\"edit\" type=\"text\" name=\"menu_title\">
            <a href=\"#\" class=\"hintanchor\" onMouseover=\"showhint('{$lang['menu_pt_stitle']}', this, event, '250px')\">[?]</a>
        </td>
    </tr>
    <tr>
        <td width=\"150\">
            {$lang['menu_top_title']}
        </td>
        <td>
            <select id=\"menu_top\" name=\"menu_top\" class=\"edit\"  style=\"width: 134px;\">
                ".ShowTree()."   
            </select>
            <a href=\"#\" class=\"hintanchor\" onMouseover=\"showhint('{$lang['menu_top_stitle']}', this, event, '250px')\">[?]</a>
        </td>
    </tr>
    <tr>
        <td width=\"150\">
            {$lang['menu_pt_link']}
        </td>
        <td>
            <input class=\"edit\" type=\"text\" name=\"menu_link\">
            <a href=\"#\" class=\"hintanchor\" onMouseover=\"showhint('{$lang['menu_pt_slink']}', this, event, '250px')\">[?]</a>
        </td>
    </tr>
    <tr>
        <td width=\"150\">
            {$lang['menu_pt_jlink']}
        </td>
        <td>
            <input class=\"edit\" type=\"text\" name=\"menu_jlink\">
            <a href=\"#\" class=\"hintanchor\" onMouseover=\"showhint('{$lang['menu_pt_sjlink']}', this, event, '250px')\">[?]</a>
        </td>
    </tr>";
 
$button = "<input type=\"submit\" class=\"buttons\" value=\"Добавить\">
<input type=\"hidden\" name=\"mod\" value=\"menu\">
<input type=\"hidden\" name=\"action\" value=\"new_menu\"></form>";
 
    page_create($lang['menu_pt_new'], $text, $button, 2);
}elseif ($action == "edit_menu"){
 
$id = clear_post($id);
$res = $db->query("SELECT * FROM ".PREFIX."_menu WHERE id='".$id."'");
if ($db->num_rows($res) > 0){
 
    $row = $db->get_row($res);
 
$text = "<form method=\"post\" action=\"admin.php\">
    <tr>
        <td width=\"150\">
            {$lang['menu_pt_title']}
        </td>
        <td>
            <input class=\"edit\" type=\"text\" name=\"menu_title\" value=\"".$row['menu_title']."\">
            <a href=\"#\" class=\"hintanchor\" onMouseover=\"showhint('{$lang['menu_pt_stitle']}', this, event, '250px')\">[?]</a>
        </td>
    </tr>
    <tr>
        <td width=\"150\">
            {$lang['menu_top_title']}
        </td>
        <td>
            <select id=\"menu_top\" name=\"menu_top\" class=\"edit\"  style=\"width: 134px;\">
                ".ShowTree($row['top'])."   
            </select>
            <a href=\"#\" class=\"hintanchor\" onMouseover=\"showhint('{$lang['menu_top_stitle']}', this, event, '250px')\">[?]</a>
        </td>
    </tr>
    <tr>
        <td width=\"150\">
            {$lang['menu_pt_link']}
        </td>
        <td>
            <input class=\"edit\" type=\"text\" name=\"menu_link\" value=\"".$row['menu_link']."\">
            <a href=\"#\" class=\"hintanchor\" onMouseover=\"showhint('{$lang['menu_pt_slink']}', this, event, '250px')\">[?]</a>
        </td>
    </tr>
    <tr>
        <td width=\"150\">
            {$lang['menu_pt_jlink']}
        </td>
        <td>
            <input class=\"edit\" type=\"text\" name=\"menu_jlink\" value=\"".$row['link_ajax']."\">
            <a href=\"#\" class=\"hintanchor\" onMouseover=\"showhint('{$lang['menu_pt_sjlink']}', this, event, '250px')\">[?]</a>
        </td>
    </tr>
    <tr>
        <td width=\"150\">
            {$lang['menu_pt_pos']}
        </td>
        <td>
            <input class=\"edit\" type=\"text\" name=\"menu_pos\" value=\"".$row['pos']."\">
            <a href=\"#\" class=\"hintanchor\" onMouseover=\"showhint('{$lang['menu_pt_sjlink']}', this, event, '250px')\">[?]</a>
        </td>
    </tr>";
 
$button = "<input type=\"submit\" class=\"buttons\" value=\"Сохранить\">
<input type=\"hidden\" name=\"mod\" value=\"menu\">
<input type=\"hidden\" name=\"action\" value=\"menu_save\">
<input type=\"hidden\" name=\"id\" value=\"".$id."\"></form>";
}else{
   
}
 
    page_create($lang['menu_pt_new'], $text, $button, 2);
}
else {
   
    $ajax = '<script language="javascript">
    <!-- begin
    function confirmdelete(id, user){
    var agree=confirm("'.$lang['menu_top_confirm'].'");
    if (agree)
    document.location="'.$PHP_SELF.'?mod=menu&action=delete_top&id="+id;
    }
    function confirmdeletemenu(id, user){
    var agree=confirm("'.$lang['menu_confirm'].'");
    if (agree)
    document.location="'.$PHP_SELF.'?mod=menu&action=delete_menu&id="+id;
    }
    // end -->
    </script>';
 
$text = '';
 
$menu_cat = $db->query("SELECT * FROM " . PREFIX . "_menu_top ORDER By pos ASC");
while($row = $db->get_row($menu_cat))
    {
       
        if($i%2 == 0){ $bg = "bgcolor=\"#EAE7E2\""; }
 
        $text .= "<form method=\"post\" action=\"admin.php\"><tr>
        <td style=\"padding:2px;\" width=\"90%\">
        &nbsp;<b>$row[title]</b>
        </td>
        <td><input class=\"edit\" type=\"text\" name=\"top".$row['id']."\" value=\"".$row['pos']."\" style=\"width: 20px;\" /></td>";
        $text .= "<td>
        [<a class=maintitle href='$PHP_SELF?mod=menu&action=edit_top&id=$row[id]'>$lang[user_edit]</a>]&nbsp;[<a class=maintitle onClick=\"javascript:confirmdelete('$row[id]', '$row[name]'); return(false)\"  href=\"$PHP_SELF?mod=menu&action=delete_top&id=$row[id]\">$lang[user_del]</a>]
        </tr><tr><td background=\"engine/skins/images/mline.gif\" height=1 colspan=3></td></tr>";
 
        $menu_pt = $db->query("SELECT id, menu_title, pos FROM " . PREFIX . "_menu WHERE top='".$row[id]."' ORDER By pos ASC");
       
        while($rows = $db->get_row($menu_pt))
        {
            $text .= "<tr>
            <td style=\"padding:2px;\" width=\"90%\">
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$rows[menu_title]
            </td>
            <td><input class=\"edit\" type=\"text\" name=\"menu".$rows['id']."\" value=\"".$rows['pos']."\" style=\"width: 20px;\" /></td>";
            $text .= "<td>
            [<a class=maintitle href='$PHP_SELF?mod=menu&action=edit_menu&id=$rows[id]'>$lang[user_edit]</a>]&nbsp;[<a class=maintitle onClick=\"javascript:confirmdeletemenu('$rows[id]', '$rows[name]'); return(false)\"  href=\"$PHP_SELF?mod=menu&action=delete_menu&id=$rows[id]\">$lang[user_del]</a>]
            </tr><tr><td background=\"engine/skins/images/mline.gif\" height=1 colspan=3></td></tr>";
        }
    }
$db->free();
 
$button = "&nbsp;&nbsp;&nbsp;<input type=\"button\" value=\"{$lang['menu_new']}\" class=\"bbcodes\" onclick=\"document.location='$PHP_SELF?mod=menu&action=add_new_top'\">&nbsp;&nbsp;&nbsp;<input type=\"button\" value=\"{$lang['menu_pt_new']}\" class=\"bbcodes\" onclick=\"document.location='$PHP_SELF?mod=menu&action=add_new_menu'\">&nbsp;&nbsp;&nbsp;
<input type=\"submit\" value=\"{$lang['menu_sort']}\" class=\"bbcodes\">
<input type=\"hidden\" name=\"mod\" value=\"menu\">
<input type=\"hidden\" name=\"action\" value=\"menu_sort\"></form>";
 
page_create($lang['menu_head'], $text, $button, 3, $ajax);
}
?>
 
Может таблица неправильная, либо id группы в $id не помещается. К стати там опечатка небольшая Удаление граппы меню в delete_top
 
Назад
Сверху