Sitemap mit mehr als 3 Level
Verfasst: Mi 16. Nov 2005, 16:35
hallo community
ich habe versucht das standard modul sitemap um zunächst eine weitere ebene zu erweitern, also 4 Level [im endeffekt benötige ich vieleicht sogar 5]
input scheint meinen kenntnissen nach keine veränderung zu benötigen.
output habe ich folgendermassen erweitert [sitemap_level4.html] existiert auch, ausgabe ampel ist grün:
http://dev1.elflein-kosmetik.de/cont46d ... p?idcat=39
zeigt im navipath und links in der catbox die tiefe, die sitemap aber nach wie vor nur bis level3 (classics) sollte aber auch subkat1 zeigen.
danke für eure hilfe
ich habe versucht das standard modul sitemap um zunächst eine weitere ebene zu erweitern, also 4 Level [im endeffekt benötige ich vieleicht sogar 5]

output habe ich folgendermassen erweitert [sitemap_level4.html] existiert auch, ausgabe ampel ist grün:
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Sitemap
* Author(s) : Jan Lengowski, Jose Rodriguez
* Copyright : Contenido - four for business
* Created : 15-08-2002
************************************************/
#System properties in use:
#Type: navigation, Name: idcat_homepage
#Contains idcat of tree to be displayed in sitemap
#Includes
cInclude("frontend", "includes/functions.navigation.php");
cInclude("classes", "class.frontend.permissions.php");
cInclude("classes", "class.frontend.groups.php");
cInclude("classes", "class.frontend.users.php");
cInclude("classes", "class.template.php");
#If no tree is selected, use client setting
$newcat = "CMS_VALUE[0]";
if ($newcat=='') {
$cApiClient = new cApiClient($client);
$newcat = $cApiClient->getProperty('navigation', 'idcat_homepage');
}
#Get cat tree
$sql = "SELECT level FROM ".$cfg["tab"]["cat_tree"]." WHERE idcat=$newcat";
$db->query($sql);
$db->next_record();
echo sitemap($newcat);
function sitemap($newcat) {
global $lang, $client, $cfg, $printing;
#Initialize database objects
$db = new DB_Contenido;
$db2 = new DB_Contenido;
$db3 = new DB_Contenido;
$db4 = new DB_Contenido;
$tpl = new Template;
$tpl2 = new Template;
$tpl3 = new Template;
$tpl4 = new Template;
$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 C.visible=1 "."ORDER by A.idtree";
$db->query($sql);
#Build level 1
$tpl->reset();
while ($db->next_record()) {
#Check permissions, determine visibility
$visible = checkCatPermission($db->f("idcatlang"),$db->f("public"));
if ($visible) {
$tpl->set("d","URL","front_content.php?idcat=".$db->f("idcat"));
$tpl->set("d","NAME",$db->f("name"));
$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 =".$db->f("idcat")." AND C.visible=1 "."ORDER by A.idtree";
$db2->query($sql);
#Build level 2
$tpl2->reset();
$level2 = '';
$j = 0;
while ($db2->next_record()) {
$visible = checkCatPermission($db2->f("idcatlang"),$db2->f("public"));
if ($visible) {
$tpl2->set("d", "URL", "front_content.php?idcat=".$db2->f("idcat"));
$tpl2->set("d", "NAME", $db2->f("name"));
$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 =".$db2->f("idcat")." AND C.visible=1 "."ORDER by A.idtree";
$db3->query($sql);
#Build level 3
$tpl3->reset();
$level3 = '';
$k = 0;
while ($db3->next_record()) {
$visible = checkCatPermission($db3->f("idcatlang"),$db3->f("public"));
if ($visible) {
$tpl3->set("d", "URL", "front_content.php?idcat=".$db3->f("idcat"));
$tpl3->set("d", "NAME", $db3->f("name"));
$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 =".$db3->f("idcat")." AND C.visible=1 "."ORDER by A.idtree";
$db4->query($sql);
#Build level 4
$tpl4->reset();
$level4 = '';
$l = 0;
while ($db4->next_record()) {
$visible = checkCatPermission($db4->f("idcatlang"),$db4->f("public"));
if ($visible) {
$tpl4->set("d", "URL", "front_content.php?idcat=".$db4->f("idcat"));
$tpl4->set("d", "NAME", $db4->f("name"));
$tpl4->next();
$l ++;
}
}
$level4 = $tpl4->generate($cfgClient[$client]["path"]["frontend"]."templates/"."sitemap_level4.html",1,0);
$k++;
}
$tpl3->set("d", "LEVEL4", $level4);
$tpl3->next();
}
$level3 = $tpl3->generate($cfgClient[$client]["path"]["frontend"]."templates/"."sitemap_level3.html",1,0);
$j++;
}
$tpl2->set("d", "LEVEL3", $level3);
$tpl2->next();
}
$level2 = $tpl2->generate($cfgClient[$client]["path"]["frontend"]."templates/"."sitemap_level2.html",1,0);
}
$tpl->set("d", "LEVEL2", $level2);
$tpl->next();
}
$tpl->generate($cfgClient[$client]["path"]["frontend"]."templates/"."sitemap_level1.html");
}
?>
zeigt im navipath und links in der catbox die tiefe, die sitemap aber nach wie vor nur bis level3 (classics) sollte aber auch subkat1 zeigen.
danke für eure hilfe