Seite 1 von 1

Standard-Sitemap: bestimmte Seiten farblich hervorheben?

Verfasst: Mo 21. Nov 2005, 13:21
von tommo
Hallo zusammen,

ich benutze die Standard-sitemap von 4.6.2 und möchte gerne betimmte Seiten farblich hervorheben. Leider kann ich in der "sitemap_level1.html" ja keine PHP-Abfrage machen.

Wie könnte ich mit meinen bescheidenen PHP-Kenntnissen dies verwirklichen :?:

Hier mal der Code des Sitemao-Moduls:

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 ++;
						}
					}
					$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");
}

?>         
Danke,
Tom :wink:

Verfasst: Mo 21. Nov 2005, 13:22
von rezeptionist
bestimmte Seiten oder ebenen ??wenn ebenen kannst du das üner die jeweilige template datei ja machen

Verfasst: Mo 21. Nov 2005, 13:32
von tommo
nee, schon bestimmte Seiten, nicht ebenen.

Tom

Verfasst: Mo 21. Nov 2005, 16:53
von mvf
vieleicht stehe ich ja auch auch komplett auf dem schlauch, aber die seitemaps listen doch nur kategorien (ebenen) auf und keine artikel (seiten)?

Verfasst: Di 22. Nov 2005, 13:47
von tommo
nee auch keine Artikel. :roll:

Ich habe z.B. 10 Hauptmenüpunkte und bei zweien gibt es Untermenüpunkte. Nun möchte ich in der Sitemap die Hauptmenüpunkte, die Untermenüpunkte besitzen farblich hervorheben.

Tom

Verfasst: Di 22. Nov 2005, 14:05
von mvf
also doch kategorien ;)

lösung habe ich keine parat, aber schau doch mal bei w3concepts die habe ein katlist-modul, das liefert die artikel in kategorien als (x) hinter den kategorien. da kann man vieleicht was abgucken. :?

was du suchst ist eine logic die fetched wieviele unterkategorien es in einer kategorieXYZ gibt, und wenn der wert grösser 0 ist soll diese kategorieXYZ eine bestimmte css klasse bekommen.

gehen wird es bestimmt, aber frickeln musste selber ;) sorry