I use a paging system like this:
<?php
$p = $_GET['p'];
switch($p)
{
case "start":
$p = "pages/start.php";
$currentPageId = 1;
break;
case "customers":
$p = "pages/customers.php";
$currentPageId = 2;
break;
default:
$p = "pages/start.php";
$currentPageId = 1;
break;
}
?>
I want to set css class="active"
to the menu item of the page i'm on.
It works if I print <li>
items like this:
<li><a href="?p=start" <?php if ($currentPageId == 1) {echo "class='active'";}else {} ?>>Start</a></li>
But I would like to use ternary operator instead. I tried this code but it doesn't work:
<li><a href="?p=start" <?php ($currentPageId == '1') ? 'class="active"' : '' ?>>Startsida</a></li>
Any idea why?
EDIT
So the problem was I was missing an echo
. Now let me extend the question a bit...
I need to encapsulate my entire <ul>
inside the <?php ?>
tags. So what I would like is something like this:
echo "<div id='nav'>";
echo "<ul>";
echo "<li><a href='?p=start' /* ternary operator to match if the page I'm on is equal to $currentPageId as defined in the paging system (above), if so set class='active' else do nothing*/>Start</a></li>;
echo "<li><a href='?p=customers' /* ternary operator to match if the page I'm on is equal to $currentPageId as defined in the paging system (above), if so set class='active' else do nothing*/>Customers</a></li>;
echo "</ul>";
echo "</div>";
I need to do this because I will display the links based on if
statements.. "if user is admin display this link, else don't" ... Anyone got a solution?