Code: Alles auswählen
In Kombination mit fummeln im Modul solltest Du dann dahinterkommen können.Code: Alles auswählen
In Kombination mit fummeln im Modul solltest Du dann dahinterkommen können.Hi,raoulkimba hat geschrieben:Warning: Invalid argument supplied for foreach() in /serverpfad/cms/front_content.php(792) : eval()'d code on line 827
Code: Alles auswählen
105: $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat'])); //.'&idart='.$data['idart']));Code: Alles auswählen
129: $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat'])); //.'&idart='.$data['idart']));
147: $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat'])); //.'&idart='.$data['idart'])); 
164: $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat'])); //.'&idart='.$data['idart'])); 
Code: Alles auswählen
$thirdLevel = array();  //inserted
/* -mvfbof- fetch third level array -> $thirdLevel */ 
Code: Alles auswählen
<li class="open">Link
  <ul>
    <li>Link</li>
    <li>Link</li>
  </ul>
</li>Code: Alles auswählen
<li class="open">Link</li>
  <li>Link</li>
  <li>Link</li>Code: Alles auswählen
<?php 
/********************************************* 
* CONTENIDO MODUL - OUTPUT 
* 
* Modulname  :  Hauptnavigation 
* Author(s)  :  Jan Lengowski, Andreas Lindner, 4fb 
* Copyright  :  Contenido - four for business, Andreas Lindner 
* Created    :  12-08-2005 
* Modifier   :  Oliver Simon, simon-oliver.com 
* Modified   :  27-11-2005 
* Modifier   :  Guido Unger (mvf), 'contenido'.funjumping.de 
* Modified   :  16-01-2005 
* Changes    :  included 'startidartlang' for compatibility with stese's mr_464_org 
                modification to extract 3rd-5th level for seperat display 
**********************************************/ 
/* Include Template Class */ 
include_once($cfg["path"]["contenido"] . 'classes/class.template.php'); 
/** 
 * Array storing alle the 
 * navigation data 
 */ 
$navitems = array(); 
/* Template Instance */ 
$tpl = new Template; 
$sql = "SELECT 
            A.idcat, 
            C.name, 
          C.public, 
             C.idcatlang, 
             C.startidartlang 
        FROM 
            ".$cfg["tab"]["cat_tree"]." AS A, 
            ".$cfg["tab"]["cat"]." AS B, 
            ".$cfg["tab"]["cat_lang"]." AS C 
        WHERE 
            A.idcat     = B.idcat   AND 
            B.idcat     = C.idcat   AND 
            B.idclient  = '$client' AND 
            C.idlang    = '$lang'   AND 
            C.visible   = '1'       AND 
            B.parentid  = '$sel_idcat' 
        ORDER BY 
            A.idtree"; 
$db->query($sql); 
while ( $db->next_record() ) { 
        /* Check for external redirects... */ 
        $sql = "SELECT 
                    a.external_redirect AS ext, 
                    a.idartlang AS idartlang 
                FROM 
                    ".$cfg["tab"]["art_lang"]." AS a, 
                    ".$cfg["tab"]["cat_art"]." AS b, 
                    ".$cfg["tab"]["cat"]." AS c 
                WHERE 
                    b.idcat     = '".$db->f("idcat")."' AND 
                    c.idclient  = '".$client."' AND 
                    c.idcat     = b.idcat AND 
                    a.idart     = b.idart AND 
                    a.idlang    = '".$lang."'"; 
        $db2->query($sql); 
        #$db2->next_record(); 
      $flag = false; 
      while ($db2->next_record()&&!$flag) { 
           if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang)) 
           { 
            $flag = true; 
               $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank'; 
      
               $navitems[$db->f("idcat")] = array("idcat"  => $db->f("idcat"), 
                                                  "name"   => $db->f("name"), 
                                                  "idart"      => $db->f("startidartlang"), 
                                                  "public" => $db->f("public"), 
                                            "idcatlang" => $db->f("idcatlang"), 
                                                  "target" => $target); 
           } 
      } 
} 
/* Create Navigation Array */ 
if(($sel_idcat=='')||($sel_idcat=='0')){ 
    $cApiClient = new cApiClient($client); 
    $sel_idcat = $cApiClient->getProperty('navigation', 'idcat_homepage'); 
} 
nav($sel_idcat); 
$thirdLevel = array();  //inserted 
/* -mvfbof- fetch third level array -> $thirdLevel */ 
foreach ($navitems as $key => $data) { 
   if (checkCatPermission($data['idcatlang'],$data['public'])) { 
                  if (is_array($data['sub'])) { 
                        $thirdLevel = $data['sub']; 
                    } 
    } // end if 
} // end foreach 
/* -mvfeof- fetch third level */ 
/* Start Output buffer */ 
ob_start(); 
foreach ($thirdLevel as $key => $data) { // -mvf $thirdLevel statt $navitems 
   if (checkCatPermission($data['idcatlang'],$data['public'])) { 
       /* 2. Navigation level */ 
       if (is_array($data['sub'])) {  // -mvf überbrückt die 2. ebene 
          /* 3. Navigation level */ 
                  if (is_array($data['sub'])) { 
                      foreach ($data['sub'] as $key => $data) { 
                     if (checkCatPermission($data['idcatlang'],$data['public'])) { 
                             $tpl->reset(); 
                             $tpl->set('d', 'NAME',  $data['name']); 
                             $tpl->set('d', 'TARGET', $data['target']); 
                             $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat'])); //.'&idart='.$data['idart']));
                             $tpl->next(); 
       
                             if ($idcat == $data['idcat']) { 
                                 $tpl->generate('');          // leer!
                        }elseif(is_array($data['sub'])){ 
                             $tpl->generate('');              // leer!
                             } else { 
                                 $tpl->generate('');          // leer!
                             } 
                             /* 4. Navigation level */ 
                           if (is_array($data['sub'])) { 
                               foreach ($data['sub'] as $key => $data) { 
                              if (checkCatPermission($data['idcatlang'],$data['public'])) { 
                                      $tpl->reset(); 
                                      $tpl->set('d', 'NAME',  $data['name']); 
                                      $tpl->set('d', 'TARGET', $data['target']); 
                                      $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat'])); //.'&idart='.$data['idart'])); 
                                      $tpl->next(); 
                                      if ($idcat == $data['idcat']) { 
                                          $tpl->generate('templates/navfourth_on.html'); 
                                 }elseif(is_array($data['sub'])){ 
                                      $tpl->generate('templates/navfourth_open.html'); 
                                      } else { 
                                          $tpl->generate('templates/navfourth_off.html'); 
                                      } 
                                      /* 5. Navigation level */ 
                                    if (is_array($data['sub'])) { 
                                        foreach ($data['sub'] as $key => $data) { 
                                       if (checkCatPermission($data['idcatlang'],$data['public'])) { 
                                               $tpl->reset(); 
                                               $tpl->set('d', 'NAME',  $data['name']); 
                                               $tpl->set('d', 'TARGET', $data['target']); 
                                               $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat'])); //.'&idart='.$data['idart'])); 
                                               $tpl->next(); 
                                               if ($idcat == $data['idcat']) { 
                                                   $tpl->generate('');            // leer!
                                               } else { 
                                                   $tpl->generate('');            // leer!
                                               } 
                                          } // end if 
                                        } // end foreach 
                                    } // end if 
                                 } // end if 
                               } // end foreach 
                           } // end if 
                        } // end if 
                      } // end foreach 
                  } // end if 
               } // end if 
    } // end if 
} // end foreach 
/* Read out buffer */ 
$html = ob_get_contents(); 
/* Clean buffer */ 
ob_end_clean(); 
/* Output buffer-contents */ 
echo $html; 
?>
Code: Alles auswählen
<ul></ul>Code: Alles auswählen
<?php
/********************************************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname     :     Hauptnavigation
* Author(s)   :     Jan Lengowski, Andreas Lindner, 4fb
* Copyright   :     Contenido - four for business, Andreas Lindner
* Created     :     12.08.2005
* Modifier   :   Oliver Simon, simon-oliver.com
* Modified   :   27.11.2005
*********************************************************************/
/* Include Template Class */
include_once($cfg["path"]["contenido"] . 'classes/class.template.php');
/**
 * Array storing alle the
 * navigation data
 */
$navitems = array();
/* Template Instance */
$tpl = new Template;
$sql = "SELECT
            A.idcat,
            C.name,
          C.public,
             C.idcatlang,
             C.startidartlang
        FROM
            ".$cfg["tab"]["cat_tree"]." AS A,
            ".$cfg["tab"]["cat"]." AS B,
            ".$cfg["tab"]["cat_lang"]." AS C
        WHERE
            A.idcat     = B.idcat   AND
            B.idcat     = C.idcat   AND
            B.idclient  = '$client' AND
            C.idlang    = '$lang'   AND
            C.visible   = '1'       AND
            B.parentid  = '$sel_idcat'
        ORDER BY
            A.idtree";
$db->query($sql);
echo "<ul>";
while ( $db->next_record() ) {
        /* Check for external redirects... */
        $sql = "SELECT
                    a.external_redirect AS ext,
                    a.idartlang AS idartlang
                FROM
                    ".$cfg["tab"]["art_lang"]." AS a,
                    ".$cfg["tab"]["cat_art"]." AS b,
                    ".$cfg["tab"]["cat"]." AS c
                WHERE
                    b.idcat     = '".$db->f("idcat")."' AND
                    c.idclient  = '".$client."' AND
                    c.idcat     = b.idcat AND
                    a.idart     = b.idart AND
                    a.idlang    = '".$lang."'";
        $db2->query($sql);
        #$db2->next_record();
      $flag = false;
      while ($db2->next_record()&&!$flag) {
           if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
           {
            $flag = true;
               $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
     
               $navitems[$db->f("idcat")] = array("idcat"  => $db->f("idcat"),
                                                  "name"   => $db->f("name"),
                                                  "idart"      => $db->f("startidartlang"),
                                                  "public" => $db->f("public"),
                                            "idcatlang" => $db->f("idcatlang"),
                                                  "target" => $target);
           }
      }
}
/* Create Navigation Array */
if(($sel_idcat=='')||($sel_idcat=='0')){
    $cApiClient = new cApiClient($client);
    $sel_idcat = $cApiClient->getProperty('navigation', 'idcat_homepage');
}
nav($sel_idcat);
/* Start Output buffer */
ob_start();
foreach ($navitems as $key => $data) {
   if (checkCatPermission($data['idcatlang'],$data['public'])) {
       /* 2. Navigation level */
       if (is_array($data['sub'])) 
{
           foreach ($data['sub'] as $key => $data) {
            if (checkCatPermission($data['idcatlang'],$data['public'])) {
                  $tpl->reset();
                  $tpl->set('d', 'NAME',  $data['name']);
                  $tpl->set('d', 'TARGET', $data['target']);
                  $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat'])); //.'&idart='.$data['idart']));
                  $tpl->next();
                  if ($idcat == $data['idcat']) {
                      $tpl->generate('templates/navsecond_on.html',0,0);
               }elseif(is_array($data['sub'])){
                    $tpl->generate('templates/navsecond_open.html',0,0);
                  } else {
                      $tpl->generate('templates/navsecond_off.html',0,0);
                  }
               } // end if
           } // end foreach
          } // end if
    } // end if
} // end foreach
echo "</ul>";
/* Read out buffer */
$html = ob_get_contents();
/* Clean buffer */
ob_end_clean();
/* Output buffer-contents */
echo $html;
?>Die Teile 2 und 3 sind angepasst und liegen hier als gezipptes xml bereit:Dodger77 hat geschrieben:ich habe die <ul> und </ul> an die richtigen Stellen geschoben und die
Abfrage für die Unterkategorien etwas verändert. Vorher wurde geprüft,
ob ein Array vorliegt, nun muss dieses Array auch Elemente beinhalten.