Kategorien verschachteln??

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

  • #16
    Habe mir nach einem Tipp von einem Kumpel nen Code gebastelt.
    Einiges daraus könnt ihr wahrscheinlich nicht gebrauchen (meine das "a-Style-Sheet"), aber egal.

    Habe gleich eine Ein-/Ausblende-Funktion mit eingebaut.
    Das Java allerdings müsstet ihr selbst hinbekommen *grins*.

    Die mySQL-Struktur:
    ID, CAT, NAME (CAT ist die Tochter von ID)

    PHP-Code:
    <br /><?php 

    /* function oeffnen */ 
    function getSubitems($parentID,$run=0,$div=0

          
    /* Anzahl der Platzhalter bestimmen */ 
        
    for($x=0;$x<$run;$x++) 
        { 
            
    $place .= "&nbsp;&nbsp;&nbsp;&nbsp;"
        } 

        
    /* Wenn mehrere Kategorien, div oeffnen! */ 
        
    if($div != "0"){ ?><div style="display: none;" id=<?php echo $parentID?>><?php 

        
    /* while-schleife öffnen! */ 
        
    $query mysql_query("SELECT * FROM `cv_categories` WHERE CAT='".$parentID."' ORDER BY NAME ASC"); 
        while (
    $result mysql_fetch_object($query)) 
        { 

          
    /* Fragen, ob naechte Kategorien einen neue Ebene sind! */ 
          
    $row_query mysql_query("SELECT * FROM `cv_categories` WHERE CAT='".$result->ID."'"); 
          
    $rows mysql_num_rows($row_query); 

             
    /* a-StyleSheet bestimmen! */ 
             
    if($rows 0){ $class "kat"; } 
             else { 
    $class "sub"; } 

             
    /* Link-URL und target="" bestimmen! */ 
             /* Ausserdem bestimmen, ob naechste Kategorie eine neue Ebene ist */ 
             
    if($class == "sub"){ $link "content.php?id=".$result->ID$div "0"$target "target=\"main\""; } 
             else { 
    $link "javascript:ShowFL(".$result->ID.");"$div "1"$target=" "; } 

        
    /* Platzhalter hier ausgeben! */ 
        
    echo $place
        
    ?><a href="<?php echo $link?>" class="<?php echo $class?><?php echo $target?>><?php echo $result->NAME?></a><br><?php 

          
    /* Hier beginnt das rekursive auslesen! */ 
            
    getSubitems($result->ID,($run+1),$div); 

             
    /* Wenn mehrere Kategorien, div schliessen! */ 
             
    if($div != "0"){ ?></div><?php 

        
    /* while-Schleife schliessen! */ 
        


    /* function schliessen! */ 


    /* start des Menues! (0=1. Ebene) */ 
    getSubitems(0); 
    ?>
    Hoffe, dass hier diesmal keiner sagt: Code bitte für die Zukunft! Habe ich extra mit Kommentaren versehen!
    PS: Erster Eintrag muss sein: 1,0,Rekursiv-Menü -> oder so ähnlich :-D
    Mit freundlichem Gruß,
    Deathrow

    Kommentar


    • #17
      OffTopic:
      der Code ist diesmal schon viel übersichtlicher, das einzige was noch stört ist, dass du selbst für kleinigkeiten den php block verläßt:
      ....echo $var1 ?> <br /> <? echo $var2....
      versuch lieber dass mit einfachen anführungszeichen einzubinden:
      ....echo $var1.'<br />'.$var2
      Die Musikreview Seite

      hi, i'm a signature virus. copy me into your signature to help me spread.

      Kommentar


      • #18
        So programmiere cih immer, wenn cih nciht unter Druck stehe. Schön lesbar, etc...

        Das mit den PHP-Block verlassen, mache ich extra.
        Denn: Da kommen irgendwann noch tempaltes hinzu und dann sehe ich mit PHP-Highlight genau, wo HTML ist!

        *grins*
        Mit freundlichem Gruß,
        Deathrow

        Kommentar


        • #19
          was ist daran lesbar?
          h.a.n.d.
          Schmalle

          http://impressed.by
          http://blog.schmalenberger.it



          Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
          ... nur ohne :-)

          Kommentar


          • #20
            Was daran lesbar ist? Der Code!
            Mit freundlichem Gruß,
            Deathrow

            Kommentar


            • #21
              Oi!

              Deathrow hast du schon mal was von NestedSets gehört?
              Hier gibs ne Klasse zum verschachteln

              Die Klasse ist nicht schlecht nur zu empfehlen auf der Seite ist auch ne kleines Tutuorial zu der Klasse

              MfG
              Jan

              Kommentar


              • #22
                Runterladbare klassen sind doch langweilig...
                Mit freundlichem Gruß,
                Deathrow

                Kommentar


                • #23
                  Aber wozu das Rad neu Erfinden

                  Kommentar


                  • #24
                    Noja..... Vielleicht, damit es schöner aussieht und besser funktioniert?? *grins*
                    Mit freundlichem Gruß,
                    Deathrow

                    Kommentar


                    • #25
                      Das ist ein gutes Argument

                      Kommentar

                      Lädt...
                      X