php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 22-04-2019, 15:11
sanktusm
 Registrierter Benutzer
Links : Onlinestatus : sanktusm ist offline
Registriert seit: Aug 2005
Beiträge: 651
sanktusm zeigte ein beschämendes Verhalten in der Vergangenheit
Standard 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;

    } 

Geändert von sanktusm (22-04-2019 um 15:14 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 30-04-2019, 11:58
sanktusm
 Registrierter Benutzer
Links : Onlinestatus : sanktusm ist offline
Registriert seit: Aug 2005
Beiträge: 651
sanktusm zeigte ein beschämendes Verhalten in der Vergangenheit
Standard 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

Geändert von sanktusm (30-04-2019 um 12:15 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt 30-04-2019, 14:08
chorn
 Registrierter Benutzer
Links : Onlinestatus : chorn ist offline
Registriert seit: Nov 2011
Beiträge: 162
chorn befindet sich auf einem aufstrebenden Ast
Standard

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.

Geändert von chorn (30-04-2019 um 14:11 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 30-04-2019, 14:36
sanktusm
 Registrierter Benutzer
Links : Onlinestatus : sanktusm ist offline
Registriert seit: Aug 2005
Beiträge: 651
sanktusm zeigte ein beschämendes Verhalten in der Vergangenheit
Standard 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',
  ),

Mit Zitat antworten
  #5 (permalink)  
Alt 30-04-2019, 15:38
chorn
 Registrierter Benutzer
Links : Onlinestatus : chorn ist offline
Registriert seit: Nov 2011
Beiträge: 162
chorn befindet sich auf einem aufstrebenden Ast
Standard

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.
Mit Zitat antworten
  #6 (permalink)  
Alt 03-05-2019, 16:59
sanktusm
 Registrierter Benutzer
Links : Onlinestatus : sanktusm ist offline
Registriert seit: Aug 2005
Beiträge: 651
sanktusm zeigte ein beschämendes Verhalten in der Vergangenheit
Standard 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

Geändert von sanktusm (03-05-2019 um 17:04 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 03-05-2019, 18:00
chorn
 Registrierter Benutzer
Links : Onlinestatus : chorn ist offline
Registriert seit: Nov 2011
Beiträge: 162
chorn befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
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.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Layer Hintergrund immer kleiner als Layer Inhalt in-power HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 2 12-02-2015 05:30
Sei-mein-bester-freund zu verkaufen! freunde-script Archiv / Trash 2 05-09-2007 10:17
[Script] Script à la sei-mein-freund.de sukram Jobgesuche 18 18-04-2007 22:29
Nested Sets timepoint5 SQL / Datenbanken 1 04-08-2006 08:16
Wir unterstützen Sei bei Ihrem Webprojekt! semf Jobgesuche 0 24-11-2005 13:27

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Newsmanager

Der Newsmanager ist ein Newssystem und Newsletter in einem. Mit WYSIWYG Editor und E-Mail import aus einer bestehenden MySql Datenbank sowie dynamische Kategorien / Themen Filter.

11.09.2019 Stephan_1972 | Kategorie: PHP/ News
Modelmanager

Der Modelmanager ist ein Webtool für Fotografen, kann als komplette Homepage oder als Webtool installiert werden.

11.09.2019 Stephan_1972 | Kategorie: PHP/ Webservice
ContentLion - Open Source CMS ansehen ContentLion - Open Source CMS

ContentLion ist ein in PHP geschriebenes CMS, bei dem man Seiten, Einstellungen usw. in Ordnern lagern kann

22.08.2019 stevieswebsite2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:26 Uhr.