Akurat robiłem to we frameworku, więc w czystym pho może to wyglądać nieco inaczej... Skoro znam podstronę na ktorej sie znajduję, to wiem tak naprawdę jaki element menu ja wywołał. Ja mam dwa menu, a właściwie menu i grupę kilku submenu. Każde z submenu ma początkowo display:none, ale po najechaniu na element menu, który posiada submenu danemu submenu uwidaczniam na stronie. Gdy kliknę na jakiś link z submenu przenosi mnie do danej podstrony a jednocześnie jej kontroler wysyła do widoku informację o tym z jaką pozycją submenu ma do czynienia. Widok przechwytuje tę informacje i dokleja do tego elementu zdefiniowaną przeze mnie klasę, która oznacza zaznaczenie.
<div id="menu">
<ul class="menu">
<li><a href="" onmouseover="submenu('1');return"
<?php echo ($kontrolerG == "1") ?
' class="active"' : '' ?>>link</a></li>
<li><a href="" onmouseover="submenu('2');return"
<?php echo ($kontrolerG == "2") ?
' class="active"' : '' ?>>link</a></li>
<li><a href="" onmouseover="submenu('3');return"
<?php echo ($kontrolerG == "3") ?
' class="active"' : '' ?>>link</a></li>
<li><a href="" onmouseover="submenu('4');return"
<?php echo ($kontrolerG == "4") ?
' class="active"' : '' ?>>link</a></li>
<li><a href="" onmouseover="submenu('5');return"
<?php echo ($kontrolerG == "5") ?
' class="active"' : '' ?>>link</a></li>
</ul>
</div>
<div id="submenu1" style="
<?php echo ($kontrolerG == "1") ?
'display:block;' : 'display:none;' ?>">
<ul class="menu">
<li><a href=""
<?php echo ($kontrolerP == "1") ?
' class="active"' : '' ?>>link</a></li>
<li><a href=""
<?php echo ($kontrolerP == "2") ?
' class="active"' : '' ?>>link</a></li>
<li><a href=""
<?php echo ($kontrolerP == "3") ?
' class="active"' : '' ?>>link</a></li>
<li><a href=""
<?php echo ($kontrolerP == "4") ?
' class="active"' : '' ?>>link</a></li>
<li><a href=""
<?php echo ($kontrolerP == "5") ?
' class="active"' : '' ?>>link</a></li>
</ul>
</div>
<div id="submenu2" style="
<?php echo ($kontrolerG == "2") ?
'display:block;' : 'display:none;' ?>">
<ul class="menu">
<li><a href=""
<?php echo ($kontrolerP == "1") ?
' class="active"' : '' ?>>link</a></li>
<li><a href=""
<?php echo ($kontrolerP == "2") ?
' class="active"' : '' ?>>link</a></li>
<li><a href=""
<?php echo ($kontrolerP == "3") ?
' class="active"' : '' ?>>link</a></li>
<li><a href=""
<?php echo ($kontrolerP == "4") ?
' class="active"' : '' ?>>link</a></li>
</ul>
</div>
<div id="submenu3" style="
<?php echo ($kontrolerG == "3") ?
'display:block;' : 'display:none;' ?>">
<ul class="menu">
<li><a href=""
<?php echo ($kontrolerP == "1") ?
' class="active"' : '' ?>>link</a></li>
<li><a href=""
<?php echo ($kontrolerP == "2") ?
' class="active"' : '' ?>>link</a></li>
<li><a href=""
<?php echo ($kontrolerP == "3") ?
' class="active"' : '' ?>>link</a></li>
<li><a href=""
<?php echo ($kontrolerP == "4") ?
' class="active"' : '' ?>>link</a></li>
</ul>
</div>
<div id="submenu4" style="
<?php echo ($kontrolerG == "4") ?
'display:block;' : 'display:none;' ?>">
<ul class="menu">
<li><a href=""
<?php echo ($kontrolerP == "1") ?
' class="active"' : '' ?>>link</a></li>
<li><a href=""
<?php echo ($kontrolerP == "2") ?
' class="active"' : '' ?>>link</a></li>
<li><a href=""
<?php echo ($kontrolerP == "3") ?
' class="active"' : '' ?>>link</a></li>
<li><a href=""
<?php echo ($kontrolerP == "4") ?
' class="active"' : '' ?>>link</a></li>
<li><a href=""
<?php echo ($kontrolerP == "5") ?
' class="active"' : '' ?>>link</a></li>
</ul>
</div>
<div id="submenu5" style="
<?php echo ($kontrolerG == "5") ?
'display:block;' : 'display:none;' ?>">
<ul class="menu">
<li><a href=""
<?php echo ($kontrolerP == "1") ?
' class="active"' : '' ?>>link</a></li>
<li><a href=""
<?php echo ($kontrolerP == "2") ?
' class="active"' : '' ?>>link</a></li>
<li><a href=""
<?php echo ($kontrolerP == "3") ?
' class="active"' : '' ?>>link</a></li>
<li><a href=""
<?php echo ($kontrolerP == "4") ?
' class="active"' : '' ?>>link</a></li>
<li><a href=""
<?php echo ($kontrolerP == "5") ?
' class="active"' : '' ?>>link</a></li>
</ul>
</div>
$kontrolerG to pozycja w menu głównym, zaś $kontrolerP to pozycja w submenu. Para tych dwóch oznacza dla mnie konieczność doklejenia klasy active dla konkretnego elementu w submenu. W momencie gdy jest podana tylko jedna z liczb oznacza to przyjęcie 1 jako domyślnego drugiego parametru.
A więc 5,3 to "zakolorowanie" 5 elementu w menu i 3 elementu w jego submenu, zaś wywolanie 4 oznacza to samo dla 4 elementu w menu i domyślnie 1 w jego submenu. Dodatkowo, jak może widać, jest skrypt submenu(x), który odpowiada za wyświetlanie właściwego submenu przy najechaniu na element menu. Działa to na zasadzie podobnej do zakładek. Oczywiście mi jest łatwo bo mam nemu na sztywno, a ktoś może je mieć generowane, ale wtedy może sie odnosić id lub czymś co jednoznacznie identyfikowałoby element do zaznaczenia. Całość oczywiście ostylowana tak, że tworzy zgrabne menu poziome. Nie jest to trudne do zrobienia, tylko trzeba zrozumieć ideę, która stoi za takim podejściem. Ale to jest akurat rozwiązanie dobre gdy nie ma wielu zagłębień, bo inaczej robi się zamieszanie ze względu na ogromną ilość linków będących wtedy obok siebie. A każdy wie, że zbyt dużo linków na jednej stronie (podstronie), źle z reguły wpływa na jej pozycjonowanie i obniża ranking.