Seite 1 von 1
Location String für Artikel?
Verfasst: Mo 19. Jan 2004, 19:09
von matze
hallo alle miteinander,
mein ziel ist es das modul "location string" so zu erweitern,
dass wenn man einen artikel ausgewählt,
im navigationspfad zusätzlich auch der jeweilige artikel-titel erscheint.
z.B. so:
"Hauptmenü > Projekte > Artikel 2"
ist sowas möglich?
und wenn ja könnte, wie müsste man den quelltext ergänzen?

,
matze
ps: wahrscheinlich wird es schwieriger, da man bei den artikeln keine "cat_tree"-tabelle vorliegen hat. (oder?)
Code: Alles auswählen
<?php
$nav_tp = $idcat;
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 href=\"".$nav_tree[$i][link]."\">".$nav_tree[$i][name]."</a>";
if($nav_tree[$i][idcat] != $idcat) {
echo " > "; // seperator
}
}
?>
Verfasst: Mi 21. Jan 2004, 18:02
von matze
vielen dank für die tolle unterstützung!!!
mittlerweile hab ich's selbst herausgefunden!
ciao,
matze, der eingeschnappte

Verfasst: Mi 21. Jan 2004, 20:23
von emergence
matze hat geschrieben:der eingeschnappte

sei froh das du es selbst hinbekommen hast... eh nicht schlecht...
aber du könntest anderen ja helfen die auch so was mal benötigen würden und postest einfach deinen code für das neue modul... vielleicht hat ja der eine oder andere noch verbesserungsvorschläge oder ähnliches...
deshalb eingeschnappt zu sein

ist, glaube ich, nicht angebracht...
vielleicht kommst ja auf den geschack und programmierst was für die allgemeinheit

Verfasst: Mi 21. Jan 2004, 21:21
von matze
alles im allen war ich nur unzufrieden, dass ich nach beinah 3 tagen nicht ein einziges feedback bekommen habe.
mir hätte ein "ja, da ist möglich!" zunächst vollkommen ausgereicht.
ich musste halt mal dampf ablassen sowie die "bösen" smileys testen!
cheers,
matze, der besänftigte
Verfasst: Mi 21. Jan 2004, 22:05
von maTTos
Wie sagt man hier im Rheinland so schön: "Net lang schnacken, Modul hier hin packen!"

Verfasst: Do 22. Jan 2004, 23:35
von matze
ok, zurück zum thema.
ich habe einfach folgende abfrage hinten dran gehangen!
viele grüße,
matze
Code: Alles auswählen
...
$i=$i-1;
$new_idart=$idart;
$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 href=\"".$nav_tree[$i][link]."&idart=$new_idart\">".$art_titel."</a>";
Verfasst: Mi 3. Nov 2004, 10:08
von moews
Danke, dass war genau das was ich auch gesucht habe. Funktioniert super!!!! Hat mir echt geholfen...

. Ein Problem habe ich allerdings noch:
Beim mir ist das so organisiert, dass ich einen Ordner habe mit der Übersicht und weitere Artikel. Der Ordner z.B. Unternehmen ist also der letzte Punkt. Nun sieht der Location String so aus: "... > Unternehmen > Unternehmen Übersicht" Wobei bei beiden die gleiche Seite gemeint ist. Wie kann ich sowas verhindern?
Gruß Andy
P.S.: Kleiner Nachtrag: Ggf. könnte man den Startartikel ausklammern.
matze hat geschrieben:ok, zurück zum thema.
ich habe einfach folgende abfrage hinten dran gehangen!
viele grüße,
matze
Code: Alles auswählen
...
$i=$i-1;
$new_idart=$idart;
$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 href="".$nav_tree[$i][link]."&idart=$new_idart">".$art_titel."";
Verfasst: Mo 8. Nov 2004, 11:54
von matze
also wenn du alle startartikel herausfiltern willst, musst vorher noch eine sql-abfrage einschieben, in der du überprüfst ob in der tabelle "con_cat_art" das feld "is_start" vom jeweiligen artikel "0" ist.
also dann in etwa so:
Code: Alles auswählen
...
$i=$i-1;
$new_idart=$idart;
$sql = "SELECT
idart, is_start
FROM
".$cfg["tab"]["cat_art"]."
WHERE
idart='$new_idart' AND is_start='0'";
$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 href=\"".$nav_tree[$i][link]."&idart=$new_idart\">".$art_titel."</a>";
}
habs aber noch nicht getestet!!!

m.
Verfasst: Mo 8. Nov 2004, 14:03
von moews
Danke matze, so funktioniert es. Hat mir prima geholfen. Echt, DANKE....
Gruß moews
matze hat geschrieben:also wenn du alle startartikel herausfiltern willst, musst vorher noch eine sql-abfrage einschieben, in der du überprüfst ob in der tabelle "con_cat_art" das feld "is_start" vom jeweiligen artikel "0" ist.
also dann in etwa so:
Code: Alles auswählen
...
$i=$i-1;
$new_idart=$idart;
$sql = "SELECT
idart, is_start
FROM
".$cfg["tab"]["cat_art"]."
WHERE
idart='$new_idart' AND is_start='0'";
$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 href="".$nav_tree[$i][link]."&idart=$new_idart">".$art_titel."";
}
habs aber noch nicht getestet!!!

m.
Verfasst: Sa 5. Feb 2005, 13:36
von Andreas
Hallo zusammen,
könntet Ihr wohl den kompletten Code (Location String OHNE Startartikel MIT Artikel) posten?
Das wäre klasse. Irgendwie bekomme ich das nicht hin...
Gruß
Andreas
Verfasst: Sa 5. Feb 2005, 17:27
von matze
Et voilà!
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 href=\"".$nav_tree[$i][link]."\">".$nav_tree[$i][name]."</a>";
if($nav_tree[$i][idcat] != $idcat) {
echo " > "; // seperator
}
}
// AUSGABE vom aktuellen Artikeltitel
$i=$i-1;
$new_idart=$idart;
$sql = "SELECT
idart, is_start
FROM
".$cfg["tab"]["cat_art"]."
WHERE
idart='$new_idart' AND is_start='0'";
$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 href=\"".$nav_tree[$i][link]."&idart=$new_idart\">".$art_titel."</a>";
}
?>
Verfasst: So 1. Jan 2006, 19:04
von ourgon
Soweit genau das was ich suche, nur ...
... wäre jetzt meine Frage, ob es die Möglichkeit gibt die erste Kategorie in der Navigationleiste auszublenden?
Grüße
Ourgon