Ankündigung

Einklappen
Keine Ankündigung bisher.

dynamisch erstelltes Menü verbessern

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • dynamisch erstelltes Menü verbessern

    Hallo Leute,

    ich habe mich jetzt mehrfach durch ein V2B (Video2Brain.PHP.5.4.MySQL.5.5-VtuB) gekämpft und probiere mich nun am Quellcode.

    Folgendes möchte ich verbessern .

    Aus einer vorhandenen Verzeichnisstruktur wird dynamisch ein Menü ohne Untermenü erstellt.
    Wenn Seiten in Unterordnern liegen, wird das "href Attribut" auch korrekt in den Link eingetragen; ABER; sollte jetzt eine neue Datei in einem weiteren Unterverzeichnis erstellt werden, wird dazu kein Menüpunkt erzeugt.

    Das liegt daran, dass dem "href Attribut" manuell der String "../../" hinzugefügt wird, wenn eine Datei in einem Unterverzeichnis liegt.

    Genau diesen Punkt würde ich gerne verbessern; scheitere dabei aber kläglich .
    Konkret:
    - Erkenne welche Datei bist Du
    - In welchem Unterverzeichnis liegst Du
    - Erstelle einen Link zu den Dateien im „root Verzeichnis“

    Verzeichnisstruktur:--> siehe Anhang

    Datei welche das Menü erstellt:

    PHP-Code:
    <?php
    //Dateiame der aktuell aufgerufenen Datei speichern
    $fileName basename($_SERVER['SCRIPT_NAME']);  

    /*
    Wenn in einer Datei die Variable $subDirectory gesetzt wurd, wird der Pfad zu den root Dateien ergänzt
    Das funktioniert so nur wenn die Verzeichnisstruktur auf 2 Ebenen nach unten begrenzt ist und bleibt
    --> sollte dynamischer gestaltet werden
    */
    $addSubDirectory '';
    if(isset(
    $subDirectory)){$addSubDirectory '../../';};

    /*--------------------------------------------------------------------------Wichtig, Änderungen am Hauptmenü in diesem Array vornehmen
    In diesem Array werden die benötigten Dateinamen für das Hauptmenü gespeichert.
    Die Reihen folge der Einträge bestimm auch die Reihenfolge der Einträge auf der Seite.
    Ein Hinzufügen weiterer Menüeinträge ist per copy paste möglich.
    */
    $verzeichnisBaum = array(
    $addSubDirectory "index.php" => "Startseite",
    $addSubDirectory "about.php" => "Über Mich",
    $addSubDirectory "backrezepte.php" => "Backrezepte",
    $addSubDirectory "kochrezepte.php" => "Kochrezepte",
    $addSubDirectory "contacts.php" => "Kontakt");

    ?>
    <!----------------------------------------------------------- Erzeugen des Hauptmenüs-->
    <div class="menu-row">
        <div class="menu-border">
            <div class="main">
                <nav>
                    <ul class="menu">
                    <?php foreach ($verzeichnisBaum as $dateiName => $menueName)
                    {
                        echo 
    "<li><a href='$dateiName'"; if($dateiName === $fileName) : echo "class='active'"; endif; echo ">$menueName</a></li>";
                                        }
                    
    ?>                
                    </ul>
                </nav>
            </div>
        </div>
    </div>
    Hier die Seite an der ich gerade rumprobiere. Ist ein freies, vorgefertigtes Template.

    Ich hoffe es ist einigermaßen verständlich.
    Über einen Tipp würde ich mich sehr freuen.

    Gruß
    tschero
    Angehängte Dateien
    Autodidakt und HobbyWebdesigner

    www.webdesign24.biz


  • #2
    hier im forum gibts recht viel dazu, das kannste ja mal anschauen:

    http://www.php.de/php-einsteiger/108...ons-menue.html

    Kommentar


    • #3
      Hi moma,

      ja den Beitrag hatte ich gelesen.

      Ich möchte keine Untermenüs erstellen sondern ein Menü(mit nur einer Ebene) -->siehe TestSeite<-- in einer Datei erstellen, welche dann von allen anderen Seiten includiert (ist das richtig?) wird.

      Mein Problem dabei ist das dynamische erstellen der KORREKTEN Links.

      Kein Problem ist:
      index.php (/) verlinkt auf Kontak (/) beide im root Verzeichnis

      Problem:
      Datei_a.php liegt in(/unterVerzeichnisA) verlinkt zurück auf alle Dateien im root Verzeichnis

      Datei_b.php liegt in (/unterVerzeichnisB/nochEinUnterVerzeichnis)
      verlinkt zurück auf alle Dateien im root Verzeichnis

      Das will dynamisch noch nicht so richtig funktionieren.

      Ich drücke mich evtl. auch etwas ungenau aus.

      Gruß und schon mal vielen Dank für die Hilfe,

      tschero
      Autodidakt und HobbyWebdesigner

      www.webdesign24.biz

      Kommentar


      • #4
        Du benötigst eine Base-URL von der aus die Navigation gesetzt wird. Diese kannst du entweder irgendwo zentral konfigurieren ( leicht Wartbar ) oder beim erzeugen der Datei anhand des Document-Root zusammenstricken ( schwerer Wartbar ).
        [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

        Kommentar

        Lädt...
        X