See demo.
I have a menu. I have a text file called menu.txt which contains my menu items like this:
index.php,home
index2.php,Page 2
index3.php,Page 3
And what I want to do is call a PHP script which:
- Reads the file.
- Creates the menu tags from the file contents.
- Automatically selects the page I'm looking at as the selected item in the menu.
I can then apply CSS as I like to the menu appearance using a different colour for the selected item.
Here is how I do it. First place the include 'navigation.php'; in your page script where you want the navigation to appear.
This is what navigation.php looks like:
<nav>
<ul>
<?php
/* get the contents of menu.txt */
$fileArr = file('includes/menu.txt');
/* get the name of the PHP file referred to in the URL */
$fname = basename($_SERVER['REQUEST_URI']);
/* if there isn't a PHP file extension in the URL, it must be root. Therefore call it index.php */
if(substr($fname,-4) <> ".php")
{
$fname = "index.php";
}
/* create the menu from the lines in menu.txt */
foreach ($fileArr as $line)
{
$menuitems = explode(",", $line);
echo '<li><a href="'.$menuitems[0].'" ';
/* Check the current pathname in menu.txt with the one in the current URL */
if($menuitems[0] == $fname)
{
/* If they are the same add the menuSelected class to the link */
echo 'class="menuSelected"';
}
echo '>'.$menuitems[1].'</a></li>';
}
?>
</ul>
</nav>
Hey presto! Have fun.
No comments:
Post a Comment