Hauptnavigation "end" Template wird nicht angezeig

Gesperrt
Hagbard
Beiträge: 66
Registriert: Sa 18. Okt 2003, 23:52
Kontaktdaten:

Hauptnavigation "end" Template wird nicht angezeig

Beitrag von Hagbard »

Ich nutze das Hauptnavigations-Modul welches mit der Installation von Contenido verfügbar ist.

Mein Problem ist, dass das mnavi_end.html Template nicht angezeigt wird. Nur in der dritten (und letzten) Ebene meiner Seite.

Auch die zweite Ebene spinnt. Nimmt er wirklich nur die LETZTE Ebene?! Ich hätte gedacht, dass das mnavi_end.html Template immer am Ende der jeweiligen Ebene angezeigt wird um visuelle "Klammern" zu erstellen...

Nutze eine leicht abgewandelte (gesplittete Version):

Input: leer

Output:

Code: Alles auswählen

<?php

/* 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
        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"),
                                                  "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', 'UL_STAGE', '3');
     $tpl->set('d', 'LI_STAGE', '2');
     $tpl->set('d', 'TARGET', $data['target']);
     $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat']));
     $tpl->next();
     if( $idcat == $data['idcat'] && empty($data['sub']) ) {               
        $tpl->generate('templates/secondnavi_on.html', 0, 0);                     # AKTIVER PUNKT HAT KEINE SUBCATS
     } elseif( $idcat == $data['idcat'] && !empty($data['sub']) ) {
        $tpl->generate('templates/secondnavi_on_open.html', 0, 0);                # AKTIVER PUNKT HAT SUBCATS
       } elseif( $idcat != $data['idcat'] && is_array($data['sub']) && catIsChildOf($sel_idcat, $data['idcat']) ) {
          $tpl->generate('templates/secondnavi_off_open.html', 0, 0);               # PASSIVER PUNKT HAT SUBCATS
         } else {
            $tpl->generate('templates/secondnavi_off.html', 0, 0);                    # PASSIVER PUNKT HAT KEINE SUBCATS
           }

           if( is_array( $second_subdata ) ) {
              $last_cat = end( $second_subdata );
            if( $data['idcat'] == $last_cat['idcat'] ) {
               $tpl->generate('templates/secondnavi_end.html', 0, 0);
            } // end if
           } // end if
           $third_subdata = $data['sub'];

     /* 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', 'UL_STAGE', '4');
        $tpl->set('d', 'LI_STAGE', '3');
        $tpl->set('d', 'TARGET', $data['target']);
        $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat']));
        $tpl->next();
        if( $idcat == $data['idcat'] && empty($data['sub'])) {
           $tpl->generate('templates/thirdnavi_on.html', 0, 0);
          } elseif( $idcat == $data['idcat'] && !empty($data['sub']) ) {
             $tpl->generate('templates/thirdnavi_on_open.html', 0, 0);
            } elseif( $idcat != $data['idcat'] && is_array($data['sub']) && catIsChildOf($sel_idcat, $data['idcat']) ) {
               $tpl->generate('templates/thirdnavi_off_open.html', 0, 0);
              } else {
                 $tpl->generate('templates/thirdnavi_off.html', 0, 0);
                }

                if( is_array($third_subdata) ) {
                   $last_cat = end( $third_subdata );
                   if( $data['idcat'] == $last_cat['idcat'] ) {
                      $tpl->generate('templates/thirdnavi_end.html', 0, 0);
                 } // end if
                } // end if
                $forth_subdata = $data['sub'];

        /* 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', 'UL_STAGE', '5');
           $tpl->set('d', 'LI_STAGE', '4');
           $tpl->set('d', 'TARGET', $data['target']);
           $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat']));
           $tpl->next();
           if( $idcat == $data['idcat'] && empty($data['sub']) ) {
              $tpl->generate('templates/mnavi_on.html', 0, 0);
           } elseif( $idcat == $data['idcat'] && !empty($data['sub']) ) {
              $tpl->generate('templates/mnavi_on_open.html', 0, 0);
           } elseif( $idcat != $data['idcat'] && is_array($data['sub']) && catIsChildOf($sel_idcat, $data['idcat']) ) {
              $tpl->generate('templates/mnavi_off_open.html', 0, 0);
           } else {
              $tpl->generate('templates/mnavi_off.html', 0, 0);
           }

           if( is_array($forth_subdata) ) {
              $last_cat = end( $forth_subdata );
            if( $data['idcat'] == $last_cat['idcat'] ) {
               $tpl->generate('templates/mnavi_end.html', 0, 0);
            } // end if
           } // end if
           $fith_subdata = $data['sub'];

           /* 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', 'UL_STAGE', '6');
              $tpl->set('d', 'LI_STAGE', '5');
              $tpl->set('d', 'TARGET', $data['target']);
              $tpl->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data['idcat']));
              $tpl->next();
              if( $idcat == $data['idcat'] && empty($data['sub']) ) {
                 $tpl->generate('templates/mnavi_on.html', 0, 0);
              } else {
                 $tpl->generate('templates/mnavi_off.html', 0, 0);
              }

              if( is_array($fith_subdata) ) {
                 $last_cat = end($fith_subdata);
                 if( $data['idcat'] == $last_cat['idcat'] ) {
                    $tpl->generate('templates/mnavi_end.html', 0, 0);
                 } // end if
              } // end if

             } // end if
            } // end foreach
           } // end if
          } // end if
         } // end foreach
        } // end if
       } // end if
      } // end foreach
     } // end if
    } // end if
   } // end foreach
  } // end if
 } // end if
} // end foreach

/* Read out buffer */
$html = ob_get_contents();

/* Clean buffer */
ob_end_clean();

/* Output buffer-contents */
/* Output buffer-contents */
 echo $html;

?>
Jemand ne Idee, wie ich das "Ende" anzeigen lassen kann?
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

hmm... man kann das nicht wirklich nachvollziehen...

Code: Alles auswählen

           if( is_array( $second_subdata ) ) { 
              $last_cat = end( $second_subdata ); 
            if( $data['idcat'] == $last_cat['idcat'] ) { 
               $tpl->generate('templates/secondnavi_end.html', 0, 0); 
            } // end if 
           } // end if
soll bitte was genau bewirken ?

vielleicht liegt es ja nur daran, dass deine templates keinen inhalt haben...
*** make your own tools (wishlist :: thx)
Gesperrt