Nested Sei Layer

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

  • Nested Sei Layer

    Hallo, ich habe hier ein Script, das verschiede Layer positionieren soll, Leide schließt der Layer (wie ausgewiesen) nicht. Hat mir jemand einen Tipp, wie ich das hinbringen könnte?

    PHP-Code:

      
    public function getTree($menu_area_id$language_id) {

        
    $sql "SELECT n.id, n.menu_link,  n.menu_name, n.menu_area, COUNT(*)-1 AS level, n.lft, n.rgt, ROUND ((n.rgt - n.lft - 1) / 2) AS children FROM ".self::PREFIX."sections AS n, ".self::PREFIX."sections AS p WHERE (n.lft BETWEEN p.lft AND p.rgt) AND (n.menu_area = '$menu_area_id' AND n.language_id = '".$language_id."' AND p.menu_area = '$menu_area_id' AND p.language_id = '".$language_id."' AND ((n.access_for = '#all' AND p.access_for = '#all') OR (n.access_for IN (".$this -> front_users($_SESSION['front_user_id'])."))) AND ((n.public_status = '2' AND p.public_status = '2') OR (n.public_status = '".$_ENV['open_preview']."'))) GROUP BY n.lft ORDER BY n.lft;";
            
    $result $this->db->query($sql);

         if(
    $this->db->error != "")
         die(
    $this->db->error."_getTree");

        
    $tree = array();
            
    $i 0;
            while (
    $row $result->fetch_assoc()) {

                
    $tree[$i] = $row;
                
    $i++;

            }
            return 
    $tree;
        }

        public function 
    treeAsHtml($id$menu_area_id$language_id$css_id$css_class$layers) {

        
    $tree $this->getTree($menu_area_id$language_id);

        
    $level = Array();


            
    $html "<ul";

        if(
    $css_id != "")
        
    $html .= " id=\"".$css_id."\" ";

        if(
    $css_class != "")
        
    $html .= " class=\"".$css_class."\" ";

        
    $html .= ">";

        
    $result $this -> selectSimpleSql('navigation''id'$menu_area_id'''''id''ASC');

        
    $level_data $result->fetch_assoc();

        
    $limits unserialize($level_data['limits']);

        
    $close "";

        
    $split_layer = Array();

        
    $tmp_before = Array();

        
    $tmp_after = Array();

            for (
    $i=0$i<count($tree); $i++) {


          
    $level $tree[$i]['level'] + 1;



              if(
    $layers['html_container_open_'.$level] != "" AND $layers['enclose_before_after_tag_'.$level] == "1" AND $tree[$i]['level'] < $tree[$i+1]['level']) {

              
    $html .= $layers['html_container_open_'.$level];

              
    $tmp_before[$level] = $i;



              }


                
    $html .= "<li ";  if($limits['li_css_class_'.$level] != "") { $html .= "class=\" "$limits['li_css_class_'.$level] . " ".$active."\""; }  $html .= ">";


          if(
    $layers['enclose_tag_level_'.$level] != "") {

              
    $split_layer explode('><'$layers['enclose_tag_level_'.$level]);

              
    $html .= $split_layer[0].">";

              }


          if(
    array_key_exists($tree[$i]['id'].''$GLOBALS['url']) == false AND $tree[$i]['menu_link'] == "" AND $this -> is_content($tree[$i]['id']) != false) {

                    
    $html .= "<a href=\"?id=" $tree[$i]['id'] . "\" "; if($limits['tag_css_class_'.$level] != "") { $html .= " class=\""$limits['tag_css_class_'.$level] . "\""; }  $html .=  " >" $tree[$i]['menu_name'] . "</a>";

          } else if (
    $tree[$i]['id'] == $this -> getDefaultId() AND $this -> is_content($tree[$i]['id']) != false){

                    
    $html .= "<a href=\"\" "; if($limits['tag_css_class_'.$level] != "") { $html .= " class=\""$limits['tag_css_class_'.$level] . "\""; }  $html .=  ">" $tree[$i]['menu_name'] . "</a>";

          } else if(
    $tree[$i]['menu_link'] == "" AND $this -> is_content($tree[$i]['id']) != false) {

                    
    $html .= "<a href=\"" $GLOBALS['url'][$tree[$i]['id']] . "\" "; if($limits['tag_css_class_'.$level] != "") { $html .= " class=\""$limits['tag_css_class_'.$level] . "\""; }  $html .=  ">" $tree[$i]['menu_name'] . "</a>";

          } else if(
    $this -> is_content($tree[$i]['id']) === false) {

                    
    $html .= "<".$layers['tag_layer_'.$level].""; if($limits['tag_css_class_'.$level] != "") { $html .= " class=\"".$limits['tag_css_class_'.$level] . "\""; }  $html .=  ">" $tree[$i]['menu_name'] . "</".$layers['tag_layer_'.$level].">";

          } else if (
    is_numeric($tree[$i]['menu_link'])) {

                    
    $html .= "<a href=\"" $GLOBALS['url'][$tree[$i]['menu_link']] . "\" "; if($limits['tag_css_class_'.$level] != "") { $html .= " class=\""$limits['tag_css_class_'.$level] . "\""; }  $html .=  ">" $tree[$i]['menu_name'] . "</a>";

          } else if (
    substr$tree[$i]['menu_link'] , 07) == "http://" OR substr$tree[$i]['menu_link'], 07) == "mailto:") {

                    
    $html .= "<a href=\"" $tree[$i]['menu_link'] . "\" "; if($limits['tag_css_class_'.$level] != "") { $html .= " class=\""$limits['tag_css_class_'.$level] . "\""; }  $html .=  ">" $tree[$i]['menu_name'] . "</a>";

          } else {

                    
    $html .= "<a href=\"" $tree[$i]['menu_link'] . "\" target=\"_blank\" "; if($limits['tag_css_class_'.$level] != "") { $html .= " class=\""$limits['tag_css_class_'.$level] . "\""; }  $html .=  ">" $tree[$i]['menu_name']."</a>";

          }


          if(
    $layers['enclose_tag_level_'.$level] != "") {

              
    $split_layer explode('><'$layers['enclose_tag_level_'.$level]);

              
    $html .= "<".$split_layer[1];

              }



          if(
    $tree[$i]['level'] == $tree[$i+1]['level'] OR $tree[$i]['level'] > $tree[$i+1]['level']) {

            
    $html .= "</li>";

          }


              if(
    $layers['html_container_open_'.$level] != "" AND $layers['enclose_before_after_tag_'.$level] == "2" AND $tree[$i]['level'] < $tree[$i+1]['level']) {

              
    $html .= $layers['html_container_open_'.$level];

              
    $tmp_after[$level] = $tree[$i]['children'] + $i;
    print(
    '#'.$tree[$i]['children'].'*'); // ist 28 sollte 4 sein
              
    }



          if(!empty(
    $tmp_before[$level]) AND $tmp_before[$level] < $i) {

               
    $html .= $layers['html_container_close_'.$level];

           }

           if(!empty(
    $tmp_after[$level]) AND $tmp_after[$level] == $i) {

                
    $html .= $layers['html_container_close_'.$level];

                unset(
    $tmp_after[$level]);

            }



          if(
    $tree[$i]['level'] < $tree[$i+1]['level']) {



              
    $html .= "<ul"; if($limits['ul_css_class_'.$level] != "") { $html .= " class=\""$limits['ul_css_class_'.$level] . "\""; }  $html .=  ">";

                } else if (
    $tree[$i]['level'] > $tree[$i+1]['level']) {



            
    $diff $tree[$i]['level'] - $tree[$i+1]['level'];

                    
    $html .= str_repeat("</ul></li>"$diff) . "";

           if(!empty(
    $tmp_after[$level]) AND $tmp_after[$level] < $i) {

               
    $html .= $layers['html_container_close_'.$level];
           }

          }



          
    $active "";


            }


            
    $html .= "</ul>";



        return 
    $html;

        } 
    Zuletzt geändert von sanktusm; 22.04.2019, 15:14.

  • #2
    php Nested Sets Struktur mit div Layern

    Hallo,
    ich bin leider sehr verzweifelt, da ich keine Lösung finde, wie man dieses Script

    PHP-Code:

    <div id="navbar" class="collapse navbar-collapse">     
            
            <
    ul class="nav navbar-nav mr-auto" >
               <
    li class=" menu-el active"><a href="" >Home</a></li>
               <
    li class=" menu-el "><a>Produkte</a>
                    <
    ul>     
                        <
    div class="mdf_sub_wrap mdf_flip row lists">
                            <
    li ><div class="cl-title"><h3>Aluund Stahlprodukte </h3></div>
                               <
    ul class="mdf_child_menu">
                                 <
    li ><a href="alu-stahl-trapezblech" >Trapezbleche</a></li>
                                 <
    li ><a href="wellblech-guenstig" >Wellbleche</a></li>
                                 <
    li ><a href="alu-ziegelblech" >Ziegelbleche</a></li>
                                </
    ul>
                            </
    li>
                            <
    li ><div class="cl-title"><a href="befestigung-dach" >Befestigung und Abdichtung</a></div>
                                <
    ul class="mdf_child_menu">
                                  <
    li ><a href="schrauben-dachplatten" >Schrauben</a></li>
                                  <
    li ><a href="kalotten-trapezblech" >Kalotten</a></li>
                                  <
    li ><a href="profilfueller-dach" >Profilfüller</a></li>
                                  <
    li ><a href="bohrer-dachbefestigung" >Bohrer</a></li>
                                </
    ul>
                            </
    li>
                            <
    li ><div class="cl-title"><a href="dachzubehoer-online-shop" >Dachzubehör für Verleger</a></div>
                                <
    ul class="mdf_child_menu">
                                  <
    li ><a href="unterdeck-unterspannbahn-und-zubehoer" >Unterdeck-Unterspannbahn und Zubehör</a></li>
                                  <
    li ><a href="dachentwaesserungssysteme" >Dachentwässerungssysteme</a></li>
                                  <
    li ><a href="schneefangsysteme-und-zubehoer" >Schneefangsysteme und Zubehör</a></li>
                                  <
    li ><a href="schneefangsysteme" >Schneefangsysteme</a></li>
                                </
    ul>
                             </
    li>
                          </
    div>
                         </
    ul>
                     </
    li>                   
                </
    ul>
             
          </
    div
    mit diesem Code realisiert

    PHP-Code:


    <?php
      
    public function treeAsHtml($id$menu_area_id$language_id$css_id$css_class$layers) {

        
    $tree $this->getTree($menu_area_id$language_id);

        
    $level = Array();

        
    $html_out_layer "";

            
    $html "<ul";

        if(
    $css_id != "")
        
    $html .= " id=\"".$css_id."\" ";

        if(
    $css_class != "")
        
    $html .= " class=\"".$css_class."\" ";

        
    $html .= ">";

        
    $result $this -> selectSimpleSql('navigation''id'$menu_area_id'''''id''ASC');

        
    $level_data $result->fetch_assoc();

        
    $limits unserialize($level_data['limits']);

        
    $close "";

        
    $split_layer = Array();

        
    $tmp_after = Array();

        
    $tmp_before = Array();

        
    $collect "";  
         

            for (
    $i=0$i<count($tree); $i++) {


          
    $level $tree[$i]['level'] + 1;

          if(
    $tree[$i]['id'] == $_SESSION['id'])
          
    $active "active";
          else
          
    $active "";

          
          
           
          


                
    $html_li "<li ";  if($limits['li_css_class_'.$level] != "") { $html_li .= "class=\" "$limits['li_css_class_'.$level] . " ".$active."\""; }  $html_li .= ">";


          


          

                    
    $html_link "<a href=\"?id=" $tree[$i]['id'] . "\" "; if($limits['tag_css_class_'.$level] != "") { $html_link .= " class=\""$limits['tag_css_class_'.$level] . "\""; }  $html_link .=  " >" $tree[$i]['menu_name'] . "</a>";

        
        


          if(
    $layers['enclose_tag_level_'.$level] != "") {
                                               
              
    $html_li .= str_replace('|'$html_link$layers['enclose_tag_level_'.$level]);

          } else {
              
              
    $html_li .= $html_link;   
          }



          if(
    $tree[$i]['level'] == $tree[$i+1]['level'] OR $tree[$i]['level'] > $tree[$i+1]['level']) {

            
    $html_li .= "</li>";
            
            if(
    $tree[$i]['level'] == $tree[$i+1]['level'] OR $tree[$i]['level'] > $tree[$i+1]['level'])
            
    $html_ul .= $html_li;
          
          }
          
          
          

          if(
    $tree[$i]['level'] < $tree[$i+1]['level']) {               
            
            
    $html_ul .= $html_li;                                
                  

              

             
    $html_ul .= "<ul"; if($limits['ul_css_class_'.$level] != "") { $html_ul .= " class=\""$limits['ul_css_class_'.$level] . "\""; }  $html_ul .=  ">";

             
            
            
            


                } else if (
    $tree[$i]['level'] > $tree[$i+1]['level']) {

            
    $diff $tree[$i]['level'] - $tree[$i+1]['level'];

                    
    $html_ul .= str_repeat("</ul></li>"$diff) . "";
            
             
        
            
          }

            
            
            
               
            
          
          
          
    $active ""
                     
          
    $html .= $html_ul;
          
          
    $html_ul "";

            } 
            
          


            
    $html .= "</ul>";



        return 
    $html;

        }

    ?>


    Über jeden Tipp bin ich sehr dankbar
    Zuletzt geändert von sanktusm; 30.04.2019, 12:15.

    Kommentar


    • #3
      Vielleicht mal ein vollständiges Beispiel mit Testdaten hier posten, das ist für Aussenstehende doch sehr müselig das selber zu machen, wenn du bei dir die Daten doch schon vorliegen hast. Nimm einfach var_export().

      Ist natürlich auch schlecht, dass du da direkt irgendwelches SQL drin hast und das Code einer größeren Klasse zu sein scheint, das ist für andere Leute natürlich nicht testbar. Also würde ich dazu raten das erstmal so umzuschreiben, dass du die Daten einfach als Array reinreichst.
      Zuletzt geändert von chorn; 30.04.2019, 14:11.

      Kommentar


      • #4
        Hier die Arrays

        PHP-Code:
          array (
          
        => 
          array (
            
        'id' => '4',
            
        'menu_link' => NULL,
            
        'menu_name' => 'Home',
            
        'menu_area' => '1',
            
        'level' => '0',
            
        'lft' => '4',
            
        'rgt' => '5',
            
        'children' => '0',
          ),
          
        => 
          array (
            
        'id' => '168',
            
        'menu_link' => NULL,
            
        'menu_name' => 'Produkte',
            
        'menu_area' => '1',
            
        'level' => '0',
            
        'lft' => '6',
            
        'rgt' => '63',
            
        'children' => '28',
          ),
          
        => 
          array (
            
        'id' => '133',
            
        'menu_link' => NULL,
            
        'menu_name' => 'Alu- und Stahlprodukte ',
            
        'menu_area' => '1',
            
        'level' => '1',
            
        'lft' => '7',
            
        'rgt' => '16',
            
        'children' => '4',
          ),
          
        => 
          array (
            
        'id' => '34',
            
        'menu_link' => NULL,
            
        'menu_name' => 'Trapezbleche',
            
        'menu_area' => '1',
            
        'level' => '2',
            
        'lft' => '8',
            
        'rgt' => '9',
            
        'children' => '0',
          ),
          
        => 
          array (
            
        'id' => '164',
            
        'menu_link' => NULL,
            
        'menu_name' => 'Wellbleche',
            
        'menu_area' => '1',
            
        'level' => '2',
            
        'lft' => '10',
            
        'rgt' => '11',
            
        'children' => '0',
          ),
          
        => 
          array (
            
        'id' => '45',
            
        'menu_link' => NULL,
            
        'menu_name' => 'Ziegelbleche',
            
        'menu_area' => '1',
            
        'level' => '2',
            
        'lft' => '12',
            
        'rgt' => '13',
            
        'children' => '0',
          ),
          
        => 
          array (
            
        'id' => '7',
            
        'menu_link' => NULL,
            
        'menu_name' => 'Befestigung und Abdichtung',
            
        'menu_area' => '1',
            
        'level' => '1',
            
        'lft' => '17',
            
        'rgt' => '28',
            
        'children' => '5',
          ),
          
        => 
          array (
            
        'id' => '44',
            
        'menu_link' => NULL,
            
        'menu_name' => 'Schrauben',
            
        'menu_area' => '1',
            
        'level' => '2',
            
        'lft' => '18',
            
        'rgt' => '19',
            
        'children' => '0',
          ),
          
        => 
          array (
            
        'id' => '43',
            
        'menu_link' => NULL,
            
        'menu_name' => 'Kalotten',
            
        'menu_area' => '1',
            
        'level' => '2',
            
        'lft' => '20',
            
        'rgt' => '21',
            
        'children' => '0',
          ),
          
        => 
          array (
            
        'id' => '70',
            
        'menu_link' => NULL,
            
        'menu_name' => 'Profilfüller',
            
        'menu_area' => '1',
            
        'level' => '2',
            
        'lft' => '22',
            
        'rgt' => '23',
            
        'children' => '0',
          ),
          
        10 => 
          array (
            
        'id' => '69',
            
        'menu_link' => NULL,
            
        'menu_name' => 'Bohrer',
            
        'menu_area' => '1',
            
        'level' => '2',
            
        'lft' => '26',
            
        'rgt' => '27',
            
        'children' => '0',
          ),
          
        11 => 
          array (
            
        'id' => '9',
            
        'menu_link' => NULL,
            
        'menu_name' => 'Dachzubehör für Verleger',
            
        'menu_area' => '1',
            
        'level' => '1',
            
        'lft' => '29',
            
        'rgt' => '42',
            
        'children' => '6',
          ),
          
        12 => 
          array (
            
        'id' => '40',
            
        'menu_link' => NULL,
            
        'menu_name' => 'Unterdeck-Unterspannbahn und Zubehör',
            
        'menu_area' => '1',
            
        'level' => '2',
            
        'lft' => '30',
            
        'rgt' => '31',
            
        'children' => '0',
          ),
          
        13 => 
          array (
            
        'id' => '111',
            
        'menu_link' => NULL,
            
        'menu_name' => 'Dachentwässerungssysteme',
            
        'menu_area' => '1',
            
        'level' => '2',
            
        'lft' => '32',
            
        'rgt' => '33',
            
        'children' => '0',
          ),
          
        14 => 
          array (
            
        'id' => '112',
            
        'menu_link' => NULL,
            
        'menu_name' => 'Schneefangsysteme und Zubehör',
            
        'menu_area' => '1',
            
        'level' => '2',
            
        'lft' => '34',
            
        'rgt' => '35',
            
        'children' => '0',
          ),
          
        15 => 
          array (
            
        'id' => '116',
            
        'menu_link' => NULL,
            
        'menu_name' => 'Schneefangsysteme',
            
        'menu_area' => '1',
            
        'level' => '2',
            
        'lft' => '40',
            
        'rgt' => '41',
            
        'children' => '0',
          ),
          
        16 => 
          array (
            
        'id' => '169',
            
        'menu_link' => NULL,
            
        'menu_name' => 'Anwendungen',
            
        'menu_area' => '1',
            
        'level' => '0',
            
        'lft' => '64',
            
        'rgt' => '75',
            
        'children' => '5',
          ),
          
        17 => 
          array (
            
        'id' => '170',
            
        'menu_link' => NULL,
            
        'menu_name' => 'Anwendungen Alu- und Stahlrodukte',
            
        'menu_area' => '1',
            
        'level' => '1',
            
        'lft' => '65',
            
        'rgt' => '74',
            
        'children' => '4',
          ),
          
        18 => 
          array (
            
        'id' => '171',
            
        'menu_link' => NULL,
            
        'menu_name' => 'Carport mit Trapezblech',
            
        'menu_area' => '1',
            
        'level' => '2',
            
        'lft' => '66',
            
        'rgt' => '67',
            
        'children' => '0',
          ),
          
        19 => 
          array (
            
        'id' => '172',
            
        'menu_link' => NULL,
            
        'menu_name' => 'Gartenhaus- Schuppendach mit Aluminium Trapezblech',
            
        'menu_area' => '1',
            
        'level' => '2',
            
        'lft' => '68',
            
        'rgt' => '69',
            
        'children' => '0',
          ),
          
        20 => 
          array (
            
        'id' => '173',
            
        'menu_link' => NULL,
            
        'menu_name' => 'Gartenhaus- Schuppendach mit Ziegelblech',
            
        'menu_area' => '1',
            
        'level' => '2',
            
        'lft' => '70',
            
        'rgt' => '71',
            
        'children' => '0',
          ),
          
        21 => 
          array (
            
        'id' => '174',
            
        'menu_link' => NULL,
            
        'menu_name' => 'Dachsysteme für das Wohnhaus',
            
        'menu_area' => '1',
            
        'level' => '2',
            
        'lft' => '72',
            
        'rgt' => '73',
            
        'children' => '0',
          ),
          
        22 => 
          array (
            
        'id' => '166',
            
        'menu_link' => NULL,
            
        'menu_name' => 'Unser Dachkonfigurator',
            
        'menu_area' => '1',
            
        'level' => '0',
            
        'lft' => '76',
            
        'rgt' => '77',
            
        'children' => '0',
          ),
          
        23 => 
          array (
            
        'id' => '152',
            
        'menu_link' => NULL,
            
        'menu_name' => 'Kundenforum',
            
        'menu_area' => '1',
            
        'level' => '0',
            
        'lft' => '78',
            
        'rgt' => '79',
            
        'children' => '0',
          ),

        Kommentar


        • #5
          Ok... und was ist mit den anderen Sachen? Hier so halbe Codefetzen posten bringt dich bei den meisten Leuten hier halt nicht weiter. Du musst schon mal überlegen, dass die Leute hier in ihrer Freizeit wenig Bock haben noch zusätzlich Entiwcklungsaufwand zu betreiben um ein geeignetes, nachvollziehbares Beispiel zu erhalten, da musst du schon selber eine ansprechende Vorlage liefern.

          Kommentar


          • #6
            Hier die gesammte Klasse: ich bin schon ein wenig weiter gekommen

            PHP-Code:

            <?php

             
            class sections extends header {



              public function 
            getTree($menu_area_id$language_id) {

                
            $sql "SELECT n.id, n.menu_link,  n.menu_name, n.menu_area, COUNT(*)-1 AS level, n.lft, n.rgt, ROUND ((n.rgt - n.lft - 1) / 2) AS children FROM ".self::PREFIX."sections AS n, ".self::PREFIX."sections AS p WHERE (n.lft BETWEEN p.lft AND p.rgt)
                AND (n.menu_area = '
            $menu_area_id' AND n.language_id = '".$language_id."'
                AND  p.menu_area = '
            $menu_area_id' AND p.language_id = '".$language_id."')
                  AND ((n.access_for = '#all' AND p.access_for = '#all')
                  OR   (n.access_for IN ("
            .$this -> front_users($_SESSION['front_user_id']).") AND p.access_for IN (".$this -> front_users($_SESSION['front_user_id']).")))
                   AND ((n.public_status = '2' AND p.public_status = '2')
                   OR   (n.public_status = '"
            .$_ENV['open_preview']."') AND (p.public_status = '".$_ENV['open_preview']."'))

                GROUP BY n.lft ORDER BY n.lft;"
            ;
                    
            $result $this->db->query($sql);

                 if(
            $this->db->error != "")
                 die(
            $this->db->error."_getTree");

                
            $tree = array();
                    
            $i 0;
                    while (
            $row $result->fetch_assoc()) {

                        
            $tree[$i] = $row;
                        
            $i++;

                    }
                    return 
            $tree;
                }




                public function 
            treeAsHtml($id$menu_area_id$language_id$css_id$css_class$layers) {

                
            $tree $this->getTree($menu_area_id$language_id);

                
            $level = Array();

                
            $html_out_layer "";

                    
            $html "<ul";

                if(
            $css_id != "")
                
            $html .= " id=\"".$css_id."\" ";

                if(
            $css_class != "")
                
            $html .= " class=\"".$css_class."\" ";

                
            $html .= ">";

                
            $result $this -> selectSimpleSql('navigation''id'$menu_area_id'''''id''ASC');

                
            $level_data $result->fetch_assoc();

                
            $limits unserialize($level_data['limits']);

                
            $close "";



                
            $collect_after "";

                
            $layer_after "";

                
            $layer "";

                
            $html_out "";

                
            $unblock_ul true;

                
            $collect_start_after false;

                
            $jump true;

                    for (
            $i=0$i<count($tree); $i++) {


                  
            $level $tree[$i]['level'] + 1;

                  if(
            $tree[$i]['id'] == $_SESSION['id'])
                  
            $active "active";
                  else
                  
            $active "";





                        
            $html_li "<li ";  if($limits['li_css_class_'.$level] != "") { $html_li .= "class=\" "$limits['li_css_class_'.$level] . " ".$active."\""; }  $html_li .= ">";


                  
            $html_link "<a href=\"?id=" $tree[$i]['id'] . "\" "; if($limits['tag_css_class_'.$level] != "") { $html_link .= " class=\""$limits['tag_css_class_'.$level] . "\""; }  $html_link .=  " >" $tree[$i]['menu_name'] . "</a>";




                  if(
            $layers['enclose_tag_level_'.$level] != "") {

                      
            $html_li .= str_replace('|'$html_link$layers['enclose_tag_level_'.$level]);

                  } else {

                      
            $html_li .= $html_link;
                  }



                  if(
            $tree[$i]['level'] == $tree[$i+1]['level'] OR $tree[$i]['level'] > $tree[$i+1]['level']) {

                    
            $html_li .= "</li>";


                    
            $html_ul .= $html_li;

                  }

                  if(
            $layers['html_container_'.$level] != "" AND $layers['enclose_before_after_tag_'.$level] == 1)  {

                  
            $collect_start_before true;

                  
            $layer_before $layers['html_container_'.$level];

                  
            $unblock_ul false;

                  }


                  if(
            $tree[$i]['level'] < $tree[$i+1]['level']) {

                    
            $html_ul .= $html_li;




                     
            $html_ul .= "<ul"; if($limits['ul_css_class_'.$level] != "") { $html_ul .= " class=\""$limits['ul_css_class_'.$level] . "\""; }  $html_ul .=  ">";







                        } else if (
            $tree[$i]['level'] > $tree[$i+1]['level']) {

                    
            $diff $tree[$i]['level'] - $tree[$i+1]['level'];

                            
            $html_close str_repeat("</ul></li>"$diff) . "";

                    switch(
            $diff) {


                    case 
            1:

                    
            $collect_start_before == true;

                    
            $html_ul .= $html_close;

                    break;

                    case 
            2:

                    
            $collect_after .= $html_ul;

                    
            $collect_after .= "</ul></li>";

                    
            $html_out .= str_replace('|'$collect_after$layer_after);

                    
            $html_out .= "</ul></li>";

                    
            $collect_start_after false;

                    
            $unblock_ul false;

                    break;

                    default:

                    
            $collect_start_before == false;

                    
            $html_ul .= $html_close;

                  }

                  }





                  if(
            $collect_start_after === true) {

                    if(
            $tree[$i]['level'] > $tree[$i+1]['level']) {


                    
            $collect_before str_replace('|'$collect_after$layer_before);

                    
            $collect_after "";

                    
            $collect_after .= $collect_before;

                    
            $collect_before "";

                  } else {


                     
            $collect_before "";

                     
            $collect_start_before == true;

                     
            $collect_after .= $html_ul;

                   }



                  
            $unblock_ul false;

                  }





                  if(
            $layers['html_container_'.$level] != "" AND $layers['enclose_before_after_tag_'.$level] == AND $tree[$i]['children'] > 0) {

                  
            $collect_after "";

                  
            $collect_start_before == false;

                  
            $layer_after $layers['html_container_'.$level];

                  
            $collect_start_after true;



                  }




                  
            $active "";

                  if(
            $unblock_ul === true) {

                  
            $html_out .= $html_ul;

                  
            $html_ul .= $html_close;

                  }

                  
            $html_ul "";

                  
            $unblock_ul true;

                  }


                  
            $html .= $html_out;

                    
            $html .= "</ul>";



                return 
            $html;

                }




              }
            ?>
            Das Ergebniss ist leider immer noch dieses: Die Menupunkte werden unvollständig ausgeben und die Layer <div class="col-sm-3 col-xs-6"> stehen am Anfang doppelt und im letzten Block gar nicht. Ich arbeit jetzt schon eine Woche daran. Ich brauche Eure Hilfe

            Die $layers sehen so aus:

            Array
            (
            [level_1] => 10
            [ul_css_class_1] =>
            [li_css_class_1] => menu-el
            [tag_layer_1] => a
            [tag_css_class_1] =>
            [enclose_tag_level_1] =>
            [enclose_before_after_tag_1] => 2
            [html_container_1] => <div class="mdf_sub_wrap mdf_flip row lists">|</div>
            [level_2] => 10
            [ul_css_class_2] => mdf_child_menu
            [li_css_class_2] =>
            [tag_layer_2] => h3
            [tag_css_class_2] =>
            [enclose_tag_level_2] => <div class="cl-title">|</div>
            [enclose_before_after_tag_2] => 1
            [html_container_2] => <div class="col-sm-3 col-xs-6">|</div>
            )

            PHP-Code:


            <div id="sticky-navbar" class="container-fluid full-navbar">
              <
            nav id="mdf_menu" class="navbar navbar-default"  role="navigation">

                  <
            div id="navbar" class="collapse navbar-collapse">

                    <
            ul class="nav navbar-nav mr-auto" >
                        <
            li class=" menu-el active"><a href="" >Home</a></li>
                        <
            li class=" menu-el "><a>Produkte</a>
                            <
            ul><div class="mdf_sub_wrap mdf_flip row lists">
                                     <
            div class="col-sm-3 col-xs-6"><div class="col-sm-3 col-xs-6">
                                          <
            li ><div class="cl-title"><h3>Aluund Stahlprodukte </h3></div>
                                              <
            ul class="mdf_child_menu">
                                                  <
            li ><a href="alu-stahl-trapezblech" >Trapezbleche</a></li>
                                                  <
            li ><a href="wellblech-guenstig" >Wellbleche</a></li>
                                                </
            div>
                                                <
            li ><div class="cl-title"><a href="befestigung-dach" >Befestigung und Abdichtung</a></div>
                                              <
            ul class="mdf_child_menu">
                                                  <
            li ><a href="schrauben-dachplatten" >Schrauben</a></li>
                                                  <
            li ><a href="kalotten-trapezblech" >Kalotten</a></li>
                                                  <
            li ><a href="profilfueller-dach" >Profilfüller</a></li></div>
                                             <
            li ><div class="cl-title"><a href="dachzubehoer-online-shop" >Dachzubehör für Verleger</a></div>
                                                <
            ul class="mdf_child_menu">
                                                   <
            li ><a href="unterdeck-unterspannbahn-und-zubehoer" >Unterdeck-Unterspannbahn und Zubehör</a></li>
                                                   <
            li ><a href="dachentwaesserungssysteme" >Dachentwässerungssysteme</a></li>
                                                   <
            li ><a href="schneefangsysteme-und-zubehoer" >Schneefangsysteme und Zubehör</a></li>
                                                </
            ul>
                                            </
            li>
                                            </
            div>
                                            </
            ul></li>
                                            <
            li class=" menu-el "><a>Anwendungen</a>
                                                 <
            ul><div class="mdf_sub_wrap mdf_flip row lists">
                                                     <
            li ><div class="cl-title"><h3>Anwendungen Aluund Stahlrodukte</h3></div>
                                                     <
            ul class="mdf_child_menu">
                                                         <
            li ><a>Carport mit Trapezblech</a></li>
                                                         <
            li ><a>GartenhausSchuppendach mit Aluminium Trapezblech</a></li>
                                                         <
            li ><a>GartenhausSchuppendach mit Ziegelblech</a></li>
                                                         <
            li ><a>Dachsysteme für das Wohnhaus</a></li>
                                                      </
            ul>
                                              </
            li></div>
                                              </
            ul></li>
                                              <
            li class=" menu-el "><a href="dachkonfigurator" >Unser Dachkonfigurator</a></li>
                                              <
            li class=" menu-el "><a href="montage-dachplatten-unser-forum" >Kundenforum</a></li></ul>

                        

                  </
            div>


                </
            nav>
              </
            div
            Zuletzt geändert von sanktusm; 03.05.2019, 17:04.

            Kommentar


            • #7
              Ich brauche Eure Hilfe
              ja... und? Warum tust du dann nix dafür? Vielleicht denkst du mal über deine Einstellung nach hier dein Zeug hinzurotzen und von anderen Leuten zu erwarten deinen ganz speziellen Fall noch mal nachzuprogrammieren weil du wesentlich Codeteile unterschlägst und deine Abhängigkeiten nicht auflöst. Versetz dich doch mal in jemanden der das lokal nachstellen will und schon mal bereit wäre seine Freizeit für dein Debugging zu opfern und dann noch Libs nachbauen muss. Oder lass es halt, ich bin so jedenfalls raus.

              Kommentar

              Lädt...
              X