PHP多个导航亮点

时间:2011-03-18 15:52:54

标签: php

我正在使用下面这段代码突出显示我全球导航中的“活动”菜单项。

<?php
    $path = $_SERVER['PHP_SELF'];
    $page = basename($path);
    $page = basename($path, '.php');
?>

<ul id="nav">
    <li class="home"><a href="index.php">Home</a></li>
    <li <?php if ($page == 'search') { ?>class="active"<?php } ?>><a href="#">Search</a></li>
    <li <?php if ($page == 'help') { ?>class="active"<?php } ?>><a href="help.php">Help</a></li>
</ul>

一切都很好,但在几页上,我在全局页面中有第二个子菜单(侧边栏菜单)。

我基本上需要在某种程度上将一个OR类型的语句添加到php中,但我不知道如何。

我的意思是:

    <li <?php if ($page == 'help') OR ($page == 'help-overview') OR ($page == 'help-cat-1') { ?>class="active"<?php } ?>><a href="#">Search</a></li>

谢谢!

3 个答案:

答案 0 :(得分:2)

你可以这样做:

<li <?php echo ($page == 'help' || $page == 'help-overview' || $page == 'help-cat-1'  ?  'class="active"'  :  ''); ?>><a href="#">Search</a></li>


或者你可以使用in_array()函数,我认为这个函数更好:

<li <?php echo ($page == in_array('help', 'help-overview', 'help-cat-1')  ?  'class="active"'  :  ''); ?>><a href="#">Search</a></li>

答案 1 :(得分:1)

我知道这不是你要问的但是我建议你使用简单的css:)

ul#nav a.active, ul#nav a:active {
   color: green;
   background: red;
}

答案 2 :(得分:0)

您可以使用约定来查找基页或父页面:

$page = explode("-", $page)[0];  # should return 'help' for all help pages

<li <?php if ($page == 'help') { ?>class="active"<?php } ?>><a href="#">Search</a></li>

这意味着您在命名页面时需要使用约定<parent_page>-<sub_page>