Einzelnen Beitrag anzeigen
  #7 (permalink)  
Alt 17.03.2018, 08:36
Benutzerbild von protonenbeschleuniger
protonenbeschleuniger protonenbeschleuniger ist offline
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.921
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von AndreasB Beitrag anzeigen
@protonenbeschleuniger
Es steht außer Frage, dass für komplexe Anforderungen ein CMS die beste Technik ist.
Du siehst nicht, dass Du mich davon nicht überzeugen musst.
Habe ich auch nicht vor, ich sag dir nur das es so ist, weil man hier im Laufe der Jahre öfters solche Diskussion hatte. Du bist nicht der erste mit solchen Ideen, aber 10 Jahre später als die meisten. damals gab es solche Diskussion hier nahezu täglich.

Zitat:
Zitat von AndreasB Beitrag anzeigen
Deiner pauschalen Aussage, dass ein CMS immer das einzige Richtige ist, egal wie einfach eine Website aufgebaut ist, stimme ich nicht zu. Und mit mir auch andere, Erfahrenere nicht.
Ich sehe nur was du gerade machst und worauf hin das läuft. Und das werden dir sicher auch "Erfahrenere" bestätigen.

Das ein CMS immer das Richtige ist wäre kompletter Unsinn und habe ich nie gesagt. Aber in deinem Fall bin ziemlich sicher, dass es so ist (seltsamerweise hast du sogar mal danach gefragt)

Zitat:
Zitat von AndreasB Beitrag anzeigen
Dass es tausende Möglichkeiten gibt eine Navi mit PHP zu realisieren weiß ich und genau das ist der Grund, warum ich hier um eine Empfehlung für einen wirklich eleganten Weg suche.
und genau darauf habe ich dir ja auch geantwortet.

Wie gesagt es gibt hunderte, tausende, wenn nicht Millionen davon im Netz. Aber einen "eleganten" (was immer das sein soll) Weg gibt es nicht.

Es ist genau so wie ich sage, es gibt tausende Wege und Optionen und du musst den für dich am besten passenden finden, dabei versuchen ich dir zu helfen.

Aber das Problem ist, dass dein Ansatz einen fertigen HTML Code zu parsen, um dann mit PHP diesen zu ändern ist nicht sinnvoll.

Zitat:
Zitat von AndreasB Beitrag anzeigen
Eine Empfehlung ist was ganz anderes als "guck mal bei Google" oder "guck, mal das gibt es".
Eine Empfehlung ist eine persönliche Wertung, eine bewußte Auswahl aus einer Vielzahl, mit guten benennbaren Gründen. Und genau das erhoffe ich mir.
Dazu müssten wir Wissen was du machen willst. Ich versuche mal die Problematik an den aufgelistet Forderungen
Zitat:
1 Lese aus, wie der URL der angefragten Seite heißt.
2 Treffe das Element li, welches den dazu passenden URL hat
Allein das ist schon eine Wissenschaft für sich.

Benutzt du eine absolute oder relative URL im HTML Code? Verwendest du mod_rewrite oder hast es vor? Gibt es Mehrsprachigkeit oder Mobile Versionen? Gibt es Parameter oder wird es welche geben die du der URL übergeben musst? Kann diese Umlaute enthalten oder nicht.

Wegen dieser Problematik verwenden die meisten Skripte den einfachsten und zuverlässigsten Weg, der Seite einen Namen zu geben (so wie es auch ein CMS machen würde). Der ist aber für dich nicht "elegant".

Zitat:
3 Füge in diesem Element li das Attribut "aria-current="page"" ein
Das ist dein Denkfehler. Ein PHP Skript ist dynamisch und erzeugt den Inhalt. Das was du hast, wäre ein Template, wo man dann aber üblicherweise einen Platzhalter einfügt der dann mit dem dynamisch erzeugten Wert gefüllt wird. Einfacher ist es in dem Fall wenn der ganze HTML Code dynamisch erzeugt wird.

Wobei PHP hier eine Zwischenlösung anbieten würde. Da PHP im Grunde eine Templatesprache ist, kannst du dort auch den HTML Code und die Programmlogik vermischen. (So wie es z.b. WP macht)

Die einfachste PHP Lösung die du willst, sind nur ein paar Zeilen
PHP-Code:
function Menu($current) {
    
$entries = array(
    [
'text' => 'link1''url' => 'url1'],
    [
'text' => 'link2''url' => 'url2'],
    [
'text' => 'link3''url' => 'url3'],
    [
'text' => 'link4''url' => 'url4'],
    );
    foreach(
$entries as $link) {
        
$class '';
        if(
$link['url'] == $current){ $class ' aria-current="page"';}
        
printf('<li%s><a href="%s">%s</a></li>'$class$link['url'], $link['text']);
    }

Dazu musst das Array $entries mit deinen Werten gefüllt werden und fertig. Dann musst du es nur auf deinen Seiten so einbinden:
PHP-Code:
<ul>
<?php
Menu
('url1');
?>
</ul>
Mit Zitat antworten