Dynamische Navigation

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

  • Dynamische Navigation

    Hallo zusammen..

    Ich möchte eine Dynamische navigation machen.
    Navigation:

    Community
    - Forum
    - Mitarbeiter

    Ich möchte das Man in einer PHP Datei(ohne MySQL) diese Dynamische navigation verwalten kann.

    Dabei muss folgendes beachten:
    - Der Link enthält ein Namen, Datei, Get-Variabel, Untergeordnete Katekorie
    - Die Kategorie kann auch verlinkt werden.

    Ich hab das mit mehrdimensinalen Array's versucht, bin jedoch nicht uaf eine schlaue lösung gekommen.

    Die datei sollte dan unfegähr so aussehen:
    PHP-Code:
    <?php
    $titel 
    = array();
    $link = array();

    $titel['Titelname'] = 'verlinkung';
    $link['Get Variabel'] = 'verlinkung';

    ?>
    Da kann ich aber folgendes nicht festlegen:
    1. Linkname
    2. Untergeordneter Titel

    Also ein link ist immer einem Titel untergeordnen.



    Ich hoffe ihr versteht mein Problem, ansonsten fragt was ihr nicht versteht

    Gruss Andy
    Bücher für Programmierer

  • #2
    das was du da versucht hast, ist wenig mehrdimensional.

    wo ist das problem?

    PHP-Code:
    $nav[] = array('titel' => 'Startseite''datei' => 'index.php''get' => array(), 'subs' => array()); 
    get muss natürlich nicht unbedingt ein array sein.

    In subs speicherst du dann ggf. mehrere Arrays der gleichen Struktur.

    Ist dein Problem verstanden?
    Es gibt natürlich 100e möglichkeiten

    Kommentar


    • #3
      Danke erstmal für deine schnelle antwort.

      Ja, ich weiss das was ich oben geschrieben habe ist nicht mehrdimensional. Ich hab es aber bei mir mit mehreren arrays probiert.

      Eigendlich dachte ich das die ganze datei ein bisschen übersichtlicher gestaltet werden sollte.
      Dass heisst sie silte eigendlich genau gleich dargestellt sein wie schlussendlich die navigation.

      Code:
      Titel (array oder was auch immer)
      Link (array oder was auch immer)
      Link ...
      
      Titel (array oder was auch immer)
      Link (array oder was auch immer)
      Link ...
      
      Titel (array oder was auch immer)
      Link (array oder was auch immer)
      Link ...
      ca so.

      Gibt es evetuell nich ne möglichkeit das ganze nicht in dieser
      [code]$a = array(a, b, c);
      struktur zu machen sondern in dieser:
      Code:
      $a = array();
      $a[] = 'a';
      zu machen?

      Das würde das ganze shcon ein bisschen übersichtlicher machen.

      Vielleicht kennt auch jemand noch einen guten link wo ich mehr über diese 'blöden' mehrdimensionel arrays erfahre..
      Bücher für Programmierer

      Kommentar


      • #4
        Original geschrieben von andygyr
        Gibt es evetuell nich ne möglichkeit das ganze nicht in dieser
        [code]$a = array(a, b, c);
        struktur zu machen sondern in dieser:
        Code:
        $a = array();
        $a[] = 'a';
        klar geht das.
        für mehrere dimensionen dann halt so:
        PHP-Code:
        $nav['index_1'][]='a';
        $nav['index_1'][]='b';
        // ...
        $nav['index_9'][]='x';
        $nav['index_9'][]='y'
        für die zweite dimension kannst du natürlich auch assoziative keys verwenden. [] inkrementiert lediglich numerische indizies (bei 0 beginnend)

        Kommentar


        • #5
          klar gibt es die... wenn du das für leute schreibst, die es verstehen sollen, ohne es zu verstehen etwa so:

          PHP-Code:
          $ein_link['name']='Link eins';
          $ein_link['uri']='seite1.htm'//und so weiter
          $menu[]=$ein_link;

          $ein_link['name']='Link zwei';
          $ein_link['uri']='seite2.htm'//bla blubber
          $menu[]=$ein_link
          damit hättest du dann die ersten beiden einträge im array...

          zugreifen kannst du darauf dann auch mit
          $menu[0]['name'] bzw. $menu[1]['name'] und so weiter...

          wenn du das ganze dann auch noch mit untermenüpunkten brauchst, dann legst du einfach ein menü ins menü und schreibst ne funktion zum anzeigen, die rekursiv aufgerufen werden kann in einer schleife... also zum beispiel so:

          PHP-Code:
          function zeige_menu($welches,$einruecken) {
            foreach (
          $welches as $a_link) {
               
          //schreibe $einruecken mal ein geschütztes leerzeichen
               //code zum hinschreiben des namen und link etc.
               
          if (isset($a_link['untermenu'])) zeige_menu($a_link['untermenu'],$einruecken+4);
               
          //schreibe einen absatz
            
          }
          }

          //und dann zum anzeigen einfach so aufrufen:
          zeige_menu($hauptmenu,0); 
          in $hauptmenu[]['untermenu'] steckt dann einfach wieder ein komplettes menü-array...

          das ganze funktioniert dann in beliebiger tiefe, bis der bildschirm voll ist...

          aber wie gesagt, es gibt 100e möglichkeiten

          greetz, high
          Zuletzt geändert von highrise; 19.10.2007, 20:53.
          Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
          When everything else fails, manipulate the data...
          Beschriftungen / Großformatdruck / Werbemittel

          Kommentar


          • #6
            Hmm Danke

            Das mit der Funktion checke ich nicht. Ich denke aber ich brauche dies auch nicht. Trotzdem Danke.

            Ich hab das mal so probiert:
            PHP-Code:
            $ein_link['titel'] = 'titel1'// Neuer Titel

            // Neuer Link
            $ein_link['name'] = 'Link eins';
            $ein_link['get'] = 'lkink1';
            $ein_link['datei'] = 'seite1.htm';

            // Links erstellen
            $menu[]=$ein_link;

            // Neuer Link
            $ein_link['name'] = 'Link einsa';
            $ein_link['get'] = 'lkink1a';
            $ein_link['datei'] = 'seite1.ahtm';

            // Links erstellen
            $menu[]=$ein_link;

            // Neuer Link
            $ein_link['name'] = 'Link eins';
            $ein_link['get'] = 'lkink1';
            $ein_link['datei'] = 'seite1.htm';

            // Links erstellen
            $menu[]=$ein_link;

            // Neuer Link
            $ein_link['name'] = 'Link eins';
            $ein_link['get'] = 'lkink1';
            $ein_link['datei'] = 'seite1.htm';

            // Links erstellen
            $menu[]=$ein_link;


            $ein_link['titel'] = 'titel2'// Neuer Titel

            // Neuer Link
            $ein_link['name'] = 'Link eins';
            $ein_link['get'] = 'lkink1';
            $ein_link['datei'] = 'seite1.htm';

            // Links erstellen
            $menu[]=$ein_link;

            // Neuer Link
            $ein_link['name'] = 'Link eins';
            $ein_link['get'] = 'lkink1';
            $ein_link['datei'] = 'seite1.htm';

            // Links erstellen
            $menu[]=$ein_link;

            // Neuer Link
            $ein_link['name'] = 'Link eins';
            $ein_link['get'] = 'lkink1';
            $ein_link['datei'] = 'seite1.htm';

            // Links erstellen
            $menu[]=$ein_link;

            // Neuer Link
            $ein_link['name'] = 'Link eins';
            $ein_link['get'] = 'lkink1';
            $ein_link['datei'] = 'seite1x.htm';

            // Links erstellen
            $menu[]=$ein_link;

            $navigation '';
            $titel = array();
            $name = array();
            $get = array();
            $datei = array();

            $c count($menu)-1;
            for (
            $i=0$i<=0$i++)
            {
            foreach (
            $menu[$i] as $a => $b)
            {
                if(
            $a=='name') { 
                    
            $name[] = $b;
                } elseif (
            $a=='get') {
                    
            $get[] = $b;
                } elseif (
            $a=='datei') {
                    
            $datei[] = $b;
                } elseif (
            $a=='titel') {
                    
            $titel[] = $b;
                }
            }
            }

            $cc count($get);
            for (
            $i=0;$i<=$cc;$i++) 
            {
                echo 
            '<a href="'.$datei[$i].'">'.$name[$i].'</a> - Get Variabel: '.$get[$i].' Gehört zum titel: '.$titel[$i].'<br>';

            Ist mehr ne testausgabe.
            Das Problem ist: das die arrays $name, $get, $datei und $titel je nur ein wert drin haben.
            Wiso?
            Bücher für Programmierer

            Kommentar


            • #7
              weil du ziemlich genau von 0 bis 0 zählst....

              for ($i=0; $i<=0; $i++)

              ergo nur ein durchlauf durch die schleife. anyway... den schleifenkram kannst du sowieso um einiges glücklicher lösen, aber für nen test sollte es reichen, wenn du nicht $i<=0 sondern eben $i<=$c schreibst...

              greetz, high
              Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
              When everything else fails, manipulate the data...
              Beschriftungen / Großformatdruck / Werbemittel

              Kommentar


              • #8
                Oh..
                ja, logisch :S ^^


                Aber wie kann ich das machen, ohne so viele schleifen?
                Bücher für Programmierer

                Kommentar


                • #9
                  Verstehe das Problem nicht?

                  Kommentar


                  • #10
                    Nunja, ich kann nun jeden einzelnen link ausgeben, mit dazugehöriger GET variabel und titel.

                    Wie kann ich jetzt alle die den gleichen titel haben unter diesen Titel ordnen?
                    Bücher für Programmierer

                    Kommentar


                    • #11
                      Warum sollten mehrere Navigationselemente den gleichen bzw. selben Titel haben???

                      Kommentar


                      • #12
                        Viellicht ist Titel nicht das richtige wort. Kategorie wär wohl besser.
                        In meiner Text-Navigation will ich das folgendermasten machen:

                        Aktuell
                        ******
                        - News
                        - Updates

                        Community
                        *********
                        - Forum
                        - Disclaimer

                        Und da währen dann Cummunity und Aktuell die Titel.
                        Und die untergeordneten Links sind bei Aktuell news, Updates. Und bei Cummunity Forum, Disclaimer.
                        Bücher für Programmierer

                        Kommentar


                        • #13
                          Wie sieht denn die aktuelle Array-Struktur aus?

                          Kommentar


                          • #14
                            so:
                            Code:
                            array(8) {
                              [0]=>
                              array(4) {
                                ["titel"]=>
                                string(6) "titel1"
                                ["name"]=>
                                string(9) "Link eins"
                                ["get"]=>
                                string(6) "lkink1"
                                ["datei"]=>
                                string(10) "seite1.htm"
                              }
                              [1]=>
                              array(4) {
                                ["titel"]=>
                                string(6) "titel1"
                                ["name"]=>
                                string(10) "Link einsa"
                                ["get"]=>
                                string(7) "lkink1a"
                                ["datei"]=>
                                string(11) "seite1.ahtm"
                              }
                              [2]=>
                              array(4) {
                                ["titel"]=>
                                string(6) "titel1"
                                ["name"]=>
                                string(9) "Link eins"
                                ["get"]=>
                                string(6) "lkink1"
                                ["datei"]=>
                                string(10) "seite1.htm"
                              }
                              [3]=>
                              array(4) {
                                ["titel"]=>
                                string(6) "titel1"
                                ["name"]=>
                                string(9) "Link eins"
                                ["get"]=>
                                string(6) "lkink1"
                                ["datei"]=>
                                string(10) "seite1.htm"
                              }
                              [4]=>
                              array(4) {
                                ["titel"]=>
                                string(6) "titel2"
                                ["name"]=>
                                string(9) "Link eins"
                                ["get"]=>
                                string(6) "lkink1"
                                ["datei"]=>
                                string(10) "seite1.htm"
                              }
                              [5]=>
                              array(4) {
                                ["titel"]=>
                                string(6) "titel2"
                                ["name"]=>
                                string(9) "Link eins"
                                ["get"]=>
                                string(6) "lkink1"
                                ["datei"]=>
                                string(10) "seite1.htm"
                              }
                              [6]=>
                              array(4) {
                                ["titel"]=>
                                string(6) "titel2"
                                ["name"]=>
                                string(9) "Link eins"
                                ["get"]=>
                                string(6) "lkink1"
                                ["datei"]=>
                                string(10) "seite1.htm"
                              }
                              [7]=>
                              array(4) {
                                ["titel"]=>
                                string(6) "titel2"
                                ["name"]=>
                                string(9) "Link eins"
                                ["get"]=>
                                string(6) "lkink1"
                                ["datei"]=>
                                string(11) "seite1x.htm"
                              }
                            }
                            Dieses array habe ich aber oben schon verarbeitet.
                            Bücher für Programmierer

                            Kommentar


                            • #15
                              Ist doch unfug. Warum überträgst du meinen Vorschlag nicht auf dein problem?

                              $navi[] = array('title' => 'Aktuell', 'subs' => array(
                              array('name' => 'News', 'file' => 'news.php', ...),
                              array('name' => 'Updates', 'file' => 'updates.php', ...)));
                              $navi[] = array('title' => 'Community', 'subs' => array(...));

                              Kommentar

                              Lädt...
                              X