Location String für Artikel?

Gesperrt
matze
Beiträge: 106
Registriert: Mi 17. Dez 2003, 00:17
Wohnort: L.E.
Kontaktdaten:

Location String für Artikel?

Beitrag von matze » Mo 19. Jan 2004, 19:09

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 
  } 
} 
?> 

matze
Beiträge: 106
Registriert: Mi 17. Dez 2003, 00:17
Wohnort: L.E.
Kontaktdaten:

Beitrag von matze » Mi 21. Jan 2004, 18:02

vielen dank für die tolle unterstützung!!!

mittlerweile hab ich's selbst herausgefunden!

ciao,
matze, der eingeschnappte :evil:

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mi 21. Jan 2004, 20:23

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

matze
Beiträge: 106
Registriert: Mi 17. Dez 2003, 00:17
Wohnort: L.E.
Kontaktdaten:

Beitrag von matze » Mi 21. Jan 2004, 21:21

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

maTTos
Beiträge: 130
Registriert: Fr 27. Jun 2003, 14:14
Kontaktdaten:

Beitrag von maTTos » Mi 21. Jan 2004, 22:05

Wie sagt man hier im Rheinland so schön: "Net lang schnacken, Modul hier hin packen!" :D

matze
Beiträge: 106
Registriert: Mi 17. Dez 2003, 00:17
Wohnort: L.E.
Kontaktdaten:

Beitrag von matze » Do 22. Jan 2004, 23:35

ok, zurück zum thema.
ich habe einfach folgende abfrage hinten dran gehangen!

viele grüße,
matze :shock:

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>";
Zuletzt geändert von matze am Mo 8. Nov 2004, 16:32, insgesamt 1-mal geändert.

moews
Beiträge: 76
Registriert: Mi 11. Aug 2004, 13:29
Wohnort: Berlin
Kontaktdaten:

Beitrag von moews » Mi 3. Nov 2004, 10:08

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 :shock:

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."";

matze
Beiträge: 106
Registriert: Mi 17. Dez 2003, 00:17
Wohnort: L.E.
Kontaktdaten:

Beitrag von matze » Mo 8. Nov 2004, 11:54

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.
Zuletzt geändert von matze am Mo 8. Nov 2004, 16:32, insgesamt 1-mal geändert.

moews
Beiträge: 76
Registriert: Mi 11. Aug 2004, 13:29
Wohnort: Berlin
Kontaktdaten:

Beitrag von moews » Mo 8. Nov 2004, 14:03

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.

Andreas
Beiträge: 254
Registriert: So 16. Nov 2003, 14:48
Wohnort: Reichshof
Kontaktdaten:

Beitrag von Andreas » Sa 5. Feb 2005, 13:36

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... :oops:

Gruß
Andreas

matze
Beiträge: 106
Registriert: Mi 17. Dez 2003, 00:17
Wohnort: L.E.
Kontaktdaten:

Beitrag von matze » Sa 5. Feb 2005, 17:27

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

}
?>


ourgon
Beiträge: 2
Registriert: Fr 30. Dez 2005, 19:47
Kontaktdaten:

Beitrag von ourgon » So 1. Jan 2006, 19:04

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

Gesperrt