sitemap erste ebene ausblenden

Gesperrt
astar
Beiträge: 60
Registriert: Di 26. Jul 2005, 11:43
Kontaktdaten:

sitemap erste ebene ausblenden

Beitrag von astar » Mi 31. Aug 2005, 09:25

Hallo,

Ich habe mir aus dem Forum folgende Sitemap installiert:

Eingabe

Code: Alles auswählen

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

echo  "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">\n".
        "  <tr valign=\"top\">\n".
        "    <td>Kategorie wählen:</td>\n".
        "    <td>\n".
        "      <select name=\"CMS_VAR[0]\">\n".
        "        <option value='0'>---Alle---</option>\n";

// 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

  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>\n".
         "     </td>\n".
         "   </tr>\n".
         "   <tr>\n".
         "     <td>Anzahl Ebene:</td>\n".
         "     <td>\n".
         "       <input type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\">\n".
         "     </td>\n".
         "   </tr>\n".
         " </table>\n";


Ausgabe

Code: Alles auswählen

<?php
  
  $amountLevel = "CMS_VALUE[1]";
  $newcat = "CMS_VALUE[0]";
  $color = array("#F7C473", "#FCC33","#f4a460","#daa520");
  
  function sitemap($newcat=0)
  {
    global $lang, $client, $amountLevel, $color, $startLevel, $cfg;
    $db  = new DB_Contenido;
    $sql  = "SELECT * 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 ".
              "B.parentid =$newcat AND level <= $amountLevel AND C.visible=1 ".
              "ORDER by A.idtree";
    $db->query($sql);
    $result = "<table border=0 cellspacing=1 cellpadding=0 border=0>";
    while ($db->next_record())
    {  
      $lvl = $db->f("level");
      if ($lvl==1)
      {
        $result.="<tr><td> </td></tr>";
      }
      $colorID=$lvl-$startLevel;
      if ($colorID > count($color)-1)
      {
        $colorID=count($color)-1;
      }
      $result	.=  "<tr><td width='140 px' bgcolor='".$color[$colorID].
                  "' valign=top><a href='front_content.php?idcat=".$db->f("idcat").
                  "&lang=$lang&client=$client' class='lmLink'>".
                  $db->f("name")."</a></td><td>".sitemap($db->f("idcat")).
                  "</td></tr>";
    }
    $result.= "</table>";
    return($result);
  }
  
  $sql = "SELECT level FROM $cfgTab_cat_tree WHERE idcat=$newcat";
  $db->query($sql);
  $db->next_record();
  $startLevel = $db->f("level");
  $amountLevel +=  $startLevel;
  if ($newcat==0){$amountLevel--;}
  echo sitemap($newcat);
?>         
die funktioniert auch einwandfrei.

Um die Sitemap in der Breite ein bisschen einzugrenzen, wollte ich die erste Ebene ausblenden (Hauptnavigation, Servicenavigation,...)

Kann mir jemand sagen wo ich im Code die Einstellung finde?

Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix » Mi 31. Aug 2005, 09:42

Code: Alles auswählen

 "B.parentid =$newcat AND level <= $amountLevel AND C.visible=1 ". 
da müsste noch ein and level >1 dazu, damit werden die Level von der anderen Seite abgefangen.

Viel Erfolg
Florian

astar
Beiträge: 60
Registriert: Di 26. Jul 2005, 11:43
Kontaktdaten:

Beitrag von astar » Mi 31. Aug 2005, 10:16

Danke für die schnelle Antwort.

Habe gerade das "and level >1" versucht einzufügen.

Entweder es kommt bei mir dann gar keine Sitemap mehr, oder mit allen Ebenen.

Habe es wie folgt probiert.

bleibt gleich

Code: Alles auswählen

"B.parentid =$newcat AND level >1 <= $amountLevel AND C.visible=1 ".
nix mehr

Code: Alles auswählen

"B.parentid =$newcat AND level and level >1 <= $amountLevel AND C.visible=1 ".

Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix » Mi 31. Aug 2005, 10:40

Code: Alles auswählen

"B.parentid =$newcat AND level >1 and level<= $amountLevel AND C.visible=1 ".
Viel Erfolg
Florian

astar
Beiträge: 60
Registriert: Di 26. Jul 2005, 11:43
Kontaktdaten:

Beitrag von astar » Mi 31. Aug 2005, 10:55

Da ist noch irgendwo der Wurm drinnen.

Code: Alles auswählen

"B.parentid =$newcat AND level >1 and level<= $amountLevel AND C.visible=1 ".
zeigt mir keine Ausgabe an.

Drehe ich jedoch das "And level > 1" um also "And level < 1"

zeigt mir die Sitemap nur die erste Ebene (also die die ich ausgeblendet haben möchte.

Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix » Mi 31. Aug 2005, 10:57

versuch mal >= 1 oder >0

Florian

astar
Beiträge: 60
Registriert: Di 26. Jul 2005, 11:43
Kontaktdaten:

Beitrag von astar » Mi 31. Aug 2005, 12:09

bringt leider auch keinen erfolg. die seite bleibt immer leer.

Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix » Mi 31. Aug 2005, 12:44

hast du auch keine "rote Ampel" bei der Codeeingabe?
Florian

astar
Beiträge: 60
Registriert: Di 26. Jul 2005, 11:43
Kontaktdaten:

Beitrag von astar » Mi 31. Aug 2005, 13:00

ne ampel ist grün.

Und wenn ich dass ">" umdrehe habe ich als Ausgabe ja nur die erste Ebene.
(Die die ich eigentlich ausblenden möchte.)

Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix » Mi 31. Aug 2005, 13:15

tut mir leid, da muss ich jetzt passen. Vielleicht erbarmt sich noch einer.

Viel Erfolg
Florian

Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix » Mi 31. Aug 2005, 14:54

Eine Idee habe ich aber noch,

wenn du nicht zu viele Bäume hast, vielleicht kannst du 2 Module einsetzen und jeweils eine Stufe tiefer anfangen. Alledrings weiß ich nicht, ob man das Modul 2 x auf der gleichen Seite ohne anpassung aufrufen kann.

Gruß
Florian

astar
Beiträge: 60
Registriert: Di 26. Jul 2005, 11:43
Kontaktdaten:

Beitrag von astar » Do 1. Sep 2005, 09:42

ui das klingt kompliziert.

was ich nicht so ganz verstehe, ist das wenn ich das "<" umdrehe es funktioniert das ebenen ausgeblendet werden. (leider werden alle bis auf die erste ausgeblendet und ich will nur die erste ausblenden.)

Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix » Do 1. Sep 2005, 10:09

Das < bewirkt das gleiche wie die Begrenzung auf eine bestimmte Anzahl von Ebenen. Die Suche im Kategoriebum scheint rekusiv zu sein, und wenn Ebene 0 nicht gewählt wird, wird wohl der Startpunkt verpasst. Aber da blicke ich nicht genau durch. Man muss also den Kategoriepunkt finden, darf ihn aber nicht anzeigen. Zum Knobeln habe ich im Moment weder Zeit noch Lust.

Viel Erfolg
Florian

astar
Beiträge: 60
Registriert: Di 26. Jul 2005, 11:43
Kontaktdaten:

Beitrag von astar » Do 1. Sep 2005, 14:08

verzwickt verzwackt einfach komisch...

danke für die bemühungen.

Gesperrt