【问题标题】:Where is Menu populating from?菜单从哪里填充?
【发布时间】:2015-01-11 02:28:18
【问题描述】:

我一直在开发一个由其他人创建的网站,此时我无法找到需要编辑菜单的位置。 http://mccorp.com/index 是网站。下面是调用菜单的navigation.php 文件。 loader.php 调用的文件都没有任何菜单信息。最终目标是将两个子菜单项移到另一个子菜单项下,并删除它们从中移出的子菜单项。我觉得它正在从数据库中填充菜单,但数据库页面表除了页面什么都没有,我不知道我可能需要编辑什么来更改它们的顺序和位置,没有一个 parent_pageid 与它们的实际顺序相对应或放置。 page_id 也不规定顺序或位置。下面引用的 index1.php 甚至不存在。我试图提供帮助所需的所有信息,但我没有让我知道,我会更新。我很珍惜时间...

    <?php 
    include('include/loader.php'); 

    //if($current_filename=="index") {
    //  $parent_query="SELECT page_id, page_name, page_title, parent_pageid, seo_url FROM tbl_pages WHERE is_delete='0' and is_active='0'";
    //}
    $where ="";
    if(basename($_SERVER['PHP_SELF'])=="index.php" || basename($_SERVER['PHP_SELF'])=="index1.php") {
        $where = " and page_id not in ('35','36','37','58')";
    }
    $parent_query="SELECT page_id, page_name, page_title, parent_pageid, seo_url FROM tbl_pages WHERE is_delete='0' and is_active='0' ".$where ." order by rank desc";
    $menus_results=$sqlobj->getdatalistfromquery($parent_query);

    $arr_menuslist = $arr_menuslist_temp = $arr_submenuslist_temp = array();
    if(count($menus_results)>0) {
        foreach($menus_results as $key=>$value) {
            $arr_menuslist_temp[$value["parent_pageid"]][] = $value;
        }
    } 
    if(count($arr_menuslist_temp)>0) {
        $arr_menuslist = $arr_menuslist_temp[0];
        foreach($arr_menuslist as $key=>$value) {
            $arr_sub_menu = $arr_menuslist_temp[$value["page_id"]];
            if(count($arr_sub_menu)>0) {
                foreach($arr_sub_menu as $subkey=>$subvalue) {
                    $arr_sub_menu[$subkey]["submenu"] = $arr_menuslist_temp[$subvalue["page_id"]];

                    $arr_sublevel_menu = $arr_menuslist_temp[$subvalue["page_id"]];
                    if(count($arr_sublevel_menu)>0) {
                        foreach($arr_sublevel_menu as $sub_level_key=>$sub_level_value) {
                            $arr_sub_menu[$subkey]["submenu"][$sub_level_key]["sublevel"] = $arr_menuslist_temp[$sub_level_value["page_id"]];
                        }
                    }
                }
            }
            $arr_menuslist[$key]["mainmenu"] = $arr_sub_menu;
        }
    }
?>
<?php if(count($arr_menuslist)>0) {
    $arr_menus_result = $arr_menuslist[0]["mainmenu"];
    foreach($arr_menus_result as $key=>$value) {
    ?>
    <li>
        <a href="<?php echo $value['seo_url']; ?>"><?php echo $value['page_name']; ?></a>
        <?php if(count($value["submenu"])>0) { ?>
        <ul>
            <?php foreach($value["submenu"] as $subkey=>$subvalue) {  ?>
            <li>
                <a href="<?php echo $subvalue['seo_url']; ?>"><?php echo $subvalue['page_name']; ?></a>
                    <?php if(count($subvalue["sublevel"])>0) { ?>
                    <ul>
                        <?php foreach($subvalue["sublevel"] as $sublevelkey=>$sublevelvalue) {  ?>
                        <li><a href="<?php echo $sublevelvalue['seo_url']; ?>"><?php echo $sublevelvalue['page_name']; ?></a></li>
                        <?php } ?>
                    </ul>
                    <?php } ?>
            </li>
            <?php } ?>
        </ul>
        <?php } ?>
    </li>
    <?php } } ?>

【问题讨论】:

  • 您的菜单似乎由页面组成。在您的数据库中,您的页面有 parent_ids,它们构成了(子)menu_items。如果没有 cms,您可以直接更改数据库中的这些值。在进行更改之前进行备份。
  • 这行得通。我更改了 parent_pageid 设置,它可以随心所欲地移动项目。事后看来,这是一个明显而简单的解决方法。感谢您的帮助。

标签: php css sql menu content-management-system


【解决方案1】:

CMS 中可能有“主菜单”的选项或配置。

什么是内容管理系统?

【讨论】:

    【解决方案2】:

    直接在数据库中编辑 parent_pageide 属性会重新关联菜单项。感谢 RST 的建议。

    【讨论】:

      猜你喜欢
      • 2020-06-22
      • 1970-01-01
      • 2015-07-25
      • 1970-01-01
      • 2020-11-20
      • 2021-06-25
      • 1970-01-01
      • 2012-12-07
      • 2010-10-06
      相关资源
      最近更新 更多