mal wieder 'ne Breadcrumb-Frage, ich hoffe, ich drücke mich verständlich aus:
In der Regel geben die vorhandenen Location String-Module die Kategorien aus. Eins (von Martin Horwath / Matze http://contenido.org/forum/viewtopic.php?t=3048) habe ich gefunden, dass auch die Artikelnamen mit ausgibt. Funktioniert nach einer kleinen Korrektur ("$new_idart=$idart+1" <- das +1 ist von mir) auch fast zufriedenstellend in meiner 4.6.4.
Der Artikelname soll bei mir aber nur ausgegeben werden, wenn es in der Kategorie mehrere Artikel gibt, die auch alle einzeln aufgerufen werden können. Z.B. aus einer Artikelliste. Gibt es nur einen Artikel in der Kategorie (der dann auch gleichzeitig Startartikel ist), soll der Artikelname nicht ausgeben werden. Denn dann ist der Kategorienname Überschrift genug.
Ich versuche jetzt im genannten Horwath-Modul (Code s.u.), im unteren Teil entsprechend nach Startartikel zu selektieren, also in Konzept-Code:
if ($db->f("is_start") != 1) {dann gib den Artikelnamen aus}
Aber das klappt nicht!!!

In der in der Abfrage verwendeten Tabelle "cat_art", gibt es das Feld "is_start", aber der Wert ist für _jeden_einzelnen_Artikel_ der Site auf "0" - wie kann das sein, denn die Startartikel sind im Backend ja entsprechend definiert?
In einer früheren Installation 4.4.5 haben die Startartikel die "1". Ist das Feld "is_start" in der 4.6 ein Relikt und Startartikel werden woanders definiert?
Kann wer helfen

Dank+gruß
Code: Alles auswählen
<?php
/***********************************************
*
* MODUL: Location-String (ohne Startikel)
*
* Author : Martin Horwath
* Created : 10.09.2003
* Modified : 05.02.2005 (by matze)
*
************************************************/
$nav_tp = $idcat;
// AUSGABE Location-String (nur Kategorien)
while($nav_tp > 0) {
$sql = "SELECT
parentid, A.idcat, A.level, 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
B.idcat ='$nav_tp'";
$db->query($sql);
$db->next_record();
$nav_tree[$db->f("level")][idcat] = $nav_tp;
$nav_tree[$db->f("level")][parent] = $db->f("parentid");
$nav_tree[$db->f("level")][name] = $db->f("name");
$nav_tree[$db->f("level")][link] = $sess->url("front_content.php?idcat=".$db->f("idcat")."&client=".$client."&lang=".$lang."");
$nav_tp = $db->f("parentid");
}
for($i=0;$i<count($nav_tree);$i++) {
echo "<a class=\"breadcrump\" href=\"".$nav_tree[$i][link]."\">".$nav_tree[$i][name]."</a>";
if($nav_tree[$i][idcat] != $idcat) {
echo " > "; // seperator
}
}
// AUSGABE vom aktuellen Artikeltitel
$i=$i;
$new_idart=$idart+1;
$sql = "SELECT
idart, is_start
FROM
".$cfg["tab"]["cat_art"]."
WHERE
idart='$new_idart' AND is_start='1'";
$db->query($sql);
if($db->next_record()) {
$sql = "SELECT
idartlang, title
FROM
".$cfg["tab"]["art_lang"]."
WHERE
idartlang='$new_idart'";
$db->query($sql);
$db->next_record();
$art_titel=$db->f("title");
echo "> <a class=\"breadcrump\" href=\"".$nav_tree[$i][link]."&idcat=$idcat&idart=$new_idart\">".$art_titel."</a>";
}
?>