hauptnavigation -> unterpunkte modul

Gesperrt
phatbyte
Beiträge: 95
Registriert: Mi 2. Nov 2005, 14:05
Wohnort: Austria
Kontaktdaten:

hauptnavigation -> unterpunkte modul

Beitrag von phatbyte » Mo 30. Jan 2006, 11:21

moin

irgendwie nimmt er mir das <!-- BEGIN:BLOCK --> <!-- END:BLOCK --> nicht alles was ich ausserhalb schreibe wird trotzdem geloopt?!

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', 'TARGET', $data['target']);
                  $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat']));
                  $tpl->next();
                  if ($idcat == $data['idcat']) {
                      $tpl->generate('templates/navsecond_on.html');
               }elseif(is_array($data['sub'])){
                    $tpl->generate('templates/navsecond_open.html');
                  } else {
                      $tpl->generate('templates/navsecond_off.html');
                  }

          /* 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']));
                             $tpl->next();
         
                             if ($idcat == $data['idcat']) {
                                 $tpl->generate('templates/navthird_on.html');
                        }elseif(is_array($data['sub'])){
                             $tpl->generate('templates/navthird_open.html');
                             } else {
                                 $tpl->generate('templates/navthird_off.html');
                             }

                             /* 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']));
                                      $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']));
                                               $tpl->next();
                                               if ($idcat == $data['idcat']) {
                                                   $tpl->generate('templates/navfifth_on.html');
                                               } else {
                                                   $tpl->generate('templates/navfifth_off.html');
                                               }
                                          } // 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 */
echo $html;
?>

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mo 30. Jan 2006, 13:27

das mit dem loop würde nur dann funktionieren wenn die methode

$tpl->next();

verwendet werden würde...

es wird aber jedesmal das komplette template ausgegeben
$tpl->generate('templates/navsecond_off.html');

das heisst eigentlich bringt es in dieser konstellation wenig bis gar nichts mit blocks zu arbeiten...
*** make your own tools (wishlist :: thx)

phatbyte
Beiträge: 95
Registriert: Mi 2. Nov 2005, 14:05
Wohnort: Austria
Kontaktdaten:

Beitrag von phatbyte » Mo 20. Feb 2006, 11:46

wie kann ich abfragen ob es unterpunkte gibt oder nicht?

thx!

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mo 20. Feb 2006, 11:53

so wie das oben gemacht wurde

->

Code: Alles auswählen

if (is_array($data['sub'])) {
wenn es untermenüpunkte gibt existiert dieser array...
*** make your own tools (wishlist :: thx)

Gesperrt