PHP Navigation -> Current Link automatisch hervorheben

05/01/2013 20:12 adistoe#1
Hallo zusammen

Ich möchte mit php gerne verwirklichen, dass die current Site (aktuelle Seite) automatisch hervorgehoben wird.

Mein Problem ist, das dies nicht mit Parametern funktioniert, bzw. so:

index.php?page=index
index.php?page=about

Problemstelle = ?page=Seite

Meine Navigation:
PHP Code:
<nav id="Navigation">
        <
ul>
            <
li><a href="index.php">Navigation</a></li>
        </
ul>
    </
nav
So funktionier es leider nicht, wegen der ?page=Seite:
PHP Code:
<nav id="Navigation">
        <ul>
            <li <?php if (strpos($_SERVER['PHP_SELF'], 'index.php?page=index')) echo 'class="current"';?>><a href="index.php">Navigation</a></li>
        </ul>
    </nav>
Ich hoffe man versteht mein Problem und kann es evtl. lösen :)

mfg
adistoe
05/01/2013 20:29 PseudoPsycho#2
Wenn du alle Seiten über den Parameter page differenzierst, kannst du doch den vergleichen:
PHP Code:
<?php
$page
=(!empty($_GET['page']))?$_GET['page']:'index';
?><!-- ... -->
<nav id="Navigation">
        <ul>
            <li <?php if($page==='index')) echo 'class="current"';?>><a href="index.php">Navigation</a></li>
        </ul>
</nav>
Solltest du aufgerufene Seite und alle Parameter prüfen wollen, dann so:
PHP Code:
<?php
$page
=$_SERVER['PHP_SELF'].(!empty($_SERVER['QUERY_STRING']))?'?'.$_SERVER['QUERY_STRING']:'';
?><!-- ... -->
<nav id="Navigation">
        <ul>
            <li <?php if($page==='index.php' || $page==='index.php?page=index')) echo 'class="current"';?>><a href="index.php">Navigation</a></li>
        </ul>
</nav>
05/02/2013 18:27 adistoe#3
das obere ist genau, was ich gesucht habe.
Ein fettes Dankeschön ;)

mfg
adistoe