[Suche] Sitemaperweiterung

Gesperrt
KrissKrass
Beiträge: 86
Registriert: Mi 2. Jun 2004, 16:01
Wohnort: Bochum
Kontaktdaten:

[Suche] Sitemaperweiterung

Beitrag von KrissKrass »

Hallo,

ich habe das Sitemapmodul installiert und es funktioniert bestens. Nun hätte ich gerne, dass die Unterkategorien die über

Code: Alles auswählen

sitemap($db->f("idcat"))

aufgerufen werden, davor jeweils folgendes stehen haben

Code: Alles auswählen

  
damit die weiter eingerückt sind.

Ich habe schon irgendwie alles ausprobiert, bis jetzt jedoch noch nicht das erforderliche Ergebnis erhalten. Ich hoffe ihr könnt mir helfen.

Das Modul:

Input:

Code: Alles auswählen

// Variablendeklarationen
// Das Modul ist für eine ältere Contenido-VErsion - offensichtlich hießen Variablen damals anders...

$cfgTab_cat_tree = $cfg['tab']['cat_tree'];
$cfgTab_cat = $cfg['tab']['cat'];
$cfgTab_cat_lang = $cfg['tab']['cat_lang'];

// 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]\">
                <option value='0'>---Alle---</option>";

            // fetch all categorys

            $query = "SELECT A.idcat, A.level, C.name FROM $cfgTab_cat_tree AS A, ".
                     "$cfgTab_cat AS B, $cfgTab_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>
          </td>
        </tr>
        <tr>
          <td>Anzahl Ebene:</td>
          <td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\"></td>
        </tr>
      </table>";
Output:

Code: Alles auswählen

<?
$cfgTab_cat_tree = $cfg['tab']['cat_tree'];
$cfgTab_cat = $cfg['tab']['cat'];
$cfgTab_cat_lang = $cfg['tab']['cat_lang'];


$amountLevel = "CMS_VALUE[1]";
$newcat = "CMS_VALUE[0]";

function sitemap($newcat=0){
  global $lang, $client, $amountLevel, $color, $startLevel, $cfgTab_cat, $cfgTab_cat_tree, $cfgTab_cat_lang;
  $db = new DB_Contenido;
  $sql = "SELECT * FROM $cfgTab_cat_tree AS A, $cfgTab_cat AS B, $cfgTab_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 ORDER by A.idtree";

$db->query($sql);
  $result = "<table width=100% border=0 cellspacing=2 cellpadding=0 border=0>";
  while ($db->next_record()){	
    $lvl = $db->f("level");
    if ($lvl==1){$result.="";}
    $colorID=$lvl-$startLevel;
    if ($colorID > count($color)-1){$colorID=count($color)-1;}
    $result.= "<tr><td onMouseOver=\"this.style.backgroundColor='EEEEEE'; this.style.cursor='default';\" onMouseOut=\"this.style.backgroundColor='CCCCCC';\" valign=top><a href='front_content.php?idcat=".$db->f("idcat")."&lang=$lang&client=$client'><b>".$db->f("name")."</b></a></td></tr><tr><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);



?>
Danke für eure Hilfe!
i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von i-fekt »

Code: Alles auswählen

<?
$cfgTab_cat_tree = $cfg['tab']['cat_tree'];
$cfgTab_cat = $cfg['tab']['cat'];
$cfgTab_cat_lang = $cfg['tab']['cat_lang'];


$amountLevel = "CMS_VALUE[1]";
$newcat = "CMS_VALUE[0]";

function sitemap($newcat=0){
  global $lang, $client, $amountLevel, $color, $startLevel, $cfgTab_cat, $cfgTab_cat_tree, $cfgTab_cat_lang;
  $db = new DB_Contenido;
  $sql = "SELECT * FROM $cfgTab_cat_tree AS A, $cfgTab_cat AS B, $cfgTab_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 ORDER by A.idtree";

$db->query($sql);
  $result = "<table width=100% border=0 cellspacing=2 cellpadding=0 border=0>";
  while ($db->next_record()){   
    $lvl = $db->f("level");
    if ($lvl==1){$result.="";}
    $colorID=$lvl-$startLevel;
    if ($colorID > count($color)-1){$colorID=count($color)-1;}
    $result.= "<tr><td onMouseOver=\"this.style.backgroundColor='EEEEEE'; this.style.cursor='default';\" onMouseOut=\"this.style.backgroundColor='CCCCCC';\" valign=top>&nbsp;&nbsp;<a href='front_content.php?idcat=".$db->f("idcat")."&lang=$lang&client=$client'><b>".$db->f("name")."</b></a></td></tr><tr><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);



?>
So?
Gruss,
Michael

"Keep on riding this Bike!" (Jackson Mulham)
KrissKrass
Beiträge: 86
Registriert: Mi 2. Jun 2004, 16:01
Wohnort: Bochum
Kontaktdaten:

Beitrag von KrissKrass »

Ne, dass hätte ich auch selbst hinbekommen. Es geht darum, das die Kategorien unter den Hauptkategorien eingerückt werden. Sollte so aussehen:

Home
Archiv
ddd2005
ddd2006
ddd2007
Kontakt

Ich hoffe ihr versteht was ich meine!?
simu
Beiträge: 48
Registriert: Di 4. Okt 2005, 08:44
Wohnort: Schweiz
Kontaktdaten:

Beitrag von simu »

Code: Alles auswählen

<?
$cfgTab_cat_tree = $cfg['tab']['cat_tree'];
$cfgTab_cat = $cfg['tab']['cat'];
$cfgTab_cat_lang = $cfg['tab']['cat_lang'];


$amountLevel = "CMS_VALUE[1]";
$newcat = "CMS_VALUE[0]";

function sitemap($newcat=0,$tabs=""){
  global $lang, $client, $amountLevel, $color, $startLevel, $cfgTab_cat, $cfgTab_cat_tree, $cfgTab_cat_lang;
  $db = new DB_Contenido;
  $sql = "SELECT * FROM $cfgTab_cat_tree AS A, $cfgTab_cat AS B, $cfgTab_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 ORDER by A.idtree";

$db->query($sql);
  $result = "<table width=100% border=0 cellspacing=2 cellpadding=0 border=0>";
  while ($db->next_record()){
    $lvl = $db->f("level");
    if ($lvl==1){$result.="";}
    $colorID=$lvl-$startLevel;
    if ($colorID > count($color)-1){$colorID=count($color)-1;}
    $result.= "<tr><td onMouseOver=\"this.style.backgroundColor='EEEEEE'; this.style.cursor='default';\" onMouseOut=\"this.style.backgroundColor='CCCCCC';\" valign=top>$tabs<a href='front_content.php?idcat=".$db->f("idcat")."&lang=$lang&client=$client'><b>".$db->f("name")."</b></a></td></tr><tr><td>".sitemap($db->f("idcat"), $tabs."&nbsp;&nbsp;")."</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);



?>
KrissKrass
Beiträge: 86
Registriert: Mi 2. Jun 2004, 16:01
Wohnort: Bochum
Kontaktdaten:

Beitrag von KrissKrass »

Hallo,

genau so!
Passt super und sieht super aus... Ich danke dir simu!

Gruß
simu
Beiträge: 48
Registriert: Di 4. Okt 2005, 08:44
Wohnort: Schweiz
Kontaktdaten:

Beitrag von simu »

Kein Problem... ;)
Gesperrt