Ich habe auf meiner Webseite bereits ein Aufklappmenü mit CSS-Hover gehabt und wollte dann jeweil die aktuelle Seite hervorheben bzw. den aktuellen Unterpunkt "aufklappen".
Nun habe ich folgenden Code geschrieben, gibt es da Verbesserungen, weil ich noch totaler Anfänger bin, Sicherheitsprobleme sehe ich keine, aber das hat ja nichts zu heißen...
Beispiel Menüstruktur (aktulle Seite: "Startseite"), bei href="" ist jeweils noch die URL eingetragen
PHP Code für die Navigation:
Nun habe ich folgenden Code geschrieben, gibt es da Verbesserungen, weil ich noch totaler Anfänger bin, Sicherheitsprobleme sehe ich keine, aber das hat ja nichts zu heißen...
Beispiel Menüstruktur (aktulle Seite: "Startseite"), bei href="" ist jeweils noch die URL eingetragen
Code:
<ul> <li id="akt_up">Startseite</li> <li><a target="_top" href=""></a></li> <li><a target="_top" href=""></a></li> <li class="off">Software <ul class="menueliste"> <li><a target="_top" href="" >Unterpunkt 1</a></li> <li><a target="_top" href="">Unterpunkt 2</a></li> </ul> </li> </ul>
PHP-Code:
//Auslesen der aktuellen Seite (alle Dateien sind im Hauptverzeichnis)
$aktuell = substr($_SERVER['SCRIPT_NAME'], 1 );
$seiten[] = array ( "name" => "Impressum", "url" => "impressum.php", "sonstiges" => 'accesskey="1"'); // Beispiel - Array
PHP-Code:
$ausgabe = '';
foreach ( $seiten as $seite )
{
if ( isset ($seite['sub']) )
{
$check = false;
$ausgabe .= "\t\t" . '<li class="off" id="{[check]}">' .
$seite['name'] . "\n" . "\t\t\t" . '<ul class="menueliste">' . "\n";
foreach ( $seite['sub'] as $unterseite )
{
if ($unterseite['url'] == $aktuell)
{
$ausgabe.= "\t\t\t\t" . '<li id="akt_sub">' .
$unterseite['name']. '</li>' . "\n";
$check = true;
}
else
{
$ausgabe.= "\t\t\t\t" .'<li><a rel="nofollow" target="_top"
href="example.com/?url=' . $unterseite['url'] . '">' . $unterseite['name'].
'</a></li>' . "\n";
}
}
if ( $check )
$ausgabe = str_replace('id="{[check]}"', 'id="akt"', $ausgabe);
else
$ausgabe = str_replace('id="{[check]}"', '', $ausgabe);
$ausgabe .= "\t\t\t</ul>\n\t\t</li>\n";
}
else
{
if ( $seite['url'] == $aktuell )
{
$ausgabe.= "\t\t" . '<li id="akt_up">' . $seite['name']. "</li>\n";
}
else
{
$ausgabe.= "\t\t" . '<li><a target="_top" href="http://example.com/?url=' . $seite['url'] . '" ' .
$seite['sonstiges'] .
'>' . $seite['name']. '</a></li>' . "\n";
}
}
}
echo $ausgabe;
Kommentar