【发布时间】:2013-02-23 09:55:48
【问题描述】:
我正在寻找自动突出显示顶部菜单项的解决方案。
目前的情况是这样的: 我将默认菜单存储在 .txt 文件中:
<li><a href="index.php">HOME</a></li>
<li><a href="#">MENU_1</a>
<ul>
<li><a href="submenu_1.php">Submenu_1</a></li>
<li><a href="submenu_2.php">Submenu_2</a></li>
</ul>
</li>
<li><a href="#">MENU_2</a>
<ul>
<li><a href="#">Submenu_1</a>
<ul>
<li><a href="sub_submenu_1.php">Sub_Submenu_1</a></li>
<li><a href="sub_submenu_2.php">Sub_Submenu_2</a></li>
</ul>
</li>
<li><a href="#">Submenu_2</a></li>
</ul>
</li>
<li><a href="menu_3.php">MENU_3</a></li>
<li><a href="menu_4.php">MENU_4</a></li>
所以,当 submenu 或 sub_submenu 或任何项目是当前页面时,我需要突出显示其最顶部的 MENU_X 父项目(因为只有 MENU_X 项目在我的页面上可见顶栏)。
我将 CSS 样式应用于MENU_X,所以当我设置顶部菜单时:
<li class="current"><a href="#">MENU_1</a>
它以.current CSS 样式突出显示。
现在我正在寻找一个 PHP 脚本,它会做这样的事情(仅作为示例):
<?php
$currentPage = $_SERVER["PHP_SELF"];
$url_parts = Explode('/', $currentPage);
$current_php_file = $url_parts[count($url_parts) - 1];
$raw_menu = file_get_contents("menu.txt");
$current_menu_item = '<li><a href="' . $current_php_file . '">'
$top_menuitem_of_current_page = someFunctionToFindOut(); //need some script to find out
$highlighted_menu_item = '<li class="current"><a href="' . $top_menuitem_of_current_page . '">';
$ready_menu = str_replace($top_menuitem_of_current_page, $highlighted_menu_item, $raw_menu);
echo $ready_menu;
?>
上面的代码基本上可以解决问题,但是我需要调用一些函数someFunctionToFindOut() 来找出$top_menuitem_of_current_page 是什么。
有什么建议吗?
【问题讨论】:
-
没有。这似乎突出了当前页面。我需要突出显示包含当前页面的第一个菜单。不是当前页面或其父页面。
标签: php html arrays function menu