Seite 1 von 1

Umgestricktes Navi-Modul: leere Anzeige

Verfasst: Mo 5. Apr 2004, 15:54
von #ayshe
Hallo zusammen,

da ich verschiedene Navis brauche, habe ich mir das "Servicenavigation"-Modul leicht angepasst und dupliziert (heisst bei mir generell "Subnavi"). Ich habe nur den Output-Teil des Moduls angepasst und dort auch nur die gestalterischen Angaben im "echo". Genauer: Es soll keine Tabelle, sondern eine UL generiert werden. Jetzt wird der Bereich, wo diese Navigation erscheinen soll, aber leer angezeigt. Im generierten Sourcecode der Seite ist einfach nur eine Lücke (s.u.).

Output-Teil des Moduls:

Code: Alles auswählen

<?php

include_once($cfg["path"]["contenido"].$cfg["path"]["includes"]."functions.con.php");

$catStart = "CMS_VALUE[0]";

if ($catStart != "") {
  $catIds = conDeeperCategoriesArray($catStart);

    echo '<ul>';

  if ( is_array($catIds) ) {

    foreach($catIds as $key=>$val) {
      // Ersten Eintrag ueberspringen, weil das der Menupunkt selbst ist
      // und nicht angezeigt werden soll.
      if ($key != 0) {

        $sql = "SELECT CAT.idcat AS idcat, name FROM ".
               $cfg["tab"]["cat"]." AS CAT, ".
               $cfg["tab"]["cat_lang"]." AS CATLANG 
               WHERE CAT.idcat = ".$val."
               AND CAT.idcat = CATLANG.idcat
               AND CATLANG.idlang = '$lang'
               AND CATLANG.visible = '1'";

        $db->query($sql);

        $db2 = new DB_Contenido;
        
        while ( $db->next_record() ) {
        
           $target = "_self";
          
          /* Check for redirect and new window flag */
          $sql = "SELECT idart FROM ".$cfg["tab"]["cat_art"]." WHERE idcat='". $db->f("idcat")."' AND is_start = '1'";
          $db2->query($sql);
          if ($db2->next_record())
          {
                $cidart = $db2->f("idart");
                $sql = "SELECT external_redirect FROM ".$cfg["tab"]["art_lang"]." WHERE idart = '$cidart' AND idlang='$lang'";
                $db2->query($sql);
                if ($db2->next_record())
                {
                    $target = ( $db2->f("external_redirect") == 0 ) ? '_self' : '_blank';
                }
          }
          echo '<li>
          <a target="'.$target.'" href="front_content.php?idcat='.$db->f("idcat").'">'.$db->f("name").'</a></li>';
        } // end while
      } // if
    }  // end foreach
  } // end if (is_array)

  echo '</ul>';

}
?>
Auszug aus dem generierten Sourcecode:

Code: Alles auswählen

<div class="textboxlang">
<div id="katliste1">


<div></div>
Kann mir bitte jemand helfen bzw. einen Tip geben?
Muß ich vielleicht bei CMS_VALUE einen anderen Wert angeben?


#ayshe

Verfasst: Mo 5. Apr 2004, 16:54
von Robatzen
Hatte mir Deinen Code grad mal reinkopiert, da scheint etwas mehr im argen zu sein als nur die Formatierung. Hab leider keine Zeit das in Ruhe durchzuschauen, wenn du eine Servicenavigation als Liste haben willst versuch mal bitte den folgenden Code, Grundlage ist auch hierbei die Servicenavigation, nur halt als Liste nicht in Tables.:

Bei mir tut das genau das was du haben möchtest!

Gruß, rob

Code: Alles auswählen

Input
// selected category
$selected = "CMS_VALUE[0]";

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">
        <tr valign=\"top\">
          <td>Kategorie w�hlen:</td>
          <td>
            <select name=\"CMS_VAR[0]\">";
            if($selected!="0" && $selected!=""){
             echo"<option value=\"0\">--- kein ---</option>";

            }else{
            echo"<option selected=\"selected\" value=\"0\">--- kein ---</option>";
            }

            // fetch all categorys
            $query = "SELECT A.idcat, A.level, C.name 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 C.idlang='$lang' AND B.idclient='$client' ".
                     "AND C.visible=1 ORDER BY A.idtree";
            // execute query
            $db->query($query);

            // loop result and build the options
            while ($db->next_record()) {

              // indent spacer
              $spaces = "|";

              // how many levels
              $levels = $db->f("level");

              for ($i = 0; $i < $levels; $i ++) {
                // add 2 spaces for every level
                $spaces = $spaces . "--";

              } // end for
              
              $spaces .= ">";


              if ($selected == $db->f("idcat")) {
                // selected category
                echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";

              } else {
                // category
                echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";

              } // end if

            } // end while

echo "      </select>";

echo "    </td>
        </tr>
      </table>";

Code: Alles auswählen

Output
<?php 
 
 include_once($cfg["path"]["contenido"].$cfg["path"]["includes"]."functions.con.php"); 
 
 $catStart = "CMS_VALUE[0]"; 
 
 if ($catStart != "") { 
   $catIds = conDeeperCategoriesArray($catStart); 
 

   if ( is_array($catIds) ) { 
 
     foreach($catIds as $key=>$val) { 
       // Ersten Eintrag ueberspringen, weil das der Menupunkt selbst ist 
       // und nicht angezeigt werden soll. 
       if ($key != 0) { 
 
         $sql = "SELECT CAT.idcat AS idcat, name FROM ". 
                $cfg["tab"]["cat"]." AS CAT, ". 
                $cfg["tab"]["cat_lang"]." AS CATLANG 
                WHERE CAT.idcat = ".$val." 
                AND CAT.idcat = CATLANG.idcat 
                AND CATLANG.idlang = '$lang' 
                AND CATLANG.visible = '1'"; 
 
         $db->query($sql); 
 
         $db2 = new DB_Contenido; 
         
         while ( $db->next_record() ) { 
         
            $target = "_self"; 
           
           /* Check for redirect and new window flag */ 
           $sql = "SELECT idart FROM ".$cfg["tab"]["cat_art"]." WHERE idcat='". $db->f("idcat")."' AND is_start = '1'"; 
           $db2->query($sql); 
           if ($db2->next_record()) 
           { 
                 $cidart = $db2->f("idart"); 
                 $sql = "SELECT external_redirect FROM ".$cfg["tab"]["art_lang"]." WHERE idart = '$cidart' AND idlang='$lang'"; 
                 $db2->query($sql); 
                 if ($db2->next_record()) 
                 { 
                     $target = ( $db2->f("external_redirect") == 0 ) ? '_self' : '_blank'; 
                 } 
           } 
           echo '   <li><a target="'.$target.'" href="front_content.php?idcat='.$db->f("idcat").'">'.$db->f("name").'</a></li>'; 

         } // end while 
       } // if 
     }  // end foreach 
   } // end if (is_array) 
 
 } 
 ?> 

Verfasst: Mo 5. Apr 2004, 19:51
von #ayshe
Hi Rob,

vielen Dank für die schnelle Antwort und den Code.
Ich hab ihn bei mir reingepastet, aber das Ergebnis im generierten Sourcecode ist immer noch gähnenden Leere statt einer Navigation.

Dann liegt der Fehler wohl an was anderem, aber da ich m.E. schon alles durchgeforstet habe, weiß ich momentan nicht mehr wo ich suchen soll.
Also: Es gibt folgende Struktur:
Startseite
>Camps
>Sutherland
>Tom
Subnavigation

Die Subnavi ist per Modul eingebunden: klappt.
Auf der Startseite sind 3 Module für 3 verschiedene Navigationen eingebunden: leere Ausgabe.
Auf der Starseite der Kategore Camps ist eine Navi per Modul eingebunden: klappt.

Hier zur Anschauung auf meinem Testverzeichnis:
Startseite, wo's nicht klappt:
http://www.rot65.de/compernass_neu/front_content.php
Und hier die Seite mit nur einem Navi-Modul, wo's klappt:
http://www.rot65.de/compernass_neu/fron ... p?idcat=32


Noch 'n Vorschlag von jemandem hier im Forum? Ich bin echt am Ende :cry: ...mit meinem Latein.

Gruß,
#ayshe

Verfasst: Di 6. Apr 2004, 07:11
von scipio
Steht denn was im CMS-Error-Log?

Verfasst: Di 6. Apr 2004, 10:15
von #ayshe
Nö, keine Fehler im Error-Log.

Verfasst: Di 6. Apr 2004, 16:43
von #ayshe
Ähem, räusper...
Hat noch jemand nen Tip, was ich noch prüfen könnte? Die Verzeichnisse sind "online", ebenso die einzelnen Artikel. Und auf den Unterseiten sind genau die gleichen Navis eingebaut und da funzen sie.
Anscheinend gibt es aber Probs, wenn sie zusammen auf einer Seite eingebaut sind. Muss ich Variablen im Modul-Code ändern?
Nochmal zur Ansicht:
http://www.rot65.de/compernass_neu/front_content.php

Von da aus kann man sich schon etwas weiter durchklicken. Ihr seht dann, dass auf allen Unterseiten die genau gleichen Module funktionieren.

Hilfe wär echt toll. Sonst muß ich die Navi noch statisch bauen. :(

#ayshe