Seite 1 von 1
Bug in der Sitemap?
Verfasst: So 27. Nov 2005, 23:12
von PC_mobil
Hallo,
bin gerade noch auf ein kleines Problem gestoßen. Wenn ich einen Artikel nur einem bestimmten Nutzerkreis zugängig mache, bekome ich folgende Anzeige in der Sitemap.
Features dieser Website
Navigation
Content
Bildergalerie
Geschlossener Bereich

korrekt
{NAME}
Navigation
Content
Bildergalerie
Geschlossener Bereich

hier steht die andere Seite wenn ich sie öffentlich zugänglich mache, sobald ich sie wieder aber "ausblende" tritt dieser Fehler in der Sitemap auf. Hat jmd Lösung?
thnx
Fehler bestätigt
Verfasst: Di 29. Nov 2005, 12:44
von nightsky
Bei mir tritt derselbe Fehler auch auf. ich bin jetzt am analysieren des Moduls. Wenn ich den Fehler finde werde ich hier die Lösung bringen
Fehler gefunden
Verfasst: Di 29. Nov 2005, 13:02
von nightsky
Der Fehler bestand darin, dass die IF-Abfragen (visible) zu früh geschlossen wurden.
Der richtige Code für die Sitemap Ausgabe:
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;
$tpl = new Template;
$tpl2 = new Template;
$tpl3 = 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"));
$tpl3->next();
$k ++;
} // ENDE if l3
} // ENDE while l3
$level3 = $tpl3->generate($cfgClient[$client]["path"]["frontend"]."templates/"."sitemap_level3.html",1,0);
$j++;
$tpl2->set("d", "LEVEL3", $level3);
$tpl2->next();
} // ENDE if l2
} // ENDE while l1
$level2 = $tpl2->generate($cfgClient[$client]["path"]["frontend"]."templates/"."sitemap_level2.html",1,0);
$tpl->set("d", "LEVEL2", $level2);
$tpl->next();
} // ENDE if l1
}
$tpl->generate($cfgClient[$client]["path"]["frontend"]."templates/"."sitemap_level1.html");
}
?>
Verfasst: Di 29. Nov 2005, 13:07
von PC_mobil
thnx

werde ich gleich mal einbauen
Verfasst: Do 15. Dez 2005, 11:02
von MyAccount
Code: Alles auswählen
#Check permissions, determine visibility
$visible = checkCatPermission($db->f("idcatlang"),$db->f("public"));
Gibt es auch eine Funktion checkCatArticle()? Ich kann die nämlich leider nicht finden. Oder löst ihr das immer über das SQL-Statement, bzw. über den ArticleArray?
Das Modul zeigt so nämlich auch die Kategorien an, die keine Artikel enthalten. OK, man könnte auch einfach die Kategorien, die leer sind einfach offline setzen. Ich kann aber nicht davon ausgehen, dass jeder Online-Redakteur das auch macht.
[edit]
Hat sich erledigt. Im Prinzip braucht man nur die Hauptnavigation nachzubauen. wenn man die selbe Anzeige (geschützer Bereich, keine Artikel enthalten) haben will, wie die eigentlich Navigation anzeigt.
Trotzdem wäre zumindest interessant, wenigstens die Links mit href="#" zu füllen, wenn tatsächlich kein Artikel dahinterliegt.
[/edit]
Verfasst: Fr 10. Nov 2006, 12:05
von silicone
Hallo,
könnte man das geänderte Modul in den Beispielmandanten einbauen?
Danke
Re: Fehler gefunden
Verfasst: Di 12. Dez 2006, 10:23
von joe
nightsky hat geschrieben:Der Fehler bestand darin, dass die IF-Abfragen (visible) zu früh geschlossen wurden.
wow, gutes auge - danke hatte nämlich das gleiche problem
joe
Verfasst: Do 3. Mai 2007, 01:09
von o
ist aber leider auch in der 4.6.15 nicht verbessert worden. das selbe problem besteht immer noch.
grüsse
olaf
Verfasst: Do 3. Mai 2007, 10:48
von HerrB
Die Sitemap wird in der kommenden Version voraussichtlich komplett ersetzt.
Gruß
HerrB
Verfasst: So 24. Jun 2007, 19:06
von HerrB
Checkin.