[Suche] Sitemaperweiterung
Verfasst: Di 18. Okt 2005, 17:50
Hallo,
ich habe das Sitemapmodul installiert und es funktioniert bestens. Nun hätte ich gerne, dass die Unterkategorien die über
aufgerufen werden, davor jeweils folgendes stehen haben
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:
Output:
Danke für eure Hilfe!
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
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>";
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);
?>