Sitemap mit allen Artikeln

Gesperrt
Deddy
Beiträge: 79
Registriert: Do 1. Jun 2006, 09:00
Kontaktdaten:

Sitemap mit allen Artikeln

Beitrag von Deddy »

Hallo!

Ich hoffe dass mir jemand helfen kann. Ich habe nun, so denke ich, fast alle Treads zu diesem Thema gelesen. Ich habe bereits alles Mögliche ausprobiert aber das was ich benötige war nicht dabei.

Und zwar suche ich eine Sitemap, die alle Artikel ausgibt. Nicht nur die Startartikel.

Ich verwende momentan folgendes Modul.

Code: Alles auswählen

?><?php
/***********************************************
* CONTENIDO MODUL - INPUT
*
*  Modulname  :     Sitemap
* Author(s)   :     Jan Lengowski, Jose Rodriguez
* Copyright   :     Contenido - four for business, Jose Rodriguez
* Created     :     15-08-2002
* Modified    :     14-01-2003 by nik wyss
* Modified    :     29-12-2003 by Sascha Benkart. 
************************************************/

#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 ".$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 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."  ";
	}

	if ($selected == $db->f("idcat")) {
		#Selected category
		echo "        <option selected=\"selected\" value=\"".$db->f("idcat")."\">".$spaces.$db->f("name")."</option>";
	} else {
		#Unselected Category
		echo "        <option value=\"".$db->f("idcat")."\">".$spaces.$db->f("name")."</option>";
	}

}

echo "      </select>
"."     </td>
"."   </tr>
"." </table>
";
?><?php
und für den Output

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

?>         
Mit diesem Modul werden nur die Startartikel ausgegeben. Mein Gedanke war, die Stelle zu finden, die die Startartikel aus der Datenbank ausliest. Und das dann auf alle Artikel auszuweiten. Habs aber nicht gefunden bzw. auch nicht hinbekommen.

Wäre prima, wenn mir jemand weiterhelfen würde. Bin schon am verzweifeln. :(

Gruß Deddy
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 »

Bitte nächstes Mal die Suche benutzen, da gibt es doch schon was:

http://www.contenido.org/forum/viewtopi ... p+artikeln
Deddy
Beiträge: 79
Registriert: Do 1. Jun 2006, 09:00
Kontaktdaten:

Beitrag von Deddy »

Dodger77 hat geschrieben:Bitte nächstes Mal die Suche benutzen, da gibt es doch schon was:

http://www.contenido.org/forum/viewtopi ... p+artikeln
Ich sagte ja bereits, ich habe alles schon gelesen und ausprobiert. Auch dieser Tread ist mir bekannt. Das funzt bei mir irgendwie nicht. Da wird nichts dargestellt. Hab auch im Quelltext nachgesehen, da steht auch nichts drin. Ich benutze dieses Modrewrite - liegt es vielleicht daran.
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 »

Deddy hat geschrieben:Ich sagte ja bereits, ich habe alles schon gelesen und ausprobiert. Auch dieser Tread ist mir bekannt. Das funzt bei mir irgendwie nicht. Da wird nichts dargestellt. Hab auch im Quelltext nachgesehen, da steht auch nichts drin. Ich benutze dieses Modrewrite - liegt es vielleicht daran.
"Alles" bietet halt immer Interpretationsspielraum. Woher soll ich wissen, dass "alles" eben jenen Thread schon beinhaltet. Bei mir hat das Modul halt bei einem kurzen Test direkt funktioniert, deshalb hielt ich das für einen guten Tipp.
Deddy
Beiträge: 79
Registriert: Do 1. Jun 2006, 09:00
Kontaktdaten:

Beitrag von Deddy »

:-) Ja danke für deine Hilfe!

Könntest du dir vorstellen, warum das bei mir nicht läuft? Ich habe die 4.6.15 drauf. Das Modul wurde von mir 1 zu 1 eingefügt. In dem Container, in dem die Sitemap erscheinen soll ist komplett leer.
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 »

Deddy hat geschrieben:Könntest du dir vorstellen, warum das bei mir nicht läuft? Ich habe die 4.6.15 drauf.
Nein, bei mir läuft die direkt. Evtl. liegt es einfach an einem Konfigurationsfehler. Fragen zu dem Modul selbst wären natürlich in dem entsprechenden Thread gut aufgehoben.
Deddy
Beiträge: 79
Registriert: Do 1. Jun 2006, 09:00
Kontaktdaten:

Beitrag von Deddy »

ok danke. Dann versuche ich dort mein Glück. :)
Gesperrt