首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从数组创建菜单,可以从脚本上的任何地方连接起来

从数组创建菜单,可以从脚本上的任何地方连接起来
EN

Stack Overflow用户
提问于 2014-02-21 10:40:32
回答 2查看 50关注 0票数 0

我正试着做一个像WordPress那样的菜单,但用更简单的方式。在WordPress中,您可以从任何php脚本中连接Admin侧边栏菜单,这就是我想要做的。

--这是包含菜单信息的所有数组

代码语言:javascript
复制
$admin_menu_page = array();
    $admin_submenu_page = array();

    $admin_menu_page[] = array("Dashboard", "dashboard");
    $admin_menu_page[] = array("Pages", "pages");
    $admin_menu_page[] = array("Setings", "setings");

    $admin_submenu_page['dashboard'] = array("Home", "home");
    $admin_submenu_page['dashboard'] = array("Update", "update");

    $admin_submenu_page['pages'] = array("Add New Page", "new");
    $admin_submenu_page['pages'] = array("All Pages", 'pages');

    $admin_submenu_page['setings'] = array("SMTP", "smtp");
    $admin_submenu_page['setings'] = array("Theme Options", "theme-options");

--这是在页面中呈现菜单的html部件。

代码语言:javascript
复制
echo '<ul>';
foreach($admin_menu_page as $menu){
    echo '<li>';
    echo '<a href="#">';
    echo $menu[0];
    echo '<ul>';
        foreach($admin_submenu_page[$menu[1]] as $submenu){
            echo '<li>';
            echo '<a href="#">';
            echo $submenu;
            echo '</a>';
            echo '</li>';
        }
    echo '</ul>';
    echo '</a>';
    echo '</li>';
}
echo '</ul>';

--从上面的代码看,这就是它现在的样子

--这就是最终结果应该与类似的方式

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-21 10:53:46

首先,您必须正确地创建子菜单,您缺少括号:

相反:

代码语言:javascript
复制
$admin_submenu_page['dashboard'] = array("Home", "home");
$admin_submenu_page['dashboard'] = array("Update", "update");

$admin_submenu_page['pages'] = array("Add New Page", "new");
$admin_submenu_page['pages'] = array("All Pages", 'pages');

$admin_submenu_page['setings'] = array("SMTP", "smtp");
$admin_submenu_page['setings'] = array("Theme Options", "theme-options");

做:

代码语言:javascript
复制
$admin_submenu_page['dashboard'][] = array("Home", "home");
$admin_submenu_page['dashboard'][] = array("Update", "update");

$admin_submenu_page['pages'][] = array("Add New Page", "new");
$admin_submenu_page['pages'][] = array("All Pages", 'pages');

$admin_submenu_page['setings'][] = array("SMTP", "smtp");
$admin_submenu_page['setings'][] = array("Theme Options", "theme-options");

第二,在渲染,更改:

代码语言:javascript
复制
echo $submenu;

代码语言:javascript
复制
echo $submenu[0];
票数 1
EN

Stack Overflow用户

发布于 2014-02-21 11:15:06

代码语言:javascript
复制
$main_menu = array() ;

$sub_menu = array() ;
$sub_menu['dashboard'][] = array( "title" => "Home" , "action" => "home" ) ;
$sub_menu['dashboard'][] = array( "title" => "Update" , "action" => "update" ) ;

$main_menu['dashboard']['title'] = 'Dashboard' ;
sort( $sub_menu['dashboard'] ) ;
$main_menu['dashboard']['submenu'] = $sub_menu['dashboard'] ;

$sub_menu['pages'][] = array( "title" => "All Pages" , "action" => "pages" ) ;
$sub_menu['pages'][] = array( "title" => "Add New Page" , "action" => "new" ) ;

$main_menu['pages']['title'] = 'Pages' ;
sort( $sub_menu['pages'] ) ;
$main_menu['pages']['submenu'] = $sub_menu['pages'] ;

$sub_menu['setings'][] = array( "title" => "SMTP" , "action" => "smtp" ) ;
$sub_menu['setings'][] = array( "title" => "Theme Options" , "action" => "theme-options" ) ;

$main_menu['setings']['title'] = 'Setings' ;
sort( $sub_menu['setings'] ) ;
$main_menu['setings']['submenu'] = $sub_menu['setings'] ;

foreach ( $main_menu as $key => $menu ) {
    echo '<li>' ;
    echo '<a href="#">' ;
    echo $menu['title'] ;
    echo '<ul>' ;

    foreach ( $menu['submenu'] as $item ) {
        echo '<li>' ;
        echo "<a href=\"#{$item['action']}\">" ;
        echo $item['title'] ;
        echo '</a>' ;
        echo '</li>' ;
    }
    echo '</ul>' ;
    echo '</li>' ;
}

请注意,此解决方案仅适用于子菜单1至1,对于子菜单N到N子菜单,您应该使用递归优化此脚本:

见-> BR/regexp.reference.recursive.php

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21932068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档