[英]highlight currently menu selection php
我有PHP代碼,該代碼將檢查用戶是否已登錄並返回菜單(如果已登錄),但是我想知道是否有一種方法可以使每個當前選中的內容突出顯示,或者我是否必須將它們添加為每頁的手冊列表?
代碼是:
<?php
if (!securePage($_SERVER['PHP_SELF'])){die();}
//Links for logged in user
if(isUserLoggedIn()) {
echo "<div id='Default'>
<ul>
<li><a href='/account.php' >Account Home</a></li>
<li><a href='/user_settings.php' >User Settings</a></li>
<li><a href='/logout.php' >Logout</a></li>
</ul></div>
<div id='button1'>
<a href='/Demos.php'>Demos</a></div>
<div id='button2'>
<a href='/Helpfiles.php'>Helpfiles</a></div>
<div id='greeting'>
Hello, $loggedInUser->displayname.</br>";
}
//Links for users not logged in
else{
echo "<div id='Default'>
<ul>
<li><a href='/login.php'>Login</a></li>
<li><a href='/register.php'>Register</a></li>
<li><a href='/forgot-password.php'>Forgot Password</a></li>";
echo "</ul></div>";
}
?>
現在我知道,在普通的CSS上,它只是.current,您可以那樣做,但是由於它們同時在屏幕上,所以我無法通過回顯來實現。 最好的方法是什么? 手動添加看起來像是更長的路要走。
ps這與usercake一起使用
您無需將HTML放入PHP的echo
中。 我會推薦這樣的東西。 因此,您將得到類似以下內容的結果:
<?php
if(isUserLoggedIn()) {
?>
<div id='Default'>
<ul>
<li><a href='/account.php' >Account Home</a></li>
<li><a href='/user_settings.php' >User Settings</a></li>
<li><a href='/logout.php' >Logout</a></li>
</ul>
</div>
<div id='greeting'>
Hello, <?php echo $loggedInUser->displayname; ?>
</br>
<?php } ?>
然后,我不建議您使用PHP添加類,因為您將遭受很多if和else情況的困擾。
最好的方法是對LI使用ID /類,然后使用簡單的JavaScript函數將所選的類添加到特定項目中。
順便說一句,如果您真的有需要在PHP中使用它,我建議您閱讀以下內容: http: //www.catswhocode.com/blog/snippets/highlight-current-menu-item-in-php http:// webdeveloperswall .com / php / how-to-highlight-the-current-page-in-menu-in-php
因此,您將獲得類似以下內容的信息:
<?php if(isUserLoggedIn()) { ?>
<ul>
<?php
$url = $_SERVER['REQUEST_URI'];
$parts = parse_url($url);
$page_name = basename($parts['path']);
?>
<li><a class="<?php echo ($page_name=='acount.php')?'selected':'';?>" href="where-to-buy.php">WHERE TO BUY</a></li>
<li><a class="<?php echo ($page_name=='user_settings.php')?'selected':'';?>" href="about.php">ABOUT US</a></li>
<li><a class="<?php echo ($page_name=='logout.php')?'selected':'';?>" href="contact.php">CONTACT US</a></li>
</ul>
<?php } ?>
編輯最后,您應該以如下形式結束: http : //pastebin.com/V8jxwi7T
您可以抓取當前正在瀏覽的頁面,看看是否匹配。 大概是這樣嗎? (對不起的例子很抱歉)
<?php
// will return 'home' is the filename is home.php
$filename = pathinfo($_SERVER['PHP_SELF'], PATHINFO_FILENAME);
?>
<li <?php if ($filename == "home") { echo "class='active'"; } ?>>
<a href="home.php">Home</a>
</li>
有關pathinfo的一些信息及其在這里的工作方式
只需將類添加到選定的<li>
元素中即可,方法如下:
echo "<div id='Default'>
<ul>
<li><a href='/account.php' >Account Home</a></li>
<li class="selected"><a href='/user_settings.php' >User Settings</a></li>
<li><a href='/logout.php' >Logout</a></li>
</ul></div>";
在CSS中,為.selected類放置適當的樣式。
您應該有一個變量來告訴您當前位於哪個頁面,假設它是$currentpage
。
echo "<div id='Default'>
<ul>
<li".($currentpage=='account' ? ' class="selected"' : '')."><a href='/account.php' >Account Home</a></li>
<li".($currentpage=='usersettings' ? ' class="selected"' : '')."><a href='/user_settings.php' >User Settings</a></li>
<li><a href='/logout.php' >Logout</a></li>
</ul></div>";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.