Seite 1 von 2
Navigationspfad mit Startseite
Verfasst: Fr 7. Apr 2006, 00:20
von andreasb
Hallo!
Mir ist gerade aufgefallen, dass im Modul Navigatiosnpfad (breadcRumb) in der Version 4.6.8 immer die Startseite fehlt.
Also auf der Startseite selbst erscheint dementsprechend kein Navigationspfad und bei anderen Kategorien/Artikeln auch nicht, was nict so sinnig ist.
Habe ich da etwas übersehen oder ist das so?
Verfasst: Mo 10. Apr 2006, 09:36
von emergence
ähm soweit ich das modul kenne -> ist es so...
es gibt aber angepasste versionen eines location strings die das berücksichtigen... -> forum suche nach location string
Verfasst: So 21. Mai 2006, 17:41
von Freddy
emergence hat geschrieben:ähm soweit ich das modul kenne -> ist es so...
es gibt aber angepasste versionen eines location strings die das berücksichtigen... -> forum suche nach location string
Habe nach location string gesucht aber nichts fertiges gefunden. Das location-string Modul von V.4.4.x funktioniert nicht unter 4.6.x.
Gibt es schon ein fertiges Navigationspfad-Modul mit "Home >" davor??
Verfasst: So 21. Mai 2006, 18:30
von BagHira
Freddy hat geschrieben:emergence hat geschrieben:ähm soweit ich das modul kenne -> ist es so...
es gibt aber angepasste versionen eines location strings die das berücksichtigen... -> forum suche nach location string
Habe nach location string gesucht aber nichts fertiges gefunden. Das location-string Modul von V.4.4.x funktioniert nicht unter 4.6.x.
Gibt es schon ein fertiges Navigationspfad-Modul mit "Home >" davor??
hi freddy,
schau mal ob das bei dir funktioniert:
Input: leer
Output: Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Navigationpath
* Author(s) : Andreas Lindner
* Copyright : Contenido - four for business, Andreas Lindner
* Created : 05-08-2005
************************************************/
#Settings
$separator = '>';
$max_length = 65;
#Get path to root
$dummy = conCreateLocationString($idcat, ' '.$separator.' ', $retval, true, "navipath", 0);
if ($retval=='') {
$retval=' ';
} else {
$pattern = "'>.*?<'";
preg_match_all($pattern, $retval, $matches);
$matches = $matches[0];
#Get effective text length
$length = 0;
foreach ($matches as $value) {
$length += strlen($value) - 2;
}
#Get shorten factor
if ($length > $max_length * 4) {
$shorten = 5;
}
elseif ($length > $max_length * 3) {
$shorten = 4;
}
elseif ($length > $max_length * 2) {
$shorten = 3;
}
elseif ($length > $max_length) {
$shorten = 2;
} else {
$shorten = 1;
}
#Shorten items
if ($length > $max_length) {
foreach ($matches as $value) {
if (strpos($value, $separator) === FALSE) {
$text = substr($value, 1, strlen($value) - 2);
$len = strlen($text);
if (strpos($text, ' ') === FALSE) {
$text_new = $text;
} else {
$text_new = capiStrTrimAfterWord($text, intval($len / $shorten));
}
if (strlen($text) != strlen($text_new)) {
$text_new .= '...';
}
$text_new = '>'.$text_new.'<';
$retval = str_replace('>'.$text.'<', $text_new, $retval);
}
}
}
$retval = str_replace('"/index.html"', '"Home/index.html"', $retval);
}
echo $retval;
?>
Hoffe dir geholfen zu haben
Verfasst: So 21. Mai 2006, 19:27
von Freddy
Vielen Dank Holger, ist genau das richtige was ich gesucht habe.
CSS für Navigationspfad
Verfasst: Mo 21. Aug 2006, 19:38
von #ayshe
Hallo,
ich nutze oben zitiertes Modul für den Navigationspfad. Darin ist die CSS-Klasse "navipath" festgeschrieben. Wenn ich dafür im CSS z.B. eine Schriftfarbe definiere, wird die auf alle Einträge/Links des Navigationspfades angewendet - logisch.
Ich möchte aber, dass nur der letzte Link im Navigationspfad farblich hervorgehoben wird. Wie kann ich das bewerkstelligen?
Viele Grüße,
Ayshe
Verfasst: Mo 21. Aug 2006, 21:37
von xmurrix
Hallo,
eine Möglichkeit wäre die Zeile:
Code: Alles auswählen
$retval = str_replace('"/index.html"', '"Home/index.html"', $retval);
um folgendes
Code: Alles auswählen
$retval = str_replace('"/index.html"', '"Home/index.html"', $retval);
$tmp = explode('<a ', $retval);
$tmp[count($tmp)-1] = 'id="nav-path-last" '.$tmp[count($tmp)-1];
$retval = implode('<a ', $tmp);
zu erweitern.
Dann kannst du den letzten Anker (mit der id nav-path-last) deinen Wünschen entsprechend formatieren.
Gruß
xmurrix
Problem gelöst, Lösung optimiert
Verfasst: Di 22. Aug 2006, 19:24
von #ayshe
Vielen Dank, xmurrix, das war's haargenau.
Ich hab noch ein wenig optimiert:
- - statt "id='nav-path-last'" hab ich eine class gemacht - hab ich bei Links in einer Aufzählung lieber, IDs nehm' ich nur für übergeordnete Blockelemente -- aber das ist Geschmackssache;
- in der funcitons.con.php (includes) habe ich die Zeile Code: Alles auswählen
$name = '<a href="'.$linkUrl.'" class="'.$linkClass.'">'.$name.'</a>';
geändert in Code: Alles auswählen
$name = '<a href="'.$linkUrl.'" title="'.$name.'" >'.$name.'</a>';
dadurch entfällt der zweifache Nennung einer Klasse im Link, dafür haben die Links jetzt auch ein Attribut "title", wie sich das gehört.
Vollstens zufrieden: Ayshe
(ja, kommt auch mal vor
)
Verfasst: Sa 9. Sep 2006, 01:49
von andreasb
BagHira hat geschrieben:Freddy hat geschrieben:emergence hat geschrieben:ähm soweit ich das modul kenne -> ist es so...
es gibt aber angepasste versionen eines location strings die das berücksichtigen... -> forum suche nach location string
Habe nach location string gesucht aber nichts fertiges gefunden. Das location-string Modul von V.4.4.x funktioniert nicht unter 4.6.x.
Gibt es schon ein fertiges Navigationspfad-Modul mit "Home >" davor??
hi freddy,
schau mal ob das bei dir funktioniert:
Input: leer
Output: Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Navigationpath
* Author(s) : Andreas Lindner
* Copyright : Contenido - four for business, Andreas Lindner
* Created : 05-08-2005
************************************************/
#Settings
$separator = '>';
$max_length = 65;
#Get path to root
$dummy = conCreateLocationString($idcat, ' '.$separator.' ', $retval, true, "navipath", 0);
if ($retval=='') {
$retval=' ';
} else {
$pattern = "'>.*?<'";
preg_match_all($pattern, $retval, $matches);
$matches = $matches[0];
#Get effective text length
$length = 0;
foreach ($matches as $value) {
$length += strlen($value) - 2;
}
#Get shorten factor
if ($length > $max_length * 4) {
$shorten = 5;
}
elseif ($length > $max_length * 3) {
$shorten = 4;
}
elseif ($length > $max_length * 2) {
$shorten = 3;
}
elseif ($length > $max_length) {
$shorten = 2;
} else {
$shorten = 1;
}
#Shorten items
if ($length > $max_length) {
foreach ($matches as $value) {
if (strpos($value, $separator) === FALSE) {
$text = substr($value, 1, strlen($value) - 2);
$len = strlen($text);
if (strpos($text, ' ') === FALSE) {
$text_new = $text;
} else {
$text_new = capiStrTrimAfterWord($text, intval($len / $shorten));
}
if (strlen($text) != strlen($text_new)) {
$text_new .= '...';
}
$text_new = '>'.$text_new.'<';
$retval = str_replace('>'.$text.'<', $text_new, $retval);
}
}
}
$retval = str_replace('"/index.html"', '"Home/index.html"', $retval);
}
echo $retval;
?>
Hoffe dir geholfen zu haben
Ahem, das ist doch das Modul, dass bei 4.6.8 dabei ist?! Da gibts aber kein "Home >" davor...
Verfasst: Sa 9. Sep 2006, 02:14
von mvf
statt
Code: Alles auswählen
$homelink = $sess->url('front_content.php'); // hier kannste deine parameter mitgeben wenn nötig also idart oder idcat z.b.
$retval = '<a href="' . $homelink . '">Home</a> ' . $separator . ' ' . $retval;
echo $retval;
Verfasst: Sa 9. Sep 2006, 02:44
von andreasb
mvf hat geschrieben:statt
Code: Alles auswählen
$homelink = $sess->url('front_content.php'); // hier kannste deine parameter mitgeben wenn nötig also idart oder idcat z.b.
$retval = '<a href="' . $homelink . '">Home</a> ' . $separator . ' ' . $retval;
echo $retval;
Tse, Sackzementi, tatsächlich... so funkts!!!
Merci! Stand das schon wo und ich habs überlesen? Man kiregt hier ja immer toll geholfen, aber wo die Module für die Versionen aufgelistet sindwäre mal an der Zeit... oder?
Verfasst: Sa 9. Sep 2006, 02:53
von mvf
das ist basic aus der alleruntesten schublade
, deswegen stehts wahrscheinlich nirgendwo, außerdem ist das nur eine möglichkeit, ...
es führen tausend wege nach bella roma
und wenn du dir jetzt die conCreateLocationString anschaust und um die idart erweiterst, kannste den artikel auch im bradcrumb haben
Verfasst: Sa 9. Sep 2006, 03:07
von andreasb
mvf hat geschrieben:
das ist basic aus der alleruntesten schublade
, deswegen stehts wahrscheinlich nirgendwo, außerdem ist das nur eine möglichkeit, ...
Ok, dann bin ich der Boden, der den Schrank mit der alleruntersten Schublade tragen muss...
es führen tausend wege nach bella roma
Ja, und dann is' da die Frage welchen soll ich nehmen, bzw. für mich siehts bisweilen eher so aus, dass garkein Weg nach Rom führt...
und wenn du dir jetzt die conCreateLocationString anschaust und um die idart erweiterst, kannste den artikel auch im bradcrumb haben
Ach, Heiterkeit bei Profi-meets-Amateur ...wat is?
Sehe gerade, dass ">" macht ja auf der Startseite keinen guten Eindruck, gibts dafür auch eine Lösung?
Verfasst: Sa 9. Sep 2006, 03:14
von mvf
andreasb hat geschrieben:
Sehe gerade, dass ">" macht ja auf der Startseite keinen guten Eindruck, gibts dafür auch eine Lösung?
yep schaue mal ganz an den anfang des moduloutputs da findes tu die variable und da steht dann = ' > '
play with it
Verfasst: Sa 9. Sep 2006, 03:19
von andreasb
mvf hat geschrieben:andreasb hat geschrieben:
Sehe gerade, dass ">" macht ja auf der Startseite keinen guten Eindruck, gibts dafür auch eine Lösung?
yep schaue mal ganz an den anfang des moduloutputs da findes tu die variable und da steht dann = ' > '
play with it
Yo, das mach ich auch, aber net mehr heute oder doch heute, aber später am Tag. Besten Dank erstmal!