2013. július 22., hétfő

Hol járok éppen egy oldalon - listaelem osztállyal felruházása ultraegyszerűen

Azt szeretnéd, hogy a HTML menüdben az aktuális oldal mindig kiemelt legyen? Hogy a felhasználó mindig tudja hol jár?

Nem állítom, hogy nagy oldalaknál működik, de kis céges oldalaknál simán megy az alábbi megoldás, és nem kell agyalni és javascripteket letöltögetni, egyszerűen csak ésszel megszerkeszteni a menüt.

Első lépésként a menüt vedd ki a html oldalakból, felesleges hogy minden oldalon külön szerepeljen, mejd pedig include-old be a megfelelő oldalakra.

Most a menüt tartalmazó fájlban kérd le az aktuális oldal URL-jét az alábbi kóddal:

$pageURL = $_SERVER["REQUEST_URI"];

Természetesen innentől kezdve php fájlról beszélünk. így mindenütt legyen kint a kezdő és nyitó tag: <?php az elején és ?> a végén a kódnak.

Most pedig készíts egy elágazást:

  if ($pageURL == "/itt_jarok.php") {

echo "

<nav id='menu'>

<ul>
<li><div class='active'><a href='itt_jarok.php'>Aktuális menüpont</a></div></li>
<li><a href='nem_jarok_itt.php'>Nem aktuális menüpont</a></li>
<li><a href='nem_jarok_itt.php'>Nem aktuális menüpont</a></li>
<li><a href='nem_jarok_itt.php'>Nem aktuális menüpont</a></li>
<li><a href='nem_jarok_itt'>Nem aktuális menüpont</a></li>
<li><a href='nem_jarok_itt.php'>Nem aktuális menüpont</a></li>
</ul>

</nav>

";}


Ennél egyszerűbb és érthetőbb mód nincsen.

Annyi történik, hogy a beszúrt kód minden egyes oldalletöltésnél megvizsgálja az hogy mi az URL utolsó tagja, és, az elágazás pedig megnézi, hogy az URL azonos e a neki megadottal, és ha igen, akkor más a már meglévő helyett más kódot generál - és osztállyal jelöli meg (active) az aktuális URL-nek megfelelő menüpontot. Egyszerű?

 Természetesen beleteheted az egészet egy ciklusba, így nem kell a kódot ismételgetni, és tovább is fejlesztheted, de egy ör menüpontot tartalmazó oldalnál erre semmi szükség, csak ismételd meg az elágazást öt alkalommal.