2014-02-22 73 views
1

我在我的根目錄中有一個索引文件。如何正確構建php導航欄

我有一個名爲pages的目錄。

導航欄位於includes目錄中。

如果我想要在index.php中包含導航欄,並且還要在位於pages目錄中的每個pages.php中。構建這個導航欄的正確方法是什麼,以便PHP可以通過它所在的頁面上下移動目錄。

每一頁確定爲

$page = currentPage 

這裏是我現在的導航欄是在包括迪爾

<ul> 
<?php if ($page == 'home') { ?><li class="active"><a href="index.php" class="active">Home</a></li> 
<?php } else { ?><li><a href="../index.php">Home</a><?php } ?> 

<?php if ($page == 'contact') { ?><li class="active"><a href="contact.php" class="active">Contact Us</a></li> 
<?php } else { ?><li><a href="pages/contact.php">Contact Us</a><?php } ?> 

<?php if ($page == 'services') { ?><li class="active"><a href="services.php" class="active">Services</a></li> 
<?php } else { ?><li><a href="pages/services.php">Services</a><?php } ?> 

<?php if ($page == 'employees') { ?><li class="active"><a href="employees.php" class="active">Employees</a></li> 
<?php } else { ?><li><a href="pages/employees.php">Employees</a><?php } ?> 

<?php if ($page == 'dashboard') { ?><li class="active"><a href="dashboard.php" class="active">Dashboard</a></li> 
<?php } else { ?><li><a href="pages/dashboard.php">Dashboard</a><?php } ?> 
</ul> 

目錄看起來是這樣的。

根/包括對您的幫助提前

根/頁

感謝。我意識到我可以做一些簡單的事情來解決這個問題,但我真的很想明白這一點。

這是頁當前如何佈局:

<?php $page = 'contact'; ?> 

<html> 
<meta charset="utf-8"> 
<title>Contact Us</title> 
<head> 
<base href="http://www.mysite.com/Dir_IM_Working_on_root/pages/" /> 
<link rel="stylesheet" type="text/css" href="../css/styles.css" /> 
</head> 

<body> 
<div id="wrapper"> 

<div id="nav"> 
<?php include '../includes/nav.php'; ?> 
</div><!-- CLOSING NAV DIV --> 

<div id="main"> 

</div><!-- CLOSING MAIN DIV --> 

<footer> 
<?php include '../includes/footer.php'; ?> 
</footer> 

</div><!-- CLOSING WRAPPER DIV --> 
</body> 
</html> 

回答

2

最簡單的辦法是將所有情況下的輸出絕對URL。 (/test.php)

如果你想留下在子文件夾中運行你的站點的可能性,你可以在一個變量前加上所有的路徑。這可以更改爲您網站的當前位置。

另一種方式是一個

<base href="http://www.example.org/subfolder/" /> 

添加到您的HTML代碼,並更改相應地與絕對URL組合。所有網址都基於您放入屬性中的內容。這是一個非常優雅的解決方案,但它影響了很多,如果沒有受過網絡鏈接培訓,這可能會令人驚訝。

我認爲沒有「正確」的方法。 Typo3使用基本標記變體,這很可能是我將使用的方式。許多其他軟件使用變量變量(或者在函數中包裝路徑 - 這是達到相同目的的另一種方式)。只要嘗試一些方法,然後決定我認爲最吸引你的一個。

根據我的經驗,幾乎沒有人使用的唯一東西是相對URL。

更新

將此html與基本html標記組合使用。

<ul> 
<li<?php if ($page == 'home') echo ' class="active' ?>><a href="index.php">Home</a></li> 
<li<?php if ($page == 'contact') echo ' class="active' ?>><a href="pages/contact.php">Contact Us</a></li> 
<li<?php if ($page == 'services') echo ' class="active' ?>><a href="pages/services.php">Services</a></li> 
<li<?php if ($page == 'employees') echo ' class="active' ?>><a href="pages/employees.php">Employees</a></li> 
<li<?php if ($page == 'dashboard') echo ' class="active' ?>><a href="pages/dashboard.php">Dashboard</a></li> 
</ul> 
+0

我在哪裏添加基本標籤? – wuno

+0

在HTML代碼的''標籤內。 – GhostGambler

+0

只是離開我的PHP相同的方式,它是在我貼的導航欄? – wuno